Skip to content

[contracts] Implement Treasury.emergency_drain() #966

Description

@Ehonrie

Implement emergency_drain() in contracts/treasury/src/lib.rs. Drains all treasury funds in an emergency.

What to implement:

  • admin.require_auth() as first call
  • Verify protocol is paused by reading factory config
  • Transfer full BALANCE to recipient, set BALANCE=0
  • Append drain to WITHDRAWAL_LOG, emit EmergencyDrain event, return amount drained

Acceptance Criteria:

  • Non-admin panics
  • Panics if protocol is not paused
  • Full balance transferred, BALANCE=0 after drain
  • EmergencyDrain event emitted
  • Unit test covers both success and not-paused failure

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions