Source Code

;; niyyah-log -- daily intention (niyyah) journal on-chain
(define-constant CONTRACT-OWNER tx-sender)
(define-constant ERR-NONE (err u404))
(define-data-var entry-count uint u0)
(define-map entries uint { author: principal, intention: (string-utf8 200), category: (string-ascii 20), block: uint })
(define-map user-counts principal uint)

(define-public (log-niyyah (intention (string-utf8 200)) (category (string-ascii 20)))
  (let ((id (+ (var-get entry-count) u1))
        (prev (default-to u0 (map-get? user-counts tx-sender))))
    (var-set entry-count id)
    (map-set entries id { author: tx-sender, intention: intention, category: category, block: stacks-block-height })
    (map-set user-counts tx-sender (+ prev u1))
    (ok id)))

(define-read-only (get-entry (id uint)) (map-get? entries id))
(define-read-only (get-user-count (addr principal)) (default-to u0 (map-get? user-counts addr)))
(define-read-only (get-total-entries) (var-get entry-count))

Functions (4)

FunctionAccessArgs
log-niyyahpublicintention: (string-utf8 200
get-entryread-onlyid: uint
get-user-countread-onlyaddr: principal
get-total-entriesread-only