Skip to content

fix(contracts): add pause/unpause mechanism across all contracts (#253) - #358

Open
Kami-no-san wants to merge 4 commits into
AetherEdu:mainfrom
Kami-no-san:fix/253-pause-unpause-mechanism
Open

fix(contracts): add pause/unpause mechanism across all contracts (#253)#358
Kami-no-san wants to merge 4 commits into
AetherEdu:mainfrom
Kami-no-san:fix/253-pause-unpause-mechanism

Conversation

@Kami-no-san

Copy link
Copy Markdown
Contributor

Closes #253

AetherEdu#253)

Add circuit-breaker-style pause mechanism allowing administrators to halt
sensitive contract operations in emergencies:

- Create contracts/src/utils/pause.rs with PauseUtils implementing
  is_paused, require_not_paused, pause, and unpause with admin-only
  access control and event emission

- Add Paused variant to StorageKey in utils/storage.rs

- Add PauseUtils import and pause checks to 17 mutating functions in
  lib.rs (issue_credential, create_course, verify_credential,
  issue_credential_with_expiration, renew_credential,
  revoke_credential_registry, batch_update_expiration_status,
  mint_dynamic_nft, evolve_nft, fuse_nfts, transfer_nft,
  register_attester, attest_credential, revoke_attestation,
  deactivate_attester, reactivate_attester, issue_credentials_batch)

- Add pause, unpause, is_paused governance functions

- Add comprehensive pause_test.rs with 10 tests covering
  admin/non-admin pause, mutating methods blocked, read methods
  working, pause persistence, credential/NFT/attestation operations

Closes AetherEdu#253
@Kami-no-san
Kami-no-san force-pushed the fix/253-pause-unpause-mechanism branch from 71a4aa7 to a5283ac Compare July 26, 2026 23:48
@Kami-no-san
Kami-no-san force-pushed the fix/253-pause-unpause-mechanism branch 2 times, most recently from 786b382 to a5e3ce0 Compare July 27, 2026 00:21
@Kami-no-san
Kami-no-san force-pushed the fix/253-pause-unpause-mechanism branch from a5e3ce0 to 53d1d35 Compare July 27, 2026 00:24
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.

[Contracts] Implement pause/unpause mechanism across all contracts

1 participant