* feat: use wagmi to generate contract types
* feat: migrate rln from ethers to viem
* fix: remove .gitmodules
* fix: update readme
* fix: refactor to use a single viem client object
* fix: update comments, tsconfig
* feat: remove membership event tracking
* fix: script name in package.json and readme
* fix: only allow linea sepolia
* fix: consolidate viem types, typed window
* fix: use viem to infer type of decoded event
* fix: use js for generate abi script
* feat: generate abi and build rln package as release condition
* fix: check that eth_requestAccounts returns an array
* fix: handle error messages
* fix: use https instead of git for cloning in script
* fix: add warning annotations for contract typings check
* fix: install deps for rln package before building
* fix: use pnpm when installing rln contracts
* fix: use workspace flag to run abi script
* fix: add ref to checkout action
* fix: include pnpm in ci
* feat: create @waku/run package for local dev env
* chore: add @waku/run to release please config
* feat: test @waku/run with playwright
* fix: don't run waku/run tests in CI
* fix: cache images so docker-compose can work offline
* feat: set nodekey and staticnode flags for each nwaku node
* fix: use constants for node ids
* chore: set directories for running via npx
* fix: remove .env, support env vars for nwaku ports
* fix: use separate db (same instance) for each node
* feat: add command to test dev env
* chore: use package version in container name
* fix: replace hardcoded WS/REST ports with constants/env vars
* chore: clean up README
* fix: refactor config printing into own function
* fix: add run package to release please manifest
* fix: defer to root folder gitignore/cspell
* fix: update node version and remove tsx
* fix: remove browser tests and express dep
* fix: replace magic values with constants
* fix: move to root .gitignore
* fix: move cspell to root
* chore: add waku/react package
* fix check
* remove not needed logic from waku/react package
* make it compatible with expo/next
* add to release please
* remove tests
* SDS: pushOutgoingMessage is actually sync
* SDS: ensure that `ContentMessage` class is stored in local history with `valueOf` method
* feat: introduce reliable channels
Easy to use Scalable Data Sync (SDS, e2e reliability) wrapper, that includes:
- store queries upon connection to store nodes
- store queries to retrieve missing messages
* remove `channel` prefix
* attempt to improve performance when processing a lot of incoming messages
* test: split test file
* use index.ts for re-export only.
* improve if condition
* use getter for isStarted
* waku node already auto-start
* rename send
* fix lightPush.send type post rebase
* test: remove extra console.log
* SDS: emit messages as missing as soon as they are received
* make configurable elapse time for task process
* typo
* use string instead of enum for event types
* ReliableChannel.send returns the message id
* remove IBaseProtocol
* fix references, interfaces and integration
* fix ci
* up mock
* up lock
* add mock for local storage
* add missing prop, fix tests
* up lock
* feat: introduce WSS checker CI
* rename CI step
* specify nodejs
* try
* remove not needed dep
* use npx and fail on failure
* run by dispatch only and improve naming
* fix fail detection
* doc: build first to avoid not found deps issues
* fix: Remove XMLHttpRequest usage
XMLHttpRequest API is deprecated and not available in browser extensions.
Replace the culprit dependency with a more modern one.
Some options are removed. The assumption is that nobody uses them. It can always be added if a developer wants the flexibility.
* test: simplify test
The test focus on testing DNS Discovery, there is no need to also have a nwaku local node for bootstrap.
Bootstrap on nwaku local node is used in many other tests.
This commit creates the class for an SDS message channel, including
buffers for outgoing and incoming messages. Adds logic for sending
messages, receiving messages, delivering messages, and reviewing
acknowledgement status of messages. Also adds byte serialization
for bloom filters.
* up lock
* make ConnectionManager use ctor
* reform connection manager configurations
* remove log param from peerManager
* make PeerManager use only ConnectionManager, move getPeers to ConnectionManager, remove not needed code
* remove allPeers and connectedPeers from BaseProtocolCore, update tests, add getPeers for IWaku
* use only one peerManager from Waku object
* remove IBaseProtocolSDK and merge with PeerManager
* re-implement peerManager, remove ProtocolUseOptions
* remove not needed test, up lock
* update deps and lock
* remove old test for peerManager, fix check and spell
* rename to getConnectedPeers
* feat: improve filter subscriptions (#2193)
* add message cache to Filter
* remove WakuOptions and use only ProtocolCreateOptions
* move subscribe options to createLightNode Fitler protocol options
* rename SubscriptionManager to Subscription
* rename to CreateNodeOptions
* add warning
* feat: introduce subscription manager (#2202)
* feat: inroduce subscription manager
* fix: make pipeline succeed (#2238)
* fix test
* use hardcoded value
* update playwright
* fix test:browser
* up lock
* make peer retrieval probabilistic
* add comments
* up lightpush tests
* add tests for peer_manager, improve folder structure
* create named files for protocols
* create named files, simplify project structure
* remove only
We are in the process of deprecating pubsub-topic param from nim-waku.
The pubsub-topic shouldn't be used to start nim-waku and instead, a
combination of 1 cluster-id plus n shard should be given. This aims to
start using the new added param: shard.
Adds a new package for the browser implementation of scalable data
sync. Ports some of the nim implementation of bloom filter to ts.
Adds protobuf definition for SDS messages.