Summary
If a critical bug or exploit is discovered after deployment, there is currently no way to stop the damage without abandoning the contract entirely. An emergency pause mechanism lets the protocol admin halt all state-changing operations (buy, sell, registration) while keeping all read-only view functions live, so users can still see their balances and prices while the team investigates and prepares a fix.
Scope
- Add a
paused: bool field to protocol config storage (default: false)
- Add
pause() and unpause() admin-only functions that set this flag and emit a ProtocolPaused / ProtocolUnpaused event
- At the start of
buy, sell, and register_creator, check the flag and panic with a new ProtocolPaused error variant if true
- All
get_* / quote_* read-only functions are unaffected — they must continue to work while paused
- Only the protocol admin address (from config) may call
pause or unpause
Acceptance Criteria
Coordinate on Telegram
Summary
If a critical bug or exploit is discovered after deployment, there is currently no way to stop the damage without abandoning the contract entirely. An emergency pause mechanism lets the protocol admin halt all state-changing operations (buy, sell, registration) while keeping all read-only view functions live, so users can still see their balances and prices while the team investigates and prepares a fix.
Scope
paused: boolfield to protocol config storage (default:false)pause()andunpause()admin-only functions that set this flag and emit aProtocolPaused/ProtocolUnpausedeventbuy,sell, andregister_creator, check the flag and panic with a newProtocolPausederror variant if trueget_*/quote_*read-only functions are unaffected — they must continue to work while pausedpauseorunpauseAcceptance Criteria
pause()sets the flag and emitsProtocolPausedeventunpause()clears the flag and emitsProtocolUnpausedeventProtocolPausedwhen pausedProtocolPausedwhen pausedProtocolPausedwhen pausedpauseorunpauseis rejected withUnauthorizedCoordinate on Telegram