Description:
Expose controlled per-step campaign execution through a secure and observable UI action.
Tasks:
- Implement Execute button wired to
execute_buyback_step
- Disable action based on campaign status/permissions
- Show pending/success/failure states with transaction hash links
- Add integration tests for state transitions and wallet-failure handling
Acceptance Criteria:
Execute-step button behavior is reliable across transaction outcomes with passing tests.