Source Code

;; Version 0

;; High-Frequency Interaction Contract
(define-map users
  { user: principal }
  { score: uint, interaction-count: uint }
)

(define-public (interact)
  (let ((user-data (map-get? users { user: tx-sender })))
    (match user-data
      data
      (begin
        (map-set users
          { user: tx-sender }
          {
            score: (+ (get score data) u5),
            interaction-count: (+ (get interaction-count data) u1)
          }
        )
        (ok "Interaction successful"))
      (begin
        (map-set users
          { user: tx-sender }
          { score: u5, interaction-count: u1 }
        )
        (ok "First interaction"))
    )
  )
)

(define-read-only (get-user-stats (user principal))
  (map-get? users { user: user })
)

(define-read-only (get-my-stats)
  (map-get? users { user: tx-sender })
)

Functions (3)

FunctionAccessArgs
interactpublic
get-user-statsread-onlyuser: principal
get-my-statsread-only