Summary
Two functions that move/track real funds in payout-automation emit no events — fund_payouts (funding the contract itself) and add_publisher_earnings (crediting a publisher).
Location
contracts/payout-automation/src/lib.rs: fund_payouts (~260), add_publisher_earnings (~275) — no events; schedule_payout and execute_payout do emit events.
Problem
fund_payouts moves real tokens into the contract, and add_publisher_earnings is presumably how a publisher's payable balance gets credited — both are exactly the kind of fund-movement event an off-chain accounting/audit system would want to track, and currently can't without polling storage.
Impact
Medium-high: fund-movement functions being unobservable off-chain is a real accounting-transparency gap for a payout contract specifically.
Acceptance Criteria
Suggested Approach
Mirror the event structure already used in schedule_payout/execute_payout for these two functions.
Summary
Two functions that move/track real funds in payout-automation emit no events —
fund_payouts(funding the contract itself) andadd_publisher_earnings(crediting a publisher).Location
contracts/payout-automation/src/lib.rs:fund_payouts(~260),add_publisher_earnings(~275) — no events;schedule_payoutandexecute_payoutdo emit events.Problem
fund_payoutsmoves real tokens into the contract, andadd_publisher_earningsis presumably how a publisher's payable balance gets credited — both are exactly the kind of fund-movement event an off-chain accounting/audit system would want to track, and currently can't without polling storage.Impact
Medium-high: fund-movement functions being unobservable off-chain is a real accounting-transparency gap for a payout contract specifically.
Acceptance Criteria
fund_payoutsemits an event capturing the sender and amountadd_publisher_earningsemits an event capturing the publisher and amount creditedcargo test -p pulsar-payout-automationpassesSuggested Approach
Mirror the event structure already used in
schedule_payout/execute_payoutfor these two functions.