Source Code

(define-constant ERR-NOT-FOUND (err u801))
(define-constant ERR-NOT-AUTHORIZED (err u804))
(define-constant admin tx-sender)
(define-map address-checked principal bool)
(define-map id-checked uint bool)

(define-read-only (get-address-checked (address principal)) (default-to false (map-get? address-checked address)))
(define-read-only (get-id-checked (id uint)) (default-to false (map-get? id-checked id)))

(define-public (subscriptions-transfer (ids (list 1500 uint)))
    (ok (map subscription-transfer ids))
)

(define-private (subscription-transfer (id uint)) 
    (let (
        (subscriber (unwrap-panic (contract-call? 'SP1N057R0S5BBAQKTW0GF2J7BXKFHY2GQV9MP2BEN.the-cavalry-spoints-subscriber get-item-subscriber id)))
    )
    (asserts! (is-eq tx-sender admin) ERR-NOT-AUTHORIZED)
    (if (not (or (is-none subscriber) (get-id-checked id))) 
        (begin
            (try! (contract-call? .the-cavalry-spoints-subscriber admin-subscribe 'SP1C2K603TGWJGKPT2Z3WWHA0ARM66D352385TTWH.the-cavalry-multipliers id (unwrap-panic subscriber))) 
            (map-set id-checked id true)
            (if (not (get-address-checked (unwrap-panic subscriber)))
                (begin  
                    (try! (contract-call? .the-cavalry-spoints-subscriber allocate-balance (unwrap-panic (contract-call? 'SP1N057R0S5BBAQKTW0GF2J7BXKFHY2GQV9MP2BEN.the-cavalry-spoints-subscriber get-collect (unwrap-panic subscriber))) (unwrap-panic subscriber)))
                    (map-set address-checked (unwrap-panic subscriber) true)
                    (ok true))
                (ok true)
            )
        ) 
        (ok true))))

Functions (4)

FunctionAccessArgs
get-address-checkedread-onlyaddress: principal
get-id-checkedread-onlyid: uint
subscriptions-transferpublicids: (list 1500 uint
subscription-transferprivateid: uint