Source Code

;; Simple Counter Contract
;; Increment and track counts

(define-data-var counter uint u0)
(define-map user-counts principal uint)

(define-public (increment)
  (let ((sender tx-sender))
    (var-set counter (+ (var-get counter) u1))
    (map-set user-counts sender (+ (get-user-count sender) u1))
    (ok (var-get counter))
  )
)

(define-public (increment-by (amount uint))
  (begin
    (var-set counter (+ (var-get counter) amount))
    (ok (var-get counter))
  )
)

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

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

Functions (4)

FunctionAccessArgs
incrementpublic
increment-bypublicamount: uint
get-counterread-only
get-user-countread-onlyuser: principal