* 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: 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