Source Code

;; fasting-log -- Ramadan fasting daily log
(define-data-var entry-count uint u0)
(define-map entries uint { user: principal, day: uint, suhoor: bool, iftar: bool, block: uint })
(define-map user-days principal uint)
(define-public (log-fast (day uint) (suhoor bool) (iftar bool))
  (let ((id (+ (var-get entry-count) u1))
        (prev (default-to u0 (map-get? user-days tx-sender))))
    (var-set entry-count id)
    (map-set entries id { user: tx-sender, day: day, suhoor: suhoor, iftar: iftar, block: stacks-block-height })
    (map-set user-days tx-sender (+ prev u1)) (ok id)))
(define-read-only (get-entry (id uint)) (map-get? entries id))
(define-read-only (get-days (addr principal)) (default-to u0 (map-get? user-days addr)))

Functions (3)

FunctionAccessArgs
log-fastpublicday: uint, suhoor: bool, iftar: bool
get-entryread-onlyid: uint
get-daysread-onlyaddr: principal