;; SatGuard Emergency Controls
(define-constant err-owner (err u1110))
(define-data-var admin principal tx-sender)
(define-data-var paused bool false)
(define-data-var pause-reason (string-ascii 50) "")
(define-data-var paused-at uint u0)
(define-read-only (is-paused) (var-get paused))
(define-read-only (get-pause-info) (ok {paused: (var-get paused),reason: (var-get pause-reason),at: (var-get paused-at)}))
(define-public (pause (reason (string-ascii 50)))
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set paused true)
(var-set pause-reason reason)
(var-set paused-at block-height)
(print {e: "protocol-paused",reason: reason,at: block-height})
(ok true)))
(define-public (unpause)
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set paused false)
(var-set pause-reason "")
(print {e: "protocol-unpaused",at: block-height})
(ok true)))
(define-public (set-admin (new-admin principal))
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(var-set admin new-admin)
(print {e: "admin-transferred",from: tx-sender,to: new-admin})
(ok true)))