(impl-trait 'SP29CK9990DQGE9RGTT1VEQTTYH8KY4E3JE5XP4EC.aibtcdev-dao-traits-v1.proposal)
(define-constant DAO_MANIFEST "To successfully spin up and manage Twitter accounts for AI DAOs, helping them onboard and adopt best practices to effectively communicate their message and gain the right attention.")
(define-public (execute (sender principal))
(begin
;; set initial dao extensions list
(try! (contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-base-dao set-extensions
(list
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-proposals, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-bank-account, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-core-proposals, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-onchain-messaging, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-payments-invoices, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-token-owner, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-treasury, enabled: true}
)
))
;; set initial action proposals list
(try! (contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-base-dao set-extensions
(list
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-add-resource, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-allow-asset, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-send-message, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-set-account-holder, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-set-withdrawal-amount, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-set-withdrawal-period, enabled: true}
{extension: 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-action-toggle-resource, enabled: true}
)
))
;; send DAO manifest as onchain message
(try! (contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-onchain-messaging send DAO_MANIFEST true))
;; allow assets in treasury
(try! (contract-call? 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-treasury allow-asset 'SP2XCME6ED8RERGR9R7YDZW7CA6G3F113Y8JMVA46.twtrdao-stxcity true))
;; print manifest
(print DAO_MANIFEST)
(ok true)
)
)
(define-read-only (get-dao-manifest)
DAO_MANIFEST
)