Source Code

(use-trait resource-trait .ata-resource-trait-v0.ata-resource-trait-v0)
(use-trait store-trait .ata-store-trait-v0.ata-store-trait-v0)
(define-constant ERR_NO_RESOURCE_COLLECTED (err u250))

(define-private (collect-one (resource <resource-trait>))
  (contract-call? resource collect)
)

(define-private (is-ok-response (response (response uint uint)))
  (is-ok response)
)

(define-public (collect-all (resources (list 16 <resource-trait>)))
  (let ((responses (map collect-one resources)))
    (if (> (len (filter is-ok-response responses)) u0)
      (ok responses)
      (err responses)
    )
  )
)

(define-private (get-player-resource (resource <store-trait>))
  (unwrap! (contract-call? resource get-player-wrapper tx-sender) none)
)

(define-public (get-player-data (resources (list 16 <store-trait>)))
  (ok (map get-player-resource resources))
)

Functions (5)

FunctionAccessArgs
collect-oneprivateresource: <resource-trait>
is-ok-responseprivateresponse: (response uint uint
collect-allpublicresources: (list 16 <resource-trait>
get-player-resourceprivateresource: <store-trait>
get-player-datapublicresources: (list 16 <store-trait>