Source Code

(define-data-var paused bool false)
(define-data-var value uint u1)
(define-data-var limit uint u1000000)
(define-read-only (get-value) (var-get value))
(define-read-only (is-paused) (var-get paused))
(define-read-only (get-limit) (var-get limit))
(define-public (pause) (if (var-get paused) (err u100) (begin (var-set paused true) (ok (var-get value)))))
(define-public (unpause) (if (not (var-get paused)) (err u100) (begin (var-set paused false) (ok (var-get value)))))
(define-public (reveal) (if (or (var-get paused) (>= (var-get value) (var-get limit))) (err u101) (begin (var-set value (+ (var-get value) u1)) (ok (var-get value)))))
(define-public (conceal) (if (or (var-get paused) (<= (var-get value) u0)) (err u102) (begin (var-set value (- (var-get value) u1)) (ok (var-get value)))))
(define-public (set (x uint)) (if (or (var-get paused) (> x (var-get limit))) (err u103) (begin (var-set value x) (ok (var-get value)))))
(define-public (add (amount uint)) (if (or (var-get paused) (> (+ (var-get value) amount) (var-get limit))) (err u104) (begin (var-set value (+ (var-get value) amount)) (ok (var-get value)))))
(define-public (sub (amount uint)) (if (or (var-get paused) (> amount (var-get value))) (err u105) (begin (var-set value (- (var-get value) amount)) (ok (var-get value)))))
(define-public (double) (if (or (var-get paused) (> (+ (var-get value) (var-get value)) (var-get limit))) (err u106) (begin (var-set value (+ (var-get value) (var-get value))) (ok (var-get value)))))
(define-public (bump10) (if (or (var-get paused) (> (+ (var-get value) u10) (var-get limit))) (err u107) (begin (var-set value (+ (var-get value) u10)) (ok (var-get value)))))
(define-public (reset) (if (var-get paused) (err u100) (begin (var-set value u0) (ok (var-get value)))))
(define-public (set-limit (l uint)) (if (var-get paused) (err u100) (begin (var-set limit l) (if (> (var-get value) (var-get limit)) (var-set value (var-get limit)) (var-set value (var-get value))) (ok (var-get value)))))
(define-public (clamp) (if (var-get paused) (err u100) (begin (if (> (var-get value) (var-get limit)) (var-set value (var-get limit)) (var-set value (var-get value))) (ok (var-get value)))))

Functions (15)

FunctionAccessArgs
get-valueread-only
is-pausedread-only
get-limitread-only
pausepublic
unpausepublic
revealpublic
concealpublic
setpublicx: uint
addpublicamount: uint
subpublicamount: uint
doublepublic
bump10public
resetpublic
set-limitpublicl: uint
clamppublic