Source Code

(define-data-var counter uint u0)

(define-map user-counts
  principal
  uint
)

(define-public (increment)
  (begin
    (var-set counter (+ (var-get counter) u1))
    (ok (var-get counter))
  )
)

(define-public (decrement)
  (begin
    (var-set counter (- (var-get counter) u1))
    (ok (var-get counter))
  )
)

(define-public (increment-user-count)
  (let ((current (default-to u0 (map-get? user-counts tx-sender))))
    (map-set user-counts tx-sender (+ current u1))
    (ok (+ current u1))
  )
)

(define-read-only (get-counter)
  (ok (var-get counter))
)

(define-read-only (get-user-count (user principal))
  (ok (default-to u0 (map-get? user-counts user)))
)

Functions (5)

FunctionAccessArgs
incrementpublic
decrementpublic
increment-user-countpublic
get-counterread-only
get-user-countread-onlyuser: principal