Source Code

(define-data-var lc uint u0)
(define-map logs uint
 {source: principal, event-type: uint, ref-id: uint, data: uint, block: uint})
(define-map type-count uint uint)
(define-public (log-event (event-type uint) (ref-id uint) (data uint))
 (let ((id (var-get lc))
       (tc (default-to u0 (map-get? type-count event-type))))
  (var-set lc (+ id u1))
  (map-set type-count event-type (+ tc u1))
  (ok (map-set logs id
   {source: tx-sender, event-type: event-type, ref-id: ref-id,
    data: data, block: stacks-block-height}))))
(define-read-only (get-log (id uint)) (map-get? logs id))
(define-read-only (get-log-count) (var-get lc))
(define-read-only (get-type-count (event-type uint))
 (default-to u0 (map-get? type-count event-type)))

Functions (4)

FunctionAccessArgs
log-eventpublicevent-type: uint, ref-id: uint, data: uint
get-logread-onlyid: uint
get-log-countread-only
get-type-countread-onlyevent-type: uint