First off, thank you for considering contributing to EcoTask! It's people like you that make EcoTask a great tool for the environmental community.
To build and test the smart contracts, you will need:
- Rust (latest stable version, at least 1.75+)
- Soroban CLI
wasm32-unknown-unknowntarget:rustup target add wasm32-unknown-unknown
If you find a bug, please create an issue using the Bug Report template. Include as much detail as possible, such as:
- Steps to reproduce the bug.
- Expected behavior vs actual behavior.
- Version of Rust and Soroban CLI you are using.
Enhancement suggestions are welcome! Please open an issue using the Feature Request template and describe:
- The problem this enhancement solves.
- A clear and concise description of the proposed change.
- Fork the repository and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure the test suite passes (
cargo test). - Format your code (
cargo fmt). - Lint your code (
cargo clippy). - Update the documentation if necessary.
- Submit a pull request.
Build all contracts to WASM:
cargo build --target wasm32-unknown-unknown --releaseRun the full test suite:
cargo testWe maintain strict linting rules. Ensure your code is clean before submitting:
# Check formatting
cargo fmt --all -- --check
# Run clippy
cargo clippy --all-targets --all-features -- -D warnings- Follow standard Rust naming conventions.
- Keep functions small and focused.
- Document public functions and complex logic using Doc comments (
///). - Soroban-specific: Be mindful of ledger footprint and CPU cycles.
If you discover a security vulnerability, please do NOT open a public issue. Instead, email us at security@ecotask.network.
Thank you for your contributions! 🌍