Source Code

;; Counter Smart Contract
;; A simple counter that can be incremented and read

(define-data-var counter int 0)

;; Increment the counter by 1
(define-public (increment)
  (begin
    (var-set counter (+ (var-get counter) 1))
    (ok (var-get counter))
  )
)

;; Increment the counter by a custom amount
(define-public (increment-by (amount int))
  (begin
    (var-set counter (+ (var-get counter) amount))
    (ok (var-get counter))
  )
)

;; Decrement the counter by 1
(define-public (decrement)
  (begin
    (var-set counter (- (var-get counter) 1))
    (ok (var-get counter))
  )
)

;; Get the current counter value
(define-read-only (get-counter)
  (ok (var-get counter))
)

;; Reset the counter to 0
(define-public (reset)
  (begin
    (var-set counter 0)
    (ok (var-get counter))
  )
)

Functions (5)

FunctionAccessArgs
incrementpublic
increment-bypublicamount: int
decrementpublic
get-counterread-only
resetpublic