Clarity language preview
1. Counter contract
define forms, data vars, and responses
horizon-dark
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) atom-one-dark
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) github-dark
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) dracula
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) nord
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) github
;; A simple counter
(define-data-var counter uint u0)
(define-read-only (get-counter)
(var-get counter))
(define-public (increment (step uint))
(begin
(asserts! (> step u0) (err u100))
(var-set counter (+ (var-get counter) step))
(ok (var-get counter)))) 2. Token transfer
maps, principals, and assertions
horizon-dark
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) atom-one-dark
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) github-dark
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) dracula
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) nord
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) github
(define-map balances principal uint)
(define-public (transfer (amount uint) (recipient principal))
(let ((sender-balance (default-to u0 (map-get? balances tx-sender))))
(asserts! (>= sender-balance amount) (err u1))
(map-set balances tx-sender (- sender-balance amount))
(ok true))) 3. Access control and expiry
contract-caller, block-height, and burn-block-height
horizon-dark
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at))) atom-one-dark
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at))) github-dark
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at))) dracula
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at))) nord
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at))) github
(define-constant owner tx-sender)
(define-data-var expires-at uint u0)
(define-public (set-expiry (blocks uint))
(begin
(asserts! (is-eq contract-caller owner) (err u403))
(var-set expires-at (+ block-height blocks))
(ok (var-get expires-at))))
(define-read-only (is-expired)
(> burn-block-height (var-get expires-at)))