Source Code

;; meal-ticket -- community meal voucher system
(define-data-var ticket-count uint u0)
(define-map tickets uint { issuer: principal, value: uint, used: bool, block: uint })
(define-public (issue-ticket (value uint))
  (let ((id (+ (var-get ticket-count) u1)))
    (var-set ticket-count id)
    (map-set tickets id { issuer: tx-sender, value: value, used: false, block: stacks-block-height }) (ok id)))
(define-public (use-ticket (id uint))
  (let ((t (unwrap! (map-get? tickets id) (err u404))))
    (map-set tickets id (merge t { used: true })) (ok true)))
(define-read-only (get-ticket (id uint)) (map-get? tickets id))
(define-read-only (get-count) (var-get ticket-count))

Functions (4)

FunctionAccessArgs
issue-ticketpublicvalue: uint
use-ticketpublicid: uint
get-ticketread-onlyid: uint
get-countread-only