(impl-trait 'SP29CK9990DQGE9RGTT1VEQTTYH8KY4E3JE5XP4EC.aibtcdev-dao-traits-v1.extension)
(impl-trait 'SP29CK9990DQGE9RGTT1VEQTTYH8KY4E3JE5XP4EC.aibtcdev-dao-traits-v1.action)
(define-constant ERR_UNAUTHORIZED (err u10001))
(define-constant ERR_INVALID_PARAMS (err u10002))
(define-public (callback (sender principal) (memo (buff 34))) (ok true))
(define-public (run (parameters (buff 2048)))
(let
(
(paramsTuple (unwrap! (from-consensus-buff?
{ name: (string-utf8 50), description: (string-utf8 255), price: uint, url: (optional (string-utf8 255)) }
parameters) ERR_INVALID_PARAMS))
)
(try! (is-dao-or-extension))
(try! (contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.repeal-payments-invoices add-resource (get name paramsTuple) (get description paramsTuple) (get price paramsTuple) (get url paramsTuple)))
(ok true)
)
)
(define-private (is-dao-or-extension)
(ok (asserts! (or (is-eq tx-sender 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.repeal-base-dao)
(contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.repeal-base-dao is-extension contract-caller)) ERR_UNAUTHORIZED
))
)