* 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
* chore: npm publication
Fixing npm publication and warnings
* Upgrade workflow to use trusted publishing
https://docs.npmjs.com/trusted-publishers
* bump node js to 24
To avoid having to reinstall npm in pre-release for npmjs trusted publishers
Concepts are being mixed up between the global network config (static vs auto sharding), that needs to be the same of all nodes in the network, individual node configuration (eg relay node subscribing to a given shard), and the routing characteristic of a specific message (eg pubsub topic, shard).
This stops proper configuration of nwaku post 0.36.0 because we know need to be deliberate on whether nwaku nodes are running with auto or static sharding.
It also included various back and forth conversions between shards, pubsub topics, etc.
With this change, we tidy up the network configuration, and make it explicit whether it is static or auto sharded.
We also introduce the concept of routing info, which is specific to a message, and tied to the overall network configuration.
Routing info abstract pubsub topic, shard, and autosharding needs. Which should lead to easier tidy up of the pubsub concept at a later stage.
# Conflicts:
# packages/core/src/lib/connection_manager/connection_manager.ts
# packages/core/src/lib/metadata/metadata.ts
# packages/interfaces/src/metadata.ts
# packages/interfaces/src/sharding.ts
# packages/relay/src/create.ts
# packages/sdk/src/filter/filter.ts
# packages/sdk/src/filter/types.ts
# packages/sdk/src/light_push/light_push.spec.ts
# packages/tests/tests/sharding/auto_sharding.spec.ts
# packages/tests/tests/sharding/static_sharding.spec.ts
# Conflicts:
# packages/sdk/src/store/store.ts
* chore: add ABI for PriceCalculator
* chore: rename LINEA_CONTRACT to RLN_CONTRACT
* chore: add price calculator & test
* fix: import
* chore: convert e2e test to unit
* fix: test
* chore: idCommitmentBigInt validates against contract Q
* chore: fix linting
* chore: add log
* chore: rename Q and make sync
* fix: test
* chore: remove stubbed contract test
* chore: hardcode default constant for Q
* use non deprecated sha256
* chore: use full 32 bytes for bigint
* chore: all storage in LE, but smart contract interactions in BE
* chore: remove references to idCOmmitmentBigInt in Identity
* chore: don't fetch Q from contract
* chore: ByteUtils as a class
* chore: store Identity in BE, convert during Keystore
* chore: add IDCommitmentBigInt part of Identity
* chore: minor improvements
* chore: switch idTrapdoor to LE
* chore: add logs
* chore: rename `DEFAULT_Q` to `RLN_Q`
* chore: rm spec test
* chore: improve modulo logging
* fix(tests): add IDCommitmentBigInt