Thank you for your interest in contributing to LazorKit.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/program-v2.git - Install prerequisites (see DEVELOPMENT.md)
- Build the program:
cargo build-sbf - Run tests:
cd tests-sdk && npm test
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes
- Ensure all tests pass:
cargo test # Rust unit tests cd tests-sdk && npm test # Integration tests
- Submit a pull request
- Follow
rustfmtdefaults - All state structs must implement
NoPaddingvia derive macro - Use
#[repr(C, align(8))]for account structures - No Borsh serialization -- zero-copy only (pinocchio)
- TypeScript strict mode
- Use
@solana/web3.jsv1 conventions
- Keep PRs focused on a single concern
- Include tests for new features
- Update documentation if behavior changes
- Reference any related issues
All PRs must:
- Pass
cargo test(35+ Rust tests) - Pass
npm testintests-sdk/(56+ tests: integration, security, permissions, sessions) - Not break the benchmark script (
npm run benchmark)
If you discover a vulnerability, please follow the process in SECURITY.md. Do not open a public issue.
By contributing, you agree that your contributions will be licensed under the MIT License.