Source Code

(define-constant O tx-sender)
(define-constant E1 (err u990))
(define-constant E2 (err u991))
(define-data-var paused bool false)
(define-data-var pause-reason (string-ascii 64) "")
(define-data-var paused-at uint u0)
(define-data-var pause-count uint u0)
(define-public (pause (reason (string-ascii 64)))
 (begin (asserts! (is-eq tx-sender O) E1)
  (asserts! (not (var-get paused)) E2)
  (var-set paused true)
  (var-set pause-reason reason)
  (var-set paused-at stacks-block-height)
  (var-set pause-count (+ (var-get pause-count) u1))
  (ok true)))
(define-public (unpause)
 (begin (asserts! (is-eq tx-sender O) E1)
  (asserts! (var-get paused) E2)
  (var-set paused false)
  (var-set pause-reason "")
  (ok true)))
(define-read-only (is-paused) (var-get paused))
(define-read-only (get-pause-info)
 {paused: (var-get paused),
  reason: (var-get pause-reason),
  paused-at: (var-get paused-at),
  total-pauses: (var-get pause-count)})

Functions (4)

FunctionAccessArgs
pausepublicreason: (string-ascii 64
unpausepublic
is-pausedread-only
get-pause-inforead-only