;; SatGuard Fee Splitter
(define-constant err-owner (err u820))
(define-constant err-amt (err u821))
(define-data-var admin principal tx-sender)
(define-data-var treasury-pct uint u50)
(define-data-var staker-pct uint u30)
(define-data-var creator-pct uint u20)
(define-read-only (get-split) (ok {treasury: (var-get treasury-pct),stakers: (var-get staker-pct),creators: (var-get creator-pct)}))
(define-public (set-split (t uint) (s uint) (c uint))
(begin
(asserts! (is-eq tx-sender (var-get admin)) err-owner)
(asserts! (is-eq (+ t (+ s c)) u100) err-amt)
(var-set treasury-pct t)
(var-set staker-pct s)
(var-set creator-pct c)
(print {e: "split-set",t: t,s: s,c: c})
(ok true)))
(define-read-only (calc-shares (amt uint))
(let ((ts (/ (* amt (var-get treasury-pct)) u100))
(ss (/ (* amt (var-get staker-pct)) u100))
(cs (/ (* amt (var-get creator-pct)) u100)))
(ok {treasury: ts,stakers: ss,creators: cs})))