Source Code

(define-data-var event-counter uint u0)

(define-map events
  uint
  {
    actor: principal,
    action: (string-ascii 50),
    timestamp: uint,
  }
)

(define-public (log-event (action (string-ascii 50)))
  (let ((event-id (var-get event-counter)))
    (asserts! (> (len action) u0) (err u1))
    (map-set events event-id {
      actor: tx-sender,
      action: action,
      timestamp: stacks-block-height,
    })
    (var-set event-counter (+ event-id u1))
    (ok event-id)
  )
)

(define-read-only (get-event (event-id uint))
  (ok (map-get? events event-id))
)

Functions (2)

FunctionAccessArgs
log-eventpublicaction: (string-ascii 50
get-eventread-onlyevent-id: uint