Commit Graph

224 Commits

Author SHA1 Message Date
Franck Royer 929f05968b
Release 0.20.0 2022-03-30 10:14:25 +11:00
Franck Royer 13d12f8284
Froze `libp2p-gossipsub` version to 0.13.0
0.13.2 moved heartbeat class which is a breaking change.
2022-03-29 21:28:03 +11:00
Franck Royer bf63e85e9e
Move utf-8 utils to `utils` 2022-03-25 17:08:03 +11:00
Franck Royer a915acfcda
Remove deprecated utils functions 2022-03-25 17:08:02 +11:00
Franck Royer c4d779d1db
Remove `equalByteArrays` 2022-03-25 17:08:02 +11:00
Franck Royer d0dea3884b
Replace Base 64 buggy conversion functions with `uint8arrays` 2022-03-25 11:02:40 +11:00
Franck Royer 98c1257585
Add JavaScript Relay example 2022-03-21 12:33:31 +11:00
Franck Royer 483b11723c
Release 0.19.2 2022-03-21 10:36:27 +11:00
Franck Royer d2e9a57604
Update changelog 2022-03-18 14:47:25 +11:00
Franck R c806135810
Revert "Use `BigInt` constructor instead of happening `n` as it seems to have better browser support. (#611)" (#613)
This reverts commit f4e81dd29c.
2022-03-13 20:33:47 +11:00
Franck R f4e81dd29c
Use `BigInt` constructor instead of happening `n` as it seems to have better browser support. (#611) 2022-03-13 10:11:04 +11:00
Franck R ac337855aa
Release 0.19.1 (#610) 2022-03-10 16:25:51 +11:00
Franck R ed23332965
Allow passing multiaddr to `bootstrap.peers` (#608) 2022-03-09 18:38:28 +11:00
Franck R e4024d5c72
Release 0.19.0 (#607) 2022-03-09 14:29:35 +11:00
Franck R e649f772a7
`WakuMessage.timestamp` field must use nanoseconds (#606) 2022-03-09 12:00:02 +11:00
Franck R 2798376776
Remove ecies-geth (#598)
* test: specify encryption method

Makes debugging easier.

* Fix log typo

* Remove ecies-geth

Start removal of elliptic dependency and move towards exclusive usage to
CryptoSubtle.
2022-03-06 23:20:59 +11:00
Franck R ad5b3ddc7f
New `pubsub_topic` field on the `cursor` of Waku Store queries (#596) 2022-03-04 16:47:23 +11:00
Franck Royer fe30449861
Add exports field for node
While this library targets the browser, it is sometimes helpful to use
it in need for experiments.
For example: https://github.com/status-im/js-waku/pull/588
2022-03-04 14:49:33 +11:00
Franck Royer f73afc5244
Handle errors thrown when converting to utf-8 2022-03-01 16:58:15 +11:00
Franck R d838f53c78
Release 0.18.0 (#576) 2022-02-24 16:40:14 +11:00
Franck R a488988f37
Implement Waku Store 2.0.0-beta4 (#566) 2022-02-24 16:25:58 +11:00
Franck R 64657a250f
Replace rlp with ethers' rlp (#526) 2022-02-16 14:08:48 +11:00
Franck R 297d65ce03
Reduce Buffer usage in ENR module (#522) 2022-02-16 12:11:54 +11:00
Franck R 9931011c93
Release 0.17.0 (#538) 2022-02-16 11:55:53 +11:00
Franck R 146c67e43e
Predefine bootstrap node (#528) 2022-02-16 11:43:57 +11:00
Franck R cfc5eee4ff
Reduce buffer usage (#521) 2022-02-14 10:50:02 +11:00
Franck R 2dc8764be2
Remove axios (#520) 2022-02-14 09:26:22 +11:00
Franck R 160fea0e7b
`Waku.dial` accepts protocols expected from the peer. Defaults to Waku Relay only. (#516) 2022-02-13 19:04:50 +11:00
Franck R 0f678750df
Improve docs (#519) 2022-02-11 17:27:15 +11:00
Franck R 69f0005445
Bump libp2p from 0.32.4 to 0.36.2, libp2p-gossipsub from 0.12.1 to 0.13.0 (#470)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-02 15:12:08 +11:00
Franck R f2cf00bf44
Examples are now deployed in wakuconnect.dev (#485) 2022-02-02 11:56:40 +11:00
Franck R 4be3d95535
Release 0.16.0 (#473) 2022-01-31 15:56:59 +11:00
Franck R d9248dbc56
Replace `waitForConnectedPeer` with `waitForRemotePeer` (#469) 2022-01-30 21:56:21 +11:00
Franck R 95b3daf3e8
js-waku docs have a new location (#436) 2022-01-27 12:40:46 +11:00
Franck R c7fe1bd789
Rename DappConnect to Waku Connect (#427) 2022-01-24 15:00:11 +11:00
Franck R cba5212872
Upgrade nim-waku to v0.7 (#417) 2022-01-19 15:43:45 +11:00
Franck R 8b06b6e1d5
Release 0.15.0 (#414) 2022-01-19 12:24:32 +11:00
Franck R 96cf24d34e
Allow specifying decryption methods and content topic (#409) 2022-01-17 14:11:05 +11:00
Franck Royer 8e591f22db
Update changelog 2022-01-14 12:49:40 +11:00
Franck Royer 284644b822
Fix-up new bootstrap API 2022-01-13 16:39:52 +11:00
Franck Royer e244bae03d
Renamed `getBootstrapNodes` to `getNodesFromHostedJson`
So that the name better matches the function's behaviour.
2022-01-13 15:33:37 +11:00
Franck Royer ddec271621
Make minimum support node version 16
A number of libp2p packages do not support node 14 anymore.
2022-01-06 14:17:17 +11:00
F eb9057fc8f
doc: Remove warnings 2021-12-02 23:51:54 +11:00
Franck Royer 46abd4ca96
changelog: Upgrade nim-waku to v0.6 2021-12-01 16:25:23 +11:00
F 60073ce4fc
Update links 2021-11-30 12:16:07 +11:00
F 31325bb673
Release 0.14.2
### Changed

- Examples: JS examples uses local ESM folder to replicate behaviour of
js-waku publish package.

### Fixed

- `TypeError` issue related to constructors using js-waku in a JS
project
  ([#323](https://github.com/status-im/js-waku/issues/323)).
2021-11-30 11:33:30 +11:00
F 8909164f6d
Use ESM in JavaScript examples
As it is what JS projects would use when using the js-waku npm package.
2021-11-26 21:24:05 +11:00
F de9b313b65
Use es6/es2015 target for ESM output
es5 does not support class constructors and hence lead to issues.
2021-11-26 21:23:50 +11:00
Franck Royer 0cf12f3b55
Release 0.14.1
### Fixed
- Issue when importing the `utils` module.
2021-10-22 14:40:38 +11:00
Franck Royer 5009792fca
Remove exports field
TypeScript does not play nice with it just yet:
https://github.com/microsoft/TypeScript/issues/33079
2021-10-19 15:22:38 +11:00
Franck Royer 2c1ff58f93
Release 0.14.0
### Added
- If the `callback` function passed to`WakuStore.queryHistory` returns
  `true`, then no further pages are retrieved from the store.
- Use webpack to build UMD bundle of the library, see
  [README](./README.md) for usage.

### Changed
- **Breaking**: Renamed `WakuStore.QueryOptions`'s `direction` to
  `pageDirection` (and its type) as it only affects the page ordering,
  not the ordering of messages with the page.

### Fixed
- Docs: Ensure that `WakuStore`'s `QueryOptions` documentation is
  available [online](https://status-im.github.io/js-waku/docs/).
2021-10-13 11:14:40 +11:00
Franck Royer bafa30fb05
Add doc location for UMD bundle 2021-10-13 10:21:40 +11:00
Franck Royer 4ff61f4bf9
Update changelog 2021-10-12 11:43:30 +11:00
Franck Royer 8d469ff842
Enable caller to abort store query
If the `callback` function passed to`WakuStore.queryHistory` returns
`true`, then no further pages are retrieved from the store.
2021-10-07 15:33:00 +11:00
Franck Royer b216cd3b22
Update changelog 2021-10-05 13:36:04 +11:00
Franck Royer f5a0416efd
Rename to page direction
As the direction only affects the page ordering,
not the message ordering in the pages.
2021-10-05 13:36:03 +11:00
Franck Royer 6bc8136204
Merge branch 'main' of github.com:status-im/waku-js into release/0.12.2 2021-09-21 15:41:23 +10:00
Franck Royer e3dce12ae8
Release 0.12.2 2021-09-21 15:33:42 +10:00
Franck Royer ff8f151fbd
Update Changelog 2021-09-21 15:23:19 +10:00
Franck Royer 129b6a97d4
Release 0.13.1 2021-09-21 15:00:57 +10:00
Franck Royer 6b11bc7183
Update Changelog 2021-09-21 14:47:45 +10:00
Franck Royer 5443e3b4a7
Merge branch 'main' of github.com:status-im/waku-js into release/0.12.0 2021-09-21 14:31:28 +10:00
Franck Royer def38b4234
Release 0.12.1 2021-09-16 15:21:45 +10:00
Franck Royer 8a4e7f5f3c
Connects to a limited number of bootstrap nodes, defaults to 1 2021-09-16 15:16:32 +10:00
Franck Royer 6bd114f551
Release 0.13.0 2021-09-16 14:57:10 +10:00
Franck Royer 6504106a9e
Connects to a limited number of bootstrap nodes, defaults to 1 2021-09-16 10:38:01 +10:00
Franck Royer ca09c34ac6
Upgrade libp2p libraries 2021-09-03 16:02:22 +10:00
Franck Royer 3bf7e2250c
Release 0.12.0 2021-09-02 16:38:56 +10:00
Franck Royer a21d641280
Added `Waku.waitForConnectedPeer` helper
To ensure that we are connected to Waku peers when using the bootstrap
option.
2021-09-02 15:46:23 +10:00
Franck Royer 3c0884a96e
Update changelog 2021-09-02 15:27:39 +10:00
Franck Royer cfb97b6bde
Allow passing decryption keys to `Waku` instance
Keys can be set at creation or at run time.
They are passed to `WakuStore` and `WakuRelay` instances.
2021-09-02 15:20:43 +10:00
Franck Royer 911ce5bab7
Allow passing decryption keys to `WakuStore` instance
To avoid having to pass them at every `queryHistory` call.
2021-09-02 15:17:40 +10:00
Franck Royer 931a414a3c
Allow passing decryption keys in hex string format 2021-09-02 15:13:50 +10:00
Franck Royer 75352abcac
Promote dedicated symmetric key generation API
Using the private key API for symmetric key is confusing.
2021-09-02 15:09:31 +10:00
Franck Royer 880746a0df
Add guide to encrypt messages using version 1 2021-08-26 16:34:29 +10:00
Franck Royer 5af6d84852
Encrypt Public Key Messages using symmetric encryption 2021-08-26 16:12:53 +10:00
Franck Royer 398f34b57f
Fixed Buffer.concat error when using symmetric encryption in the browser 2021-08-26 16:12:53 +10:00
Franck Royer 5b34da6b5f
Both or neither time parameters must be passed
The protocol does not support open-ended time filtering windows. See
https://github.com/status-im/nim-waku/issues/706
2021-08-25 12:14:53 +10:00
Franck Royer 8fce1ad884
Release 0.11.0
### 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.
- New `bootstrap` option for `Waku.create` to easily connect to Waku
  nodes upon start up.
- Support for `startTime` and `endTime` in Store queries to filter by
  time window as per [21/WAKU2-FTSTORE](https://rfc.vac.dev/spec/21/).

### Changed
- Renamed `discover.getStatusFleetNodes` to
  `discovery.getBootstrapNodes`;
  Changed the API to allow retrieval of bootstrap nodes from other
  sources.
- Examples: Renamed `eth-dm` to `eth-pm`; "Direct Message" can lead to
  confusion with "Direct Connection" that
  refers to low latency network connections.
- Examples (eth-pm): Use sign typed data EIP-712 instead of personal
  sign.
- Upgraded dependencies to remove warning at installation.
- **Breaking**: Moved `DefaultPubSubTopic` to `waku.ts` and fixed the
  casing.
- **Breaking**: Rename all `pubsubTopic` occurrences to `pubSubTopic`,
  across all interfaces.

### 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.
- `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.
- Unused dependencies & scripts.
2021-08-20 12:15:23 +10:00
Franck Royer ac03a9e54b
Update changelog 2021-08-20 10:54:13 +10:00
Franck Royer b7693853d2
Added support for `startTime` and `endTime` in Store queries 2021-08-20 10:37:58 +10:00
Franck Royer 1d48dc4372
Rename all `pubsubTopic` occurrences to `pubSubTopic` 2021-08-20 10:13:02 +10:00
Franck Royer 60290e8d84
Moved `DefaultPubSubTopic` to `waku.ts` and fixed the casing
The pubsub topic is used by several protocol, not just relay.
2021-08-20 10:12:55 +10:00
Franck Royer 0c09d60c91
Update changelog 2021-08-19 11:27:03 +10:00
Franck Royer 0b03952542
Update changelog 2021-08-19 11:13:34 +10:00
Franck Royer 9692b4af72
Rename Eth-DM to Eth-PM
"Direct Message" can lead to confusion with "Direct Connection" that
refers to low latency network connections.
2021-08-17 16:06:46 +10:00
Franck Royer 0f0b083586
Update changelog for Eth-PM Wallet Encryption changes 2021-08-13 16:44:29 +10:00
Franck Royer 140791cc91
Provide easy way to bootstrap when creating Waku node 2021-08-13 16:18:00 +10:00
Franck Royer c3855112d7
Rename `getStatusFleetNodes`
To make it more generic to allow retrieval of bootstrap nodes from
other sources.
2021-08-13 16:17:15 +10:00
Franck Royer 319f44a0b1
`WakuStore.queryHistory` throws when encountering an error
Instead of returning a `null` value.
2021-08-09 12:36:24 +10:00
Franck Royer b422c9a10b
Move `contentTopics` out the `WakuStore.queryHistory`'s optional params 2021-08-09 12:36:12 +10:00
Franck Royer ad9d629daa
`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-06 17:25:12 +10:00
Franck Royer 0c3995a810
Remove cli-chat example
The focus of this library is on Web environment; Several examples now
cover usage of Waku Relay and Waku Store; web-chat POC should be
preferred to use the [TOY-CHAT](https://rfc.vac.dev/spec/22/) protocol.
2021-08-06 17:25:11 +10:00
Franck Royer 70c58c8c49
Release 0.10.0
### Added
- Relay and ReactJS guides and examples
  ([#56](https://github.com/status-im/js-waku/issues/56)).

### Changed
- **Breaking**: The `WakuMessage` APIs have been changed to move
  `contentTopic` out of the optional parameters.

### Removed
- Examples (web-chat): Remove broken `/fleet` command.
- **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/.

### Fixed
- `WakuMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii
  characters.
- `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii
  characters.
2021-08-06 16:38:55 +10:00
Franck Royer 1b82c21297
Update changelog 2021-08-05 13:39:42 +10:00
Franck Royer 45dc8f81c9
Fixed `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii 2021-08-02 10:36:50 +10:00
Franck Royer 1f692f1683
Fixed `payloadAsUtf8` returning garbage on utf-8 non-ascii characters 2021-08-02 09:51:37 +10:00
Franck Royer 0cfdd34284
Removed `DefaultContentTopic`
As developers must choose a content topic for their app.
The`WakuMessage` APIs have been changed to move `contentTopic` out of
the optional parameters. Recommendations for content topic can be found
at https://rfc.vac.dev/spec/23/.
2021-07-28 12:03:51 +10:00
Franck Royer 53ef23362c
Remove faulty fleet feature
It does not work as it can lead to infinite loops due to the handling of
the Waku instance. It should disconnect and reconnect to peers instead
of starting a new waku instance.
2021-07-28 11:58:02 +10:00
Franck Royer 9638f6db10
Introduced new `relayKeepAlive` option
..on `Waku` with a default to 5min 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.
2021-07-27 16:24:04 +10:00