fee-manager-v2-v2601221844-v10

SP1K2XGT5RNGT42N49BH936VDF8NXWNZJY15BPV4F

Source Code

(define-constant ERR-UNAUTHORIZED u100)

(define-data-var governor principal tx-sender)
(define-data-var performance-fee-bps uint u1000)
(define-data-var management-fee-bps uint u50)
(define-data-var treasury principal tx-sender)
(define-data-var strategist principal tx-sender)

(define-read-only (is-governor)
  (is-eq tx-sender (var-get governor))
)

(define-public (set-governor (new-governor principal))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (var-set governor new-governor)
    (ok true)
  )
)

(define-read-only (get-fees)
  { performance-fee-bps: (var-get performance-fee-bps),
    management-fee-bps: (var-get management-fee-bps),
    treasury: (var-get treasury),
    strategist: (var-get strategist) }
)

(define-read-only (calculate-performance-fee (profit uint))
  (/ (* profit (var-get performance-fee-bps)) u10000)
)

(define-public (set-fees (performance-bps uint) (management-bps uint))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (var-set performance-fee-bps performance-bps)
    (var-set management-fee-bps management-bps)
    (ok true)
  )
)

(define-public (set-recipients (new-treasury principal) (new-strategist principal))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (var-set treasury new-treasury)
    (var-set strategist new-strategist)
    (ok true)
  )
)

Functions (6)

FunctionAccessArgs
is-governorread-only
set-governorpublicnew-governor: principal
get-feesread-only
calculate-performance-feeread-onlyprofit: uint
set-feespublicperformance-bps: uint, management-bps: uint
set-recipientspublicnew-treasury: principal, new-strategist: principal