This PR systematically addresses four major issues in the Quipay repository, ranging from frontend reporting features to backend infrastructure and smart contract testing.
- Feature: Added
generatePayrollReportinsrc/util/exportData.tsto support CSV and PDF exports. - Logic: Implemented grouping by worker with subtotals.
- Math: Integrated curve-based earned amount calculation using
calculateStreamProgress. - UI: Updated
ExportModalto support PDF format selection.
- Fuzz Targets: Added three new
cargo-fuzztargets:arithmetic_fuzz: Directly testscompute_vestedwith all curves and edge cases.batch_create_fuzz: Tests atomicity and limits ofcreate_stream_batch.claimable_fuzz: Verifiesget_claimablelogic over time.
- CI: Updated
nightly-fuzz.ymlto run all targets (5 mins each) and upload corpus/artifacts. - Corpus: Initialized corpus directories for the new targets.
- New Tests:
tests/stream-create.spec.ts: Full wizard journey for stream creation (renamed fromstream-creation.spec.ts).tests/stream-withdraw.spec.ts: Happy path for worker withdrawal from an active stream.
- CI Integration: Updated
e2e-tests.ymlto run on every Pull Request tomainand block merge on failure.
- Configuration: Setup
drizzle-kitin the backend and documented the workflow inbackend/MIGRATIONS.md. - Automation: Rewrote
backend/src/db/migrate.tsto use standard Drizzle migrators. - Startup: Added a migration check to
backend/src/index.tsto automatically run pending migrations in production or whenRUN_MIGRATIONS=true. - CI: Added a verification step to
backend.ymlto ensure migration files are up-to-date with the schema.
- Ran
npm run buildin the root. - Ran
npm run lintin the root. - Verified backend migrations logic locally.
- Verified fuzz target registration in
fuzz/Cargo.toml.
- Code follows project styling guidelines.
- All new features are documented.
- CI pipelines are updated and passing.
- No breaking changes to existing contract interfaces.