Source Code

(define-map referrals principal principal)
(define-map referral-counts principal uint)
(define-map referral-earnings principal uint)
(define-data-var referral-bonus uint u500)
(define-read-only (get-referrer (user principal)) (map-get? referrals user))
(define-read-only (get-referral-count (user principal)) (default-to u0 (map-get? referral-counts user)))
(define-read-only (get-earnings (user principal)) (default-to u0 (map-get? referral-earnings user)))
(define-public (set-referrer (referrer principal))
  (begin
    (asserts! (is-none (get-referrer tx-sender)) (err u1))
    (asserts! (not (is-eq tx-sender referrer)) (err u2))
    (map-set referrals tx-sender referrer)
    (map-set referral-counts referrer (+ (get-referral-count referrer) u1))
    (ok true)))
(define-public (set-bonus (bonus uint))
  (begin (var-set referral-bonus bonus) (ok true)))

Functions (5)

FunctionAccessArgs
get-referrerread-onlyuser: principal
get-referral-countread-onlyuser: principal
get-earningsread-onlyuser: principal
set-referrerpublicreferrer: principal
set-bonuspublicbonus: uint