Source Code

(define-constant O tx-sender)
(define-constant E1 (err u1010))
(define-map daily-volume uint uint)
(define-map daily-users uint uint)
(define-map daily-markets uint uint)
(define-map trending uint {mid: uint, volume: uint})
(define-public (record-volume (day uint) (amt uint))
 (let ((cur (default-to u0 (map-get? daily-volume day))))
  (ok (map-set daily-volume day (+ cur amt)))))
(define-public (record-daily-user (day uint))
 (let ((cur (default-to u0 (map-get? daily-users day))))
  (ok (map-set daily-users day (+ cur u1)))))
(define-public (record-daily-market (day uint))
 (let ((cur (default-to u0 (map-get? daily-markets day))))
  (ok (map-set daily-markets day (+ cur u1)))))
(define-public (set-trending (rank uint) (mid uint) (volume uint))
 (begin (asserts! (is-eq tx-sender O) E1)
  (ok (map-set trending rank {mid: mid, volume: volume}))))
(define-read-only (get-daily-volume (day uint))
 (default-to u0 (map-get? daily-volume day)))
(define-read-only (get-daily-users (day uint))
 (default-to u0 (map-get? daily-users day)))
(define-read-only (get-daily-markets (day uint))
 (default-to u0 (map-get? daily-markets day)))
(define-read-only (get-trending (rank uint))
 (map-get? trending rank))

Functions (8)

FunctionAccessArgs
record-volumepublicday: uint, amt: uint
record-daily-userpublicday: uint
record-daily-marketpublicday: uint
set-trendingpublicrank: uint, mid: uint, volume: uint
get-daily-volumeread-onlyday: uint
get-daily-usersread-onlyday: uint
get-daily-marketsread-onlyday: uint
get-trendingread-onlyrank: uint