8 Commits

Author SHA1 Message Date
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
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
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