Thank you for your interest in contributing to Finchippay-Solution!
- Fork the repository at https://github.com/FinChippay/Finchippay-Solution
- Clone your fork:
git clone https://github.com/<your-handle>/Finchippay-Solution.git - Set up your local environment:
bash scripts/setup-dev.sh - Create a feature branch:
git checkout -b feature/your-feature
# Backend
cd backend && cp .env.example .env && npm install && npm run dev
# Frontend (new terminal)
cd frontend && cp .env.example .env && npm install && npm run dev
# Smart contract
cd contracts/finchippay-contract && cargo test| Check | Command |
|---|---|
| Backend lint | cd backend && npm run lint |
| Backend tests | cd backend && npm test |
| Frontend lint | cd frontend && npm run lint |
| Frontend type-check | cd frontend && npm run type-check |
| Frontend unit tests | cd frontend && npm test |
| Contract tests | cd contracts/finchippay-contract && cargo test |
All checks must pass before a PR will be merged.
We use Conventional Commits:
feat: add streaming payment support
fix: handle zero-balance account on dashboard
docs: update API reference for /api/tips
test: add escrow cancel edge-case tests
chore: bump soroban-sdk to 21.0.0
- Keep PRs focused — one feature or bug-fix per PR.
- Add or update tests for any new behaviour.
- Update relevant docs and the CHANGELOG under
[Unreleased]. - Reference any related GitHub issues with
Closes #<issue>.
- Rust (Soroban):
rustfmtdefault style;clippywith--deny warnings. All arithmetic must usechecked_*methods. Every mutating contract function must authenticate the caller withrequire_auth(). New features must include tests and consider bounds/limits to prevent griefing. - TypeScript/JavaScript: Prettier + ESLint (configs in repo root). Never log or commit Stellar secret keys. Use regex redaction (
S[A-Z2-7]{55}) before any logging. - CSS: Tailwind utility classes; avoid custom CSS unless necessary.
Please use the GitHub issue templates:
By contributing you agree that your contributions will be licensed under the MIT License.