Source Code

;; well-wish -- community well-wishing board
(define-data-var wish-count uint u0)
(define-map wishes uint { author: principal, recipient: (string-ascii 30), message: (string-ascii 100), likes: uint, block: uint })
(define-public (post-wish (recipient (string-ascii 30)) (message (string-ascii 100)))
  (let ((id (+ (var-get wish-count) u1)))
    (var-set wish-count id)
    (map-set wishes id { author: tx-sender, recipient: recipient, message: message, likes: u0, block: stacks-block-height }) (ok id)))
(define-public (like-wish (id uint))
  (let ((w (unwrap! (map-get? wishes id) (err u404))))
    (map-set wishes id (merge w { likes: (+ (get likes w) u1) })) (ok true)))
(define-read-only (get-wish (id uint)) (map-get? wishes id))
(define-read-only (get-count) (var-get wish-count))

Functions (4)

FunctionAccessArgs
post-wishpublicrecipient: (string-ascii 30
like-wishpublicid: uint
get-wishread-onlyid: uint
get-countread-only