Source Code

;; 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})))

Functions (3)

FunctionAccessArgs
get-splitread-only
set-splitpublict: uint, s: uint, c: uint
calc-sharesread-onlyamt: uint