rln-v2 Contracts for Waku
Go to file
Aaryamann Challani a576a8949c
chore: emit rate commitment instead of idcommitment (#9)
chore: emit rate commitment instead of idcommitment

chore

chore

forge install: openzeppelin-contracts

v4.9.6

forge install: openzeppelin-contracts-upgradeable

v4.9.6

fix: use oz v4.9.6
2024-06-03 21:09:11 +05:30
.github chore: add the initial contract after few optimizations (#4) 2024-05-23 18:33:41 +05:30
.vscode chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
lib chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
script chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
src chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
test chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
.editorconfig feat: initial commit 2024-05-21 00:46:20 +00:00
.env.example chore: integrate proxy (#8) 2024-05-30 19:21:55 +05:30
.gas-report chore: add deps (#3) 2024-05-22 00:04:00 +05:30
.gas-snapshot chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
.gitattributes feat: initial commit 2024-05-21 00:46:20 +00:00
.gitignore feat: initial commit 2024-05-21 00:46:20 +00:00
.gitmodules chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
.prettierignore feat: initial commit 2024-05-21 00:46:20 +00:00
.prettierrc.yml feat: initial commit 2024-05-21 00:46:20 +00:00
.solhint.json feat: initial commit 2024-05-21 00:46:20 +00:00
CHANGELOG.md feat: initial commit 2024-05-21 00:46:20 +00:00
LICENSE.md feat: initial commit 2024-05-21 00:46:20 +00:00
PROPERTIES.md feat: initial commit 2024-05-21 00:46:20 +00:00
README.md chore(deployments): update deployments script (#6) 2024-05-28 17:56:10 +05:30
codecov.yml feat: initial commit 2024-05-21 00:46:20 +00:00
envCheck.sh chore: integrate proxy (#8) 2024-05-30 19:21:55 +05:30
foundry.toml chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
package.json chore: integrate proxy (#8) 2024-05-30 19:21:55 +05:30
pnpm-lock.yaml chore: add deps (#3) 2024-05-22 00:04:00 +05:30
remappings.txt chore: emit rate commitment instead of idcommitment (#9) 2024-06-03 21:09:11 +05:30
slither.config.json feat: initial commit 2024-05-21 00:46:20 +00:00

README.md

waku-rlnv2-contract Github Actions Foundry License: MIT

Waku's RLNv2 contracts, which include -

  • LazyIMT, which allows the root of the chain to be accessible on-chain.

What's Inside

  • Forge: compile, test, fuzz, format, and deploy smart contracts
  • Forge Std: collection of helpful contracts and cheatcodes for testing
  • Solhint Community: linter for Solidity code

Usage

This is a list of the most frequently needed commands.

Build

Build the contracts:

$ forge build

Clean

Delete the build artifacts and cache directories:

$ forge clean

Compile

Compile the contracts:

$ forge build

Coverage

Get a test coverage report:

$ forge coverage

Deploy

Deploy to Anvil:

$ forge script script/Deploy.s.sol --broadcast --fork-url http://localhost:8545

For this script to work, you need to have a MNEMONIC environment variable set to a valid BIP39 mnemonic.

Deploy to Sepolia:

Ensure that you use the cast wallet to store private keys that will be used in deployments.

$ export RPC_URL=<rpc-url>
$ export ACCOUNT=<account name in foundry keystore>
$ pnpm deploy:sepolia

Format

Format the contracts:

$ forge fmt

Gas Usage

Get a gas report:

$ forge test --gas-report

Lint

Lint the contracts:

$ pnpm lint

Fixing linting issues

For any errors in solidity files, run forge fmt. For errors in any other file type, run pnpm prettier:write.

Test

Run the tests:

$ forge test

Notes

  1. Foundry uses git submodules to manage dependencies. For detailed instructions on working with dependencies, please refer to the guide in the book
  2. You don't have to create a .env file, but filling in the environment variables may be useful when debugging and testing against a fork.

License

This project is licensed under MIT.