Skip to main content Svelte Highlight v7.21.1

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)))