2021-05-11 01:18:23 +00:00
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ),
and this project adheres to [Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
## [Unreleased]
2021-08-10 01:32:14 +00:00
### Added
- New `bootstrap` option for `Waku.create` to easily connect to Waku nodes upon start up.
2021-08-19 05:49:43 +00:00
- Support for `startTime` and `endTime` in Store queries to filter by time window as per [21/WAKU2-FTSTORE ](https://rfc.vac.dev/spec/21/ ).
2021-08-10 01:32:14 +00:00
2021-08-09 06:25:10 +00:00
### Changed
2021-08-10 01:32:14 +00:00
- Renamed `discover.getStatusFleetNodes` to `discovery.getBootstrapNodes` ;
Changed the API to allow retrieval of bootstrap nodes from other sources.
2021-08-19 01:13:34 +00:00
- Examples: Renamed `eth-dm` to `eth-pm` ; "Direct Message" can lead to confusion with "Direct Connection" that
2021-08-17 06:01:27 +00:00
refers to low latency network connections.
2021-08-19 01:13:34 +00:00
- Examples (eth-pm): Use sign typed data EIP-712 instead of personal sign.
2021-08-18 05:39:06 +00:00
- Upgraded dependencies to remove warning at installation.
2021-08-19 04:12:24 +00:00
- **Breaking**: Moved `DefaultPubSubTopic` to `waku.ts` and fixed the casing.
2021-08-20 00:12:19 +00:00
- **Breaking**: Rename all `pubsubTopic` occurrences to `pubSubTopic` , across all interfaces.
2021-08-09 06:25:10 +00:00
2021-08-06 06:59:54 +00:00
### Removed
- Examples (cli-chat): The focus of this library is Web environment;
Several examples now cover usage of Waku Relay and Waku Store making cli-chat example obsolete;
web-chat POC should be preferred to use the [TOY-CHAT ](https://rfc.vac.dev/spec/22/ ) protocol.
2021-08-06 07:20:30 +00:00
- `ChatMessage` has been moved from js-waku to web-chat example;
it is a type used for the [TOY-CHAT ](https://rfc.vac.dev/spec/22/ ) protocol;
js-waku users should not build on top if this toy protocol and instead design message data structures appropriate to their use case.
2021-08-20 00:35:36 +00:00
- Unused dependencies & scripts.
2021-08-06 06:59:54 +00:00
2021-08-13 06:23:14 +00:00
### Added
- Examples: New [Ethereum Private Message Using Wallet Encryption Web App ](./examples/eth-pm-wallet-encryption/README.md )
example that demonstrates the usage of `eth_encrypt` API (available on Metamask) and EIP-712 for typed structured data signing.
2021-08-06 06:35:40 +00:00
## [0.10.0] - 2021-08-06
2021-08-02 04:36:14 +00:00
### Added
- Relay and ReactJS guides and examples
([#56](https://github.com/status-im/js-waku/issues/56)).
2021-07-28 01:19:24 +00:00
### Changed
- **Breaking**: The `WakuMessage` APIs have been changed to move `contentTopic` out of the optional parameters.
2021-08-04 01:59:53 +00:00
- **Breaking**: Move `contentTopics` out the `WakuStore.queryHistory` 's optional parameters.
2021-08-04 02:35:47 +00:00
- **Breaking**: `WakuStore.queryHistory` throws when encountering an error instead of returning a `null` value.
2021-07-28 01:19:24 +00:00
2021-07-28 01:42:42 +00:00
### Removed
- Examples (web-chat): Remove broken `/fleet` command.
2021-07-28 01:19:24 +00:00
- **Breaking**: Removed `DefaultContentTopic` as developers must choose a content topic for their app;
recommendations for content topic can be found at https://rfc.vac.dev/spec/23/.
2021-07-28 01:42:42 +00:00
2021-08-01 23:51:37 +00:00
### Fixed
- `WakuMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii characters.
2021-08-02 00:36:50 +00:00
- `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii characters.
2021-08-01 23:51:37 +00:00
2021-07-26 06:41:21 +00:00
## [0.9.0] - 2021-07-26
2021-07-22 00:59:45 +00:00
### Changed
2021-07-26 06:41:21 +00:00
- **Breaking**: Store Response Protobuf changed to align with nim-waku v0.5
2021-07-22 00:59:45 +00:00
([nim-waku#676](https://github.com/status-im/nim-waku/pull/676)).
2021-07-16 01:59:22 +00:00
## [0.8.1] - 2021-07-16
2021-07-15 23:43:10 +00:00
### Added
2021-07-15 23:50:44 +00:00
- Examples (web-chat): New `/fleet` command to switch connection between Status prod and test fleets.
2021-07-15 23:43:10 +00:00
- Export `generatePrivateKey` and `getPublicKey` directly from the root.
2021-07-16 01:17:11 +00:00
- Usage of the encryption and signature APIs to the readme.
2021-07-21 05:15:11 +00:00
- Support multiple protocol ids for Waku Relay, allowing interoperability with nim-waku v0.4 and latest master
([#238](https://github.com/status-im/js-waku/issues/238)).
2021-07-15 23:43:10 +00:00
2021-07-16 00:24:29 +00:00
### Changed
- **Breaking**: Renamed `WakuRelay.(add|delete)PrivateDecryptionKey` to `WakuRelay.(add|delete)DecryptionKey` to make it clearer that it accepts both symmetric keys and asymmetric private keys.
2021-07-22 05:31:34 +00:00
- Upgrade libp2p to 0.32.0.
2021-07-22 06:34:27 +00:00
- **Breaking**: Rename `keepAlive` option to `pingKeepAlive` .
2021-07-27 05:55:11 +00:00
- Introduced new `relayKeepAlive` option on `Waku` with a default to 59s to send ping messages over relay to ensure the relay stream stays open.
This is a workaround until [js-libp2p#744 ](https://github.com/libp2p/js-libp2p/issues/744 ) is done as there are issues when TCP(?) timeouts and the stream gets closed
([#185](https://github.com/status-im/js-waku/issues/185), [js-libp2p#939 ](https://github.com/libp2p/js-libp2p/issues/939 ))
2021-07-16 00:24:29 +00:00
2021-07-21 05:33:58 +00:00
### Fixed
2021-07-16 00:24:29 +00:00
- Align `WakuMessage` readme example with actual code behaviour.
2021-07-21 05:15:11 +00:00
- Remove infinite loop when an error with Waku Store is encountered.
2021-07-15 23:51:59 +00:00
2021-07-15 02:45:29 +00:00
## [0.8.0] - 2021-07-15
2021-06-16 13:37:13 +00:00
### Added
2021-06-16 04:29:50 +00:00
- `WakuRelay.deleteObserver` to allow removal of observers, useful when a React component add observers when mounting and needs to delete it when unmounting.
2021-06-18 06:48:16 +00:00
- Keep alive feature that pings host regularly, reducing the chance of connections being dropped due to idle.
2021-07-09 05:12:52 +00:00
Can be disabled or default frequency (10s) can be changed when calling `Waku.create` .
- New `lib/utils` module for easy, dependency-less hex/bytes conversions.
2021-07-12 03:11:43 +00:00
- New `peers` and `randomPeer` methods on `WakuStore` and `WakuLightPush` to have a better idea of available peers;
Note that it does not check whether Waku node is currently connected to said peers.
2021-07-12 03:13:00 +00:00
- Enable passing decryption private keys to `WakuStore.queryHistory` .
2021-07-14 05:35:46 +00:00
- Test: Introduce testing in browser environment (Chrome) using Karma.
2021-07-14 11:15:54 +00:00
- Add support for Waku Message version 1: Asymmetric encryption, symmetric encryption, and signature of the data.
2021-06-16 04:29:50 +00:00
2021-06-16 13:37:13 +00:00
### Changed
- **Breaking**: Auto select peer if none provided for store and light push protocols.
2021-06-21 06:37:31 +00:00
- Upgrade to `libp2p@0.31.7` and `libp2p-gossipsub@0.10.0` to avoid `TextEncoder` errors in ReactJS tests.
2021-07-02 06:08:29 +00:00
- Disable keep alive by default as latest nim-waku release does not support ping protocol.
2021-07-06 05:29:02 +00:00
- **Breaking**: Optional parameters for `WakuMessage.fromBytes` and `WakuMessage.fromUtf8String` are now passed in a single `Options` object.
2021-07-07 01:23:56 +00:00
- **Breaking**: `WakuMessage` static functions are now async to allow for encryption and decryption.
- **Breaking**: `WakuMessage` constructor is now private, `from*` and `decode*` function should be used.
- `WakuMessage` version 1 is partially supported, enabling asymmetrical encryption and signature of messages;
this can be done by passing keys to `WakuMessage.from*` and `WakuMessage.decode*` methods.
2021-07-12 07:29:22 +00:00
- Examples (eth-dm): Use Waku Message version 1 encryption scheme instead of `eth-crypto` .
- Examples (eth-dm): Use Protobuf for direct messages instead of JSON ([#214](https://github.com/status-im/js-waku/issues/214)).
2021-06-16 13:37:13 +00:00
2021-07-02 00:51:58 +00:00
### Fixed
- Disable `keepAlive` if set to `0` .
2021-06-15 05:31:12 +00:00
## [0.7.0] - 2021-06-15
2021-06-11 04:32:16 +00:00
### Changed
- Test: Upgrade nim-waku node to v0.4.
2021-06-11 04:32:49 +00:00
- Waku Light Push upgraded to `2.0.0-beta1` .
2021-06-11 04:33:03 +00:00
- Examples (web chat): Catch error if chat message decoding fails.
2021-06-11 04:34:50 +00:00
- Examples (web chat): Do not send message if shift/alt/ctrl is pressed, enabling multiline messages.
2021-06-11 04:32:16 +00:00
2021-06-09 06:34:09 +00:00
## [0.6.0] - 2021-06-09
2021-06-08 12:01:48 +00:00
### Changed
2021-06-09 06:59:27 +00:00
- **Breaking**: Websocket protocol is not automatically added anymore if the user specifies a protocol in `libp2p.modules`
when using `Waku.create` .
2021-06-08 12:01:48 +00:00
- **Breaking**: Options passed to `Waku.create` used to be passed to `Libp2p.create` ;
2021-06-09 06:58:08 +00:00
Now, only the `libp2p` property is passed to `Libp2p.create` , allowing for a cleaner interface.
- Examples (cli chat): Use tcp protocol instead of websocket.
2021-06-08 12:01:48 +00:00
2021-05-28 06:00:34 +00:00
### Added
- Enable access to `WakuMessage.timestamp` .
2021-05-28 06:31:08 +00:00
- Examples (web chat): Use `WakuMessage.timestamp` as unique key for list items.
2021-06-01 06:07:44 +00:00
- Doc: Link to new [topic guidelines ](https://rfc.vac.dev/spec/23/ ) in README.
2021-06-01 06:10:03 +00:00
- Doc: Link to [Waku v2 Toy Chat specs ](https://rfc.vac.dev/spec/22/ ) in README.
2021-06-04 05:15:07 +00:00
- Examples (web chat): Persist nick.
2021-06-09 02:25:56 +00:00
- Support for custom PubSub Topics to `Waku` , `WakuRelay` , `WakuStore` and `WakuLightPush` ;
Passing a PubSub Topic is optional and still defaults to `/waku/2/default-waku/proto` ;
JS-Waku currently supports one, and only, PubSub topic per instance.
2021-05-28 06:00:34 +00:00
2021-05-21 05:42:03 +00:00
## [0.5.0] - 2021-05-21
2021-05-19 01:00:43 +00:00
### Added
- Implement [Waku v2 Light Push protocol ](https://rfc.vac.dev/spec/19/ ).
2021-05-19 01:57:03 +00:00
- Expose `Direction` enum from js-waku root (it was only accessible via the proto module).
2021-05-19 01:59:02 +00:00
- Examples (cli chat): Use light push to send messages if `--lightPush` is passed.
2021-05-19 02:07:48 +00:00
- Examples (cli chat): Print usage if `--help` is passed.
2021-05-19 01:00:43 +00:00
2021-05-18 04:12:17 +00:00
## [0.4.0] - 2021-05-18
2021-05-07 06:10:58 +00:00
### Added
- `callback` argument to `WakuStore.queryHistory()` , called as messages are retrieved
; Messages are retrieved using pagination, and it may take some time to retrieve all messages,
with the `callback` function, messages are processed as soon as they are received.
2021-05-15 11:54:44 +00:00
### Changed
- Testing: Upgrade nim-waku node to v0.3.
2021-05-17 06:11:01 +00:00
- **Breaking**: Modify `WakuStore.queryHistory()` to accept one `Object` instead of multiple individual arguments.
2021-05-18 03:26:42 +00:00
- `getStatusFleetNodes` return prod nodes by default, instead of test nodes.
2021-05-18 03:47:16 +00:00
- Examples (web chat): Connect to prod fleet by default, test fleet for local development.
2021-05-18 03:50:36 +00:00
- Examples (cli chat): Connect to test fleet by default, use `--prod` to connect to prod fleet.
2021-05-15 11:54:44 +00:00
2021-05-18 03:45:49 +00:00
### Fixed
- Expose `Enviroment` and `Protocol` enums to pass to `getStatusFleetNodes` .
2021-05-15 10:45:33 +00:00
## [0.3.0] - 2021-05-15
2021-05-14 03:23:44 +00:00
### Added
- `getStatusFleetNodes` to connect to Status' nim-waku nodes.
2021-05-14 05:58:09 +00:00
### Changed
- Clarify content topic format in README.md.
2021-05-15 09:49:37 +00:00
## Removed
- Unused dependencies.
2021-05-13 23:35:06 +00:00
## [0.2.0] - 2021-05-14
2021-05-13 06:42:18 +00:00
### Added
- `WakuRelay.getPeers` method.
2021-05-13 09:48:05 +00:00
- Use `WakuRelay.getPeers` in web chat app example to disable send button.
2021-05-13 06:42:18 +00:00
2021-05-13 01:47:03 +00:00
### Changed
- Enable passing `string` s to `addPeerToAddressBook` .
2021-05-13 01:51:39 +00:00
- Use `addPeerToAddressBook` in examples and usage doc.
2021-05-13 06:49:29 +00:00
- Settle on `js-waku` name across the board.
2021-05-13 06:29:44 +00:00
- **Breaking**: `RelayDefaultTopic` renamed to `DefaultPubsubTopic` .
2021-05-13 01:47:03 +00:00
2021-05-13 02:01:07 +00:00
## [0.1.0] - 2021-05-12
2021-05-11 06:44:23 +00:00
2021-05-11 01:18:23 +00:00
### Added
2021-05-13 00:39:20 +00:00
- Add usage section to the README.
2021-05-11 01:18:23 +00:00
- Support of [Waku v2 Relay ](https://rfc.vac.dev/spec/11/ ).
- Support of [Waku v2 Store ](https://rfc.vac.dev/spec/13/ ).
- [Node Chat App example ](./examples/cli-chat ).
- [ReactJS Chat App example ](./examples/web-chat ).
- [Typedoc Documentation ](https://status-im.github.io/js-waku/docs ).
2021-08-06 06:35:40 +00:00
[Unreleased]: https://github.com/status-im/js-waku/compare/v0.10.0...HEAD
[0.10.0]: https://github.com/status-im/js-waku/compare/v0.9.0...v0.10.0
[0.9.0]: https://github.com/status-im/js-waku/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/status-im/js-waku/compare/v0.8.0...v0.8.1
2021-07-16 01:59:22 +00:00
[0.8.1]: https://github.com/status-im/js-waku/compare/v0.8.0...v0.8.1
2021-07-15 02:45:29 +00:00
[0.8.0]: https://github.com/status-im/js-waku/compare/v0.7.0...v0.8.0
2021-06-15 05:31:12 +00:00
[0.7.0]: https://github.com/status-im/js-waku/compare/v0.6.0...v0.7.0
2021-06-09 06:34:09 +00:00
[0.6.0]: https://github.com/status-im/js-waku/compare/v0.5.0...v0.6.0
2021-05-21 05:42:03 +00:00
[0.5.0]: https://github.com/status-im/js-waku/compare/v0.4.0...v0.5.0
2021-05-18 04:12:17 +00:00
[0.4.0]: https://github.com/status-im/js-waku/compare/v0.3.0...v0.4.0
2021-05-15 12:00:29 +00:00
[0.3.0]: https://github.com/status-im/js-waku/compare/v0.2.0...v0.3.0
2021-05-13 23:35:06 +00:00
[0.2.0]: https://github.com/status-im/js-waku/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/status-im/js-waku/compare/f46ce77f57c08866873b5c80acd052e0ddba8bc9...v0.1.0