Source Code

;; quran-page -- daily Quran page reading tracker
(define-data-var read-count uint u0)
(define-map readings uint { reader: principal, surah: uint, page: uint, block: uint })
(define-map reader-pages principal uint)
(define-public (log-reading (surah uint) (page uint))
  (let ((id (+ (var-get read-count) u1))
        (prev (default-to u0 (map-get? reader-pages tx-sender))))
    (var-set read-count id)
    (map-set readings id { reader: tx-sender, surah: surah, page: page, block: stacks-block-height })
    (map-set reader-pages tx-sender (+ prev u1)) (ok id)))
(define-read-only (get-reading (id uint)) (map-get? readings id))
(define-read-only (get-pages (addr principal)) (default-to u0 (map-get? reader-pages addr)))

Functions (3)

FunctionAccessArgs
log-readingpublicsurah: uint, page: uint
get-readingread-onlyid: uint
get-pagesread-onlyaddr: principal