Source Code

;; agate-worker
(define-map seats principal bool)
(define-data-var list-size uint u0)
(define-data-var max-size uint u372)
(define-data-var admin principal tx-sender)

(define-public (add (who principal))
  (if (is-eq tx-sender (var-get admin))
    (if (< (var-get list-size) (var-get max-size))
      (begin
        (map-set seats who true)
        (var-set list-size (+ (var-get list-size) u1))
        (ok true))
      (err u2))
    (err u1)))

(define-public (remove (who principal))
  (if (is-eq tx-sender (var-get admin))
    (begin
      (map-set seats who false)
      (var-set list-size (- (var-get list-size) u1))
      (ok true))
    (err u1)))

(define-read-only (is-whitelisted (who principal))
  (ok (default-to false (map-get? seats who))))

(define-read-only (get-size)
  (ok (var-get list-size)))

Functions (4)

FunctionAccessArgs
addpublicwho: principal
removepublicwho: principal
is-whitelistedread-onlywho: principal
get-sizeread-only