Source Code

;; kaffarah-pay -- kaffarah payment ledger
(define-constant CONTRACT-OWNER tx-sender)
(define-data-var pay-count uint u0)
(define-data-var total-paid uint u0)
(define-map payments uint { payer: principal, reason: (string-ascii 30), amount: uint, block: uint })
(define-public (pay-kaffarah (reason (string-ascii 30)) (amount uint))
  (let ((id (+ (var-get pay-count) u1)))
    (var-set pay-count id)
    (var-set total-paid (+ (var-get total-paid) amount))
    (map-set payments id { payer: tx-sender, reason: reason, amount: amount, block: stacks-block-height }) (ok id)))
(define-read-only (get-payment (id uint)) (map-get? payments id))
(define-read-only (get-total) (var-get total-paid))

Functions (3)

FunctionAccessArgs
pay-kaffarahpublicreason: (string-ascii 30
get-paymentread-onlyid: uint
get-totalread-only