Description
A configurable protocol fee deducted from each escrow release and sent to a treasury address funds platform operations sustainably.
What to do
- Add
DataKey::ProtocolFeeBps and DataKey::ProtocolTreasury to storage_types.rs
- Add
set_protocol_fee(e, admin, fee_bps: u32, treasury: Address) — admin-only, fee_bps <= 500 (max 5%)
- In
release_escrow: compute and deduct fee, transfer to treasury, release remainder to beneficiary
- Add
get_protocol_fee(e) -> (u32, Option<Address>) view
- Add tests: 0% fee, 1% fee correctly deducted, >500bps panics
Files touched
src/storage_types.rs
src/escrow.rs
src/contract.rs
src/escrow_test.rs
PR requirement
Closes #[issue_id] — Timeframe: 72 hours
Description
A configurable protocol fee deducted from each escrow release and sent to a treasury address funds platform operations sustainably.
What to do
DataKey::ProtocolFeeBpsandDataKey::ProtocolTreasurytostorage_types.rsset_protocol_fee(e, admin, fee_bps: u32, treasury: Address)— admin-only,fee_bps <= 500(max 5%)release_escrow: compute and deduct fee, transfer to treasury, release remainder to beneficiaryget_protocol_fee(e) -> (u32, Option<Address>)viewFiles touched
src/storage_types.rssrc/escrow.rssrc/contract.rssrc/escrow_test.rsPR requirement
Closes #[issue_id]— Timeframe: 72 hours