We are thrilled that you want to contribute to Atupa! Whether you are fixing a bug, improving the visualization, or adding a new protocol adapter, your help is appreciated.
- Fork the repo: Create your own copy of the repository.
- Clone it:
git clone git@github.com:One-Block-Org/Atupa.git - Create a branch:
git checkout -b feature/cool-new-thing - Make changes: Implement your logic.
- Run tests:
cargo test --workspace - Check lints:
cargo clippy --workspace&cargo fmt --all -- --check - Submit a PR: Open a Pull Request from your branch to our
main.
- Documentation: Please document all public structs and functions using standard
///doc comments. - Tests: All new features must include unit tests. Use
atupa-parser's existing tests as a template for trace-aggregation logic. - Structure: Keep the library and CLI logic separate.
atupa-core: Shared types.atupa-parser: Pure trace transformation logic.atupa-sdk: Unified developer library.bin/atupa: User-facing binary.crates/atupa-<name>: Specialized protocol adapters.
Protocol adapters allow Atupa to understand the high-level business logic of a specific DeFi protocol. To add a new one:
- Create a crate: Use
crates/atupa-lidoas a template. - Implement
ProtocolAdapter: Define how to extract string labels and metrics from an EVM frame. - Export via SDK: Add your crate to
crates/atupa-sdkto make it accessible to library users. - CLI Integration: Update
bin/atupa/src/main.rsto include your adapter in theauditcommand.
By contributing, you agree that your contributions will be licensed under the project's MIT and Apache 2.0 licenses.