Source Code

(define-data-var treasury-balance uint u0)
(define-map spending-requests uint {requester: principal, amount: uint, reason: (string-ascii 100), approved: bool})
(define-data-var request-count uint u0)
(define-read-only (get-balance) (var-get treasury-balance))
(define-read-only (get-request (id uint)) (map-get? spending-requests id))
(define-public (deposit (amount uint))
  (begin (var-set treasury-balance (+ (var-get treasury-balance) amount)) (ok amount)))
(define-public (request-spending (amount uint) (reason (string-ascii 100)))
  (let ((id (var-get request-count)))
    (map-set spending-requests id {requester: tx-sender, amount: amount, reason: reason, approved: false})
    (var-set request-count (+ id u1))
    (ok id)))

Functions (4)

FunctionAccessArgs
get-balanceread-only
get-requestread-onlyid: uint
depositpublicamount: uint
request-spendingpublicamount: uint, reason: (string-ascii 100