Source Code

;; SatGuard Blacklist
(define-constant err-owner (err u930))
(define-constant err-nf (err u931))
(define-data-var admin principal tx-sender)
(define-data-var bl-count uint u0)
(define-map blacklist {who: principal} {reason: (string-ascii 50),ba: uint,by: principal})
(define-read-only (is-blacklisted (who principal)) (is-some (map-get? blacklist {who: who})))
(define-read-only (get-blacklist-entry (who principal)) (map-get? blacklist {who: who}))
(define-read-only (get-bl-count) (var-get bl-count))
(define-public (add-to-blacklist (who principal) (reason (string-ascii 50)))
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (map-set blacklist {who: who} {reason: reason,ba: block-height,by: tx-sender})
    (var-set bl-count (+ (var-get bl-count) u1))
    (print {e: "blacklisted",who: who,reason: reason})
    (ok true)))
(define-public (remove-from-blacklist (who principal))
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (asserts! (is-blacklisted who) err-nf)
    (map-delete blacklist {who: who})
    (var-set bl-count (- (var-get bl-count) u1))
    (print {e: "unblacklisted",who: who})
    (ok true)))

Functions (5)

FunctionAccessArgs
is-blacklistedread-onlywho: principal
get-blacklist-entryread-onlywho: principal
get-bl-countread-only
add-to-blacklistpublicwho: principal, reason: (string-ascii 50
remove-from-blacklistpublicwho: principal