First off, thank you for considering contributing to Zenith Protocol! It's people like you that make the Stellar open-source ecosystem a reality.
- Fork the repo and create your branch from
main. - Write tests: If you add a new feature to the Soroban contract, you must add a corresponding test in
contracts/zenith_core/src/test.rs. - Format your code: Run
make fmtbefore submitting to ensure it meets ourrustfmtstandards. - Pass the CI: Ensure
make testruns without any panics.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the
README.mdwith details of changes to the interface, this includes new environment variables, exposed ports, useful file locations, and container parameters. - PRs must be approved by at least one core maintainer before being merged.
We follow the Conventional Commits specification for commit messages.
type(scope): subject
body
footer
Types: feat, fix, docs, style, refactor, perf, test, chore
Example:
feat(contract): add wave closing functionality
Implement close_wave function to freeze distribution pool.
Prevents further deposits and point allocations.
Closes #123
All smart contract changes require:
- Unit tests covering happy paths
- Edge case and error condition tests
- Integration tests validating end-to-end flows
Run tests with:
make testWe adhere to Rust community standards via rustfmt. Ensure your code passes:
cargo fmt --all -- --check
cargo clippy --all- Open an issue for bug reports or feature requests at github.com/CodedBay/zenith-stellar
- Check existing issues before opening duplicates
- Use GitHub Discussions for questions and community support
Thank you for making Zenith Protocol better!