Summary
cancel is the only major state-changing function in subscription-manager that doesn't emit an event — subscribe, change_tier, renew, and auto_renew_subscription all do.
Location
contracts/subscription-manager/src/lib.rs:478, function cancel
Problem
A subscription cancellation is exactly the kind of state change an off-chain subscriber-management dashboard would want to react to, but it's currently invisible — an inconsistency with every other lifecycle-affecting function in the same crate.
Impact
Medium: a straightforward observability gap on one specific, fairly important function in an otherwise well-instrumented crate.
Acceptance Criteria
Suggested Approach
Mirror the event structure already used in subscribe/change_tier/renew in the same file — this is a small, self-contained, good-first-issue-sized change.
Summary
cancelis the only major state-changing function in subscription-manager that doesn't emit an event —subscribe,change_tier,renew, andauto_renew_subscriptionall do.Location
contracts/subscription-manager/src/lib.rs:478, functioncancelProblem
A subscription cancellation is exactly the kind of state change an off-chain subscriber-management dashboard would want to react to, but it's currently invisible — an inconsistency with every other lifecycle-affecting function in the same crate.
Impact
Medium: a straightforward observability gap on one specific, fairly important function in an otherwise well-instrumented crate.
Acceptance Criteria
cancelemits an event capturing the subscriber and the cancelled subscription's detailscargo test -p pulsar-subscription-managerpassesSuggested Approach
Mirror the event structure already used in
subscribe/change_tier/renewin the same file — this is a small, self-contained, good-first-issue-sized change.