Description
Precompute total required USDC, validate every amount is positive, ensure on-ledger balance covers total, then perform transfers; emit per-leg events.
Requirements and context
- Must fail without partial external transfers if later legs would fail.
- Document vector size policy (see related cap issue).
Suggested execution
- Fork the repo and create a branch:
git checkout -b feature/revenue-pool-batch-distribute
- Implement changes in the Callora-Contracts Soroban workspace (
contracts/*/src/).
- Run
cargo fmt, cargo clippy --all-targets --all-features -- -D warnings, and cargo test from the workspace root.
- For WASM release builds:
cargo build --target wasm32-unknown-unknown --release -p callora-revenue-pool (adjust -p if the crate name differs).
Deliverables
lib.rs + test.rs.
- Edge tests: duplicates, many recipients, insufficient aggregate balance.
Test and commit
- Run tests and
./scripts/coverage.sh (or cargo tarpaulin per tarpaulin.toml).
- Cover edge cases; include summarized test output and brief security notes in the PR description.
Example commit message
feat(revenue-pool): batch_distribute validation and tests
Guidelines
- Minimum 95% line coverage for touched crates (workspace policy).
- Clear documentation (Rust
/// on public items where applicable; repo markdown as needed).
- Timeframe: 96 hours from assignment unless agreed otherwise.
Description
Precompute total required USDC, validate every amount is positive, ensure on-ledger balance covers total, then perform transfers; emit per-leg events.
Requirements and context
Suggested execution
git checkout -b feature/revenue-pool-batch-distributecontracts/*/src/).cargo fmt,cargo clippy --all-targets --all-features -- -D warnings, andcargo testfrom the workspace root.cargo build --target wasm32-unknown-unknown --release -p callora-revenue-pool(adjust-pif the crate name differs).Deliverables
lib.rs+test.rs.Test and commit
./scripts/coverage.sh(orcargo tarpaulinpertarpaulin.toml).Example commit message
Guidelines
///on public items where applicable; repo markdown as needed).