Tanya S
8a338f3544
Chore/update-imt-dep ( #49 )
...
* use npm package for imt.sol dependency
* Use github as source for imt.sol dep
* add specific pnpm version dependency
* update pnpm version used in ci.yml
* update pnpm-lock.yml for new imt.sol dep
2025-11-28 10:18:07 +02:00
Tanya S
fd9d4f4d7f
Increase MAX_TOTAL_RATELIMIT_PER_EPOCH on deployment ( #48 )
2025-11-25 14:42:08 +02:00
Tanya S
81ede4d5f4
Add root storage cache ( #47 )
...
* Add fixed array for root history
* Update _eraseMemberships to upate roots
* Improve comments for new fixed array
* Update to clarify comments
* Add root cache tests and emit root storage event
2025-11-24 13:52:05 +02:00
Roman Zajic
65f9e58df9
chore: adversarial tests ( #42 )
...
* test: malicious upgrade drains funds
* fix: formatting
* test: show success when unauthorized upgrade after malicious
* test: offchain proof post lazy erase
- multi-user erase reuse race
* fix: line length
* fix: remove offchain lazy erase test - rate limit still applies
* test: timestamp manipulation
* fix: rename tests
* test: front running for registration
* fix: unused variables
* test: register during spam conditions
* fix: delete failing tests
- test_MaliciousUpgradeDrainsFunds
- testFrontrunning_RegistrationRevertsForVictim
- testFrontrunning_SetFillingSpam
* fix: delete MaliciousImplementation
* fix: formatting with a new Foundry version
* test: testEraseAndReuse with Echidna
* fix: remove limit check
* fix: remove test_MultiUserEraseReuseRace
- test_TimestampManipulationRaces
* fix: skip Echidna contract during forge test
* test: Echidna contract with invariants
- registerMembership
- attemptExtensionRace
- attemptErasureRace
* fix: tune config file
* fix: run and cleanup scripts for echidna
* test: Echidna test replay
* fix: Solidity version
* fix: test_attemptExtensionRace_WakuRLN
* fix: invalid commitment in test_attemptExtensionRace_WakuRLN
* fix: invalid commitments in
test_attemptErasureRace_WakuRLN
* fix: line length
* fix: skip all Echidna tests in CI
* chore: fuzz test expansion (#40 )
* test: register invalid
* test: multiple registers
* fix: increase max rejects
* test: erasure with fullErase idCommitments
* fix: reduce cyclomatic complexity
* fix: reduce complexity one step less
* fix: run tests in parallel
* fix: undo run tests in parallel - default already
* test: invalid extension with extreme values
* fix: line length
* test: set MaxTotalRateLimit
* test: set ActiveDuration
* test: Merkle inserts
* test: Merkle erasures
* test: GetRateCommitmentsRange
* test: GetMerkleProof
* fix: optimized MerkleInsert MerkleErasures
* fix: update gas snapshot
* test: malicious upgrade drains funds
* fix: formatting
* test: show success when unauthorized upgrade after malicious
* test: offchain proof post lazy erase
- multi-user erase reuse race
* fix: line length
* fix: remove offchain lazy erase test - rate limit still applies
* fix: remove fuzz tests from CI run
* fix: formatting
* fix: formatting coverage
* test: timestamp manipulation
* fix: rename tests
* test: front running for registration
* fix: unused variables
* test: register during spam conditions
* fix: delete failing tests
- test_MaliciousUpgradeDrainsFunds
- testFrontrunning_RegistrationRevertsForVictim
- testFrontrunning_SetFillingSpam
* fix: delete MaliciousImplementation
* fix: formatting with a new Foundry version
* test: testEraseAndReuse with Echidna
* fix: remove limit check
* fix: remove test_MultiUserEraseReuseRace
- test_TimestampManipulationRaces
* fix: skip Echidna contract during forge test
* test: Echidna contract with invariants
- registerMembership
- attemptExtensionRace
- attemptErasureRace
* fix: tune config file
* fix: run and cleanup scripts for echidna
* test: Echidna test replay
* fix: Solidity version
* fix: test_attemptExtensionRace_WakuRLN
* fix: invalid commitment in test_attemptExtensionRace_WakuRLN
* fix: invalid commitments in
test_attemptErasureRace_WakuRLN
* fix: line length
* fix: skip all Echidna tests in CI
* test: register invalid
* test: multiple registers
* fix: increase max rejects
* test: erasure with fullErase idCommitments
* fix: reduce cyclomatic complexity
* fix: reduce complexity one step less
* test: invalid extension with extreme values
* fix: line length
* test: set MaxTotalRateLimit
* test: set ActiveDuration
* test: Merkle inserts
* test: Merkle erasures
* test: GetRateCommitmentsRange
* test: GetMerkleProof
* fix: optimized MerkleInsert MerkleErasures
* fix: update gas snapshot
* fix: formatting
* fix: remove tests with high overlap
* fix: remove all tests originally meant for fuzzing
* fix: rename merged Echidna tests
* fix: formatting
* test: fuzzing for essential invariants
* test: EchidnaTest contract
* fix: remove unnecessary imports
* fix: remove unnecessary helpers
* fix: remove bounds from invariants
* fix: change test mode to property
* fix: update run script
* fix: max_test_rejects back to the original value
* fix: remove unused local variables
* test: malicious upgrade drains funds
* fix: formatting
* test: show success when unauthorized upgrade after malicious
* test: offchain proof post lazy erase
- multi-user erase reuse race
* fix: line length
* fix: remove offchain lazy erase test - rate limit still applies
* test: timestamp manipulation
* fix: rename tests
* test: front running for registration
* fix: unused variables
* test: register during spam conditions
* fix: delete failing tests
- test_MaliciousUpgradeDrainsFunds
- testFrontrunning_RegistrationRevertsForVictim
- testFrontrunning_SetFillingSpam
* fix: delete MaliciousImplementation
* fix: remove test_MultiUserEraseReuseRace
- test_TimestampManipulationRaces
* test: Echidna test replay
* fix: Solidity version
* fix: test_attemptExtensionRace_WakuRLN
* fix: invalid commitment in test_attemptExtensionRace_WakuRLN
* fix: invalid commitments in
test_attemptErasureRace_WakuRLN
* fix: line length
* fix: cleanup after rebase
* fix: remove redundant file
* fix: formatting
* fix: formatting
* fix: adorno + archive EchidnaReplayRaces.t.sol
* test: focus on erasures with timestamps
* fix: remove isolated test
* test: Echidna tests for races
- add dynamic assertions before operation
- untrack erased IDs
* fix: remove unused replay test
2025-11-14 19:16:11 +08:00
Roman Zajic
f5fff5cdc2
chore: fuzz test expansion ( #40 )
...
* test: register invalid
* test: multiple registers
* fix: increase max rejects
* test: erasure with fullErase idCommitments
* fix: reduce cyclomatic complexity
* fix: reduce complexity one step less
* fix: run tests in parallel
* fix: undo run tests in parallel - default already
* test: invalid extension with extreme values
* fix: line length
* test: set MaxTotalRateLimit
* test: set ActiveDuration
* test: Merkle inserts
* test: Merkle erasures
* test: GetRateCommitmentsRange
* test: GetMerkleProof
* fix: optimized MerkleInsert MerkleErasures
* fix: update gas snapshot
* test: malicious upgrade drains funds
* fix: formatting
* test: show success when unauthorized upgrade after malicious
* test: offchain proof post lazy erase
- multi-user erase reuse race
* fix: line length
* fix: remove offchain lazy erase test - rate limit still applies
* fix: remove fuzz tests from CI run
* fix: formatting
* fix: formatting coverage
* test: timestamp manipulation
* fix: rename tests
* test: front running for registration
* fix: unused variables
* test: register during spam conditions
* fix: delete failing tests
- test_MaliciousUpgradeDrainsFunds
- testFrontrunning_RegistrationRevertsForVictim
- testFrontrunning_SetFillingSpam
* fix: delete MaliciousImplementation
* fix: formatting with a new Foundry version
* test: testEraseAndReuse with Echidna
* fix: remove limit check
* fix: remove test_MultiUserEraseReuseRace
- test_TimestampManipulationRaces
* fix: skip Echidna contract during forge test
* test: Echidna contract with invariants
- registerMembership
- attemptExtensionRace
- attemptErasureRace
* fix: tune config file
* fix: run and cleanup scripts for echidna
* test: Echidna test replay
* fix: Solidity version
* fix: test_attemptExtensionRace_WakuRLN
* fix: invalid commitment in test_attemptExtensionRace_WakuRLN
* fix: invalid commitments in
test_attemptErasureRace_WakuRLN
* fix: line length
* fix: skip all Echidna tests in CI
* test: register invalid
* test: multiple registers
* fix: increase max rejects
* test: erasure with fullErase idCommitments
* fix: reduce cyclomatic complexity
* fix: reduce complexity one step less
* test: invalid extension with extreme values
* fix: line length
* test: set MaxTotalRateLimit
* test: set ActiveDuration
* test: Merkle inserts
* test: Merkle erasures
* test: GetRateCommitmentsRange
* test: GetMerkleProof
* fix: optimized MerkleInsert MerkleErasures
* fix: update gas snapshot
* fix: formatting
* fix: remove tests with high overlap
* fix: remove all tests originally meant for fuzzing
* fix: rename merged Echidna tests
* fix: formatting
* test: fuzzing for essential invariants
* test: EchidnaTest contract
* fix: remove unnecessary imports
* fix: remove unnecessary helpers
* fix: remove bounds from invariants
* fix: change test mode to property
* fix: update run script
* fix: max_test_rejects back to the original value
* fix: remove unused local variables
2025-11-07 09:20:49 +08:00
Tanya S
851fa0803b
Add minimum mint value to use mintWithEth function ( #44 )
...
* mintWithEth function now requires minimum amount
* Update README and comments to explain minting ratio and lower limit
* Update test/TestStableToken.t.sol
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix linting
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-10 08:12:59 +02:00
Roman Zajic
e75ac913e5
chore: RLN contract unit test expansion 2 ( #39 )
...
* test: mass registration and erasure
- warning cleanup
* test: large pagination query
* test: empty range pagination query
* test: impact of duration changes
* test: upgrade with invalid implementation
* test: unauthorized merkle tree modifications
* test: owner configuration updates
* fix: update gas-snapshot
2025-09-30 09:15:30 +10:00
Tanya S
a1d97fcad9
Initialise TST MaxSupply on deployment ( #37 )
...
* Implement init maxSupply when deploying TST
* README and comments updates
* Move the maxSupply!=zero check to init function and add test
* Fix mintWithEth command in test/README.md
* Remove incorrect proxy deployment in TestStableTokenFactory
* Remove redundant post deploy check
* Update test/README with default token amount in ETH
* Update README section on Proxy address upgrade
* Add example env for TST commands
* Add prerequisites section to test/README
2025-09-25 09:56:36 +02:00
Tanya S
c3ec4be6b4
Add string revert error event for onlyOwnerOrMinter ( #36 )
...
* Add string revert for AccountNotMinter error
* Add TST initialize argument in WakuRlnV2.t.sol
2025-09-15 14:03:03 +02:00
Roman Zajic
c9f6ae5d8e
chore: RLN contract unit test expansion ( #31 )
...
* test: erasing non-existent membership
* test: grace period extension edge cases
* test: max total rate limit edge cases
* test: Merkle Tree update after erasure and reuse
* fix: indent
* test: contract wit zero grace period
* test: full cleanup erasure
* test: token transfer failures
- reentrancy protection
* test: WakuRlnV2 with ReentrancyGuard
* fix: line length
* fix: revert to original WakuRlnV2
* test: reinitialization protection - debug
* test: reinitialization protection - non debug
* test: simplify test reinitialization protection
* fix: MaliciousToken and split reentrancy test
- test__ReentrancyProtectionRegister
- test__ReentrancyProtectionWithdraw
* fix: add more logging to
- test__ReentrancyProtectionWithdraw
* fix: reinitialization protection test
* fix: price calculator reconfiguration
* test: zero price edge case
- add MockPriceCalculator
* fix: calculate impl for MockPriceCalculator
* fix: remove reentrancy tests
* fix: remove ReentrancyGuard import
* fix: recover original comment
* fix: update gas-snapshot
* fix: add revert reason to test reinitialization protection
* fix: cleanup MaliciousToken
* fix: line length
* fix: remove owner transfer in setup
* fix: line length
2025-09-12 22:54:13 +10:00
Tanya S
71191ce151
chore: Add mint function that requires ETH to burn ( #33 )
...
* remove ownable to clear compiler error
* Add mintWithEth function to TST to burn Eth
* Update test/README.md with mintWithETH usage
* remove unnecessary 'revert ETHTransferFailed' in mintWithETH
* Move emit functions to top of TestStabletoken.t.sol script
* Add max token supply mechanism for TST
* Linting fix
* Update max eth used in WakuRlnv2 test
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use 1 to 1 eth burn per token ratio
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-11 10:45:43 +02:00
Tanya S
b4508dd0d4
Use proxy for token contract ( #30 )
...
* Add proxy contract for TST
* Fix token proxy update function to use provided new TST address
* Transfer token proxy contract ownership to deployer
* Add Token Proxy Contract Owner as init input
* Add UUPSUPgradeable to TST
* Formatting
* fix import format
* Add README to explain TST usage
* Linting fix
* Check TST test transfer return val
* Add descriptions in README for TST usage
* Fix linting
* Use TST token deployer in test conrtact, update test README
* USe assertTrue in TST test
2025-08-26 17:34:32 +02:00
Tanya S
900d4f95e0
chore: Add MINTER-ROLE and list to TST ( #29 )
...
* Add Approver list of accounts that can mint token
* Update Approver to Minter role
* Renaming of mapping and add events for minter add/remove
* Formatting fix
2025-08-07 10:17:04 +02:00
Tanya S
969d3ee22b
chore: Add new test token with only owner mint ( #28 )
...
* Add TestStableToken with only owner minting
* Add tests for TestStableToken
* Formatting
* Use 'Ownable' for access control
* fix linting
2025-07-30 08:51:26 +02:00
richΛrd
ad0dc9a81d
chore: remove permit ( #27 )
2025-06-21 19:11:08 -04:00
fryorcraken
b7e9a9b1bc
Adding funding address for drips ( #25 )
2025-04-10 12:08:28 +10:00
richΛrd
5d8fd57ae1
feat: permit ( #22 )
2024-11-01 16:22:15 -04:00
richΛrd
e46ce5aa1c
feat: deploy to Linea ( #18 )
2024-11-01 10:23:28 -04:00
Sergei Tikhomirov
cbd56ed0f4
chore: clarify Owner privileges in README as implemented in afb858 ( #23 )
2024-10-30 13:30:15 +01:00
richΛrd
afb8585f62
feat: membership ( #13 )
2024-10-23 12:22:32 -04:00
Sergei Tikhomirov
1c72717bc9
fix: include dependency installation in README ( #15 )
2024-09-23 18:00:10 +02:00
rymnc
64df4593c6
fix: update gitpkg url for zk-kit, default max msg limit 100
2024-06-27 13:59:24 +05:30
rymnc
28a8cc00b5
chore: add linea sepolia deployment
2024-06-26 14:29:18 +05:30
rymnc
89ea39b6fc
fix: appropriate hardfork for cardona
2024-06-04 19:32:13 +05:30
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
Aaryamann Challani
48542f3f04
chore: integrate proxy ( #8 )
...
* forge install: openzeppelin-foundry-upgrades
v0.3.1
* forge install: openzeppelin-contracts-upgradeable
v5.0.2
* test: integrate transparent proxy
* test: patch
* fix ✅
* fix: adorno
* fix: add cardona deployment
* fix: broken test for upgrade
* fix: cleanup
* fix: cleanup
* fix: lint
* fix: remove upgrade from Deploy.s.sol
* fix: envCheck
2024-05-30 19:21:55 +05:30
Aaryamann Challani
5f0d62d52e
chore(tests): add kats test for merkle proof ( #7 )
...
* chore(tests): add kats test for merkle proof
fix: cleanup, snapshot
* fix: fixed size return for proof
* fix: remove redundant size check
2024-05-28 18:51:01 +05:30
Aaryamann Challani
834cdbf5bb
chore(deployments): update deployments script ( #6 )
2024-05-28 17:56:10 +05:30
Aaryamann Challani
4c6b8fb253
chore: tests ( #5 )
...
* chore: tests
* fix: add helper to get all metadata from idCommitment
* fix: max runs
* fix: full tree test
* fix: refactor, reuse function for memberExists
* fix: getCommitments range and cut scope from other tests
* fix: range for assert on pagination
* fix: duped conditionals
2024-05-28 15:33:16 +05:30
Aaryamann Challani
6d028a1308
chore: add the initial contract after few optimizations ( #4 )
...
* chore: add deps
* fix: fmt in package.json
* chore: add the initial contract after few optimizations
* fix: lint
* chore: more optimizations
* chore: adorno
* fix: test getCommitments too
* chore: add kats
* fix: adorno
* fix: install deps before running build
* ci: add pnpm install before other jobs
* fix: remove magic number
* fix: remove unused errors,events and hardcode depth
2024-05-23 18:33:41 +05:30
Aaryamann Challani
f681c3189e
chore: add deps ( #3 )
...
* chore: add deps
* fix: fmt in package.json
2024-05-22 00:04:00 +05:30
Aaryamann Challani
440a1d66ba
chore: create dependabot.yml
2024-05-21 22:20:14 +05:30
Aaryamann Challani
809d7edc11
fix(ci): remove unused jobs ( #2 )
...
* fix(ci): remove unused jobs
* fix: remove verify in pr template
* fix: readme fixes
2024-05-21 21:30:07 +05:30
Aaryamann Challani
0e8071f2d3
docs(readme): update and remove template docs ( #1 )
2024-05-21 21:02:39 +05:30
rymnc
284cc38916
feat: initial commit
2024-05-21 00:46:20 +00:00