Source Code

;; SatGuard Claim Stats
(define-constant err-owner (err u1010))
(define-data-var admin principal tx-sender)
(define-data-var total-submitted uint u0)
(define-data-var total-approved uint u0)
(define-data-var total-rejected uint u0)
(define-data-var total-paid-amt uint u0)
(define-read-only (get-totals) (ok {submitted: (var-get total-submitted),approved: (var-get total-approved),rejected: (var-get total-rejected),paid: (var-get total-paid-amt)}))
(define-read-only (get-approval-rate)
  (let ((total (+ (var-get total-approved) (var-get total-rejected))))
    (if (> total u0) (ok (/ (* (var-get total-approved) u100) total)) (ok u0))))
(define-read-only (get-avg-claim)
  (if (> (var-get total-approved) u0)
    (ok (/ (var-get total-paid-amt) (var-get total-approved)))
    (ok u0)))
(define-public (record-submission)
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (var-set total-submitted (+ (var-get total-submitted) u1))
    (print {e: "claim-stat-sub"})
    (ok true)))
(define-public (record-approval (amt uint))
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (var-set total-approved (+ (var-get total-approved) u1))
    (var-set total-paid-amt (+ (var-get total-paid-amt) amt))
    (print {e: "claim-stat-appr",amt: amt})
    (ok true)))
(define-public (record-rejection)
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (var-set total-rejected (+ (var-get total-rejected) u1))
    (print {e: "claim-stat-rej"})
    (ok true)))

Functions (6)

FunctionAccessArgs
get-totalsread-only
get-approval-rateread-only
get-avg-claimread-only
record-submissionpublic
record-approvalpublicamt: uint
record-rejectionpublic