Skip to content

Revenue pool: batch_distribute — sum validation + atomic transfers #122

@greatest0fallt1me

Description

@greatest0fallt1me

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.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions