Source Code

(define-constant O tx-sender)
(define-constant E1 (err u720))
(define-constant E2 (err u721))
(define-constant E3 (err u722))
(define-data-var global-min uint u100000)
(define-data-var global-max uint u100000000000)
(define-map market-min uint uint)
(define-map market-max uint uint)
(define-public (set-global-limits (mn uint) (mx uint))
 (begin (asserts! (is-eq tx-sender O) E1)
  (asserts! (< mn mx) E2)
  (var-set global-min mn)
  (var-set global-max mx)
  (ok true)))
(define-public (set-market-limits (mid uint) (mn uint) (mx uint))
 (begin (asserts! (is-eq tx-sender O) E1)
  (asserts! (< mn mx) E2)
  (map-set market-min mid mn)
  (map-set market-max mid mx)
  (ok true)))
(define-read-only (check-amount (mid uint) (amt uint))
 (let ((mn (default-to (var-get global-min) (map-get? market-min mid)))
       (mx (default-to (var-get global-max) (map-get? market-max mid))))
  (and (>= amt mn) (<= amt mx))))
(define-read-only (get-limits (mid uint))
 {min: (default-to (var-get global-min) (map-get? market-min mid)),
  max: (default-to (var-get global-max) (map-get? market-max mid))})
(define-read-only (get-global-limits)
 {min: (var-get global-min), max: (var-get global-max)})

Functions (5)

FunctionAccessArgs
set-global-limitspublicmn: uint, mx: uint
set-market-limitspublicmid: uint, mn: uint, mx: uint
check-amountread-onlymid: uint, amt: uint
get-limitsread-onlymid: uint
get-global-limitsread-only