Skip to content

Conversation

@dinahmaccodes
Copy link

Closes #19

Add Global Admin Pause/Unpause Functionality

Summary

I introduced a global emergency pause mechanism allowing the admin to halt all mutative contract operations in case of critical bugs or exploits.

Changes

  • Admin Authorization: Admin address set during contract initialization
  • Pause State Management: Boolean flag stored in instance storage (IsPaused)
  • Mutative Function Guards: Added pause checks to:
    • create_campaign
    • save_pool
    • update_pool_state
  • Admin Controls:
    • pause() - Halts all mutative operations (admin only)
    • unpause() - Resumes normal operations (admin only)
  • Events: Emits contract_paused and contract_unpaused events
  • Error Handling: Added NotInitialized error for unset admin scenarios

Safety Features

  • Only the contract admin can pause/unpause
  • Prevents double-pause and double-unpause operations
  • Read operations remain available during pause
  • No impact on existing pool-specific pause functionality

Testing

  • All 30 existing tests pass
  • Added test coverage for pause blocking update_pool_state
  • Verified admin-only authorization enforcement
image

Notes

This is a contract-wide safety mechanism. Per-pool pause functionality is tracked separately in another issue as stated in issue I was assigned.

@dinahmaccodes
Copy link
Author

Fixed conflicts @martinvibes

All tests passing once more

image

@martinvibes
Copy link
Contributor

@dinahmaccodes pls fix conflict and make sure CI is passing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add emergency pause for all pools

2 participants