stx10-marketplace-fee-collector

SP3R4MHK99JAAM0N3T0CBZRZVSVQFG1N75DQ08JSD

Source Code

(define-data-var m_user_list (list 4 principal) (list 
  'SPM45K10TF1NENMZW1HBWTY1XV5CKFXQMRP4EA9J
  'SP1P3A9XCVKA81XT4DNJP0C6JXNVNB49VZ1C00PXE
  'SP7D05V7M9NRVV3W7T2T1APP008TZZE7HZNTX2XJ
  'SP2DE8GXZVXXJHCBW9DFFMADZ40SKDPDKX5EZ79NT
))

(define-read-only (get_user_list)
  (var-get m_user_list)
)

(define-read-only (get_balance)
  (stx-get-balance (as-contract tx-sender))
)

(define-public (change_address (new_address principal))
  (match (index-of? (var-get m_user_list) tx-sender) user_index
    (ok (var-set m_user_list (unwrap-panic (replace-at? (var-get m_user_list) user_index new_address))))
    (err false)
  )
)

(define-public (withdraw)
  (let
    (
      (amount (/ (stx-get-balance (as-contract tx-sender)) u4))
      (user_list (var-get m_user_list))
    )
    (asserts! (is-some (index-of? user_list tx-sender)) (err u1001))
    (try! (as-contract (stx-transfer? amount tx-sender (unwrap-panic (element-at? user_list u0)))))
    (try! (as-contract (stx-transfer? amount tx-sender (unwrap-panic (element-at? user_list u1)))))
    (try! (as-contract (stx-transfer? amount tx-sender (unwrap-panic (element-at? user_list u2)))))
    (try! (as-contract (stx-transfer? amount tx-sender (unwrap-panic (element-at? user_list u3)))))
    (ok true)
  )
)

Functions (4)

FunctionAccessArgs
get_user_listread-only
get_balanceread-only
change_addresspublicnew_address: principal
withdrawpublic