Source Code

(define-map refund-requests uint {escrow-id: uint, requester: principal, amount: uint, reason: (string-ascii 100), status: (string-ascii 20)})
(define-data-var request-count uint u0)
(define-read-only (get-request (id uint)) (map-get? refund-requests id))
(define-public (request-refund (escrow-id uint) (amount uint) (reason (string-ascii 100)))
  (let ((id (var-get request-count)))
    (map-set refund-requests id {escrow-id: escrow-id, requester: tx-sender, amount: amount, reason: reason, status: "pending"})
    (var-set request-count (+ id u1))
    (ok id)))
(define-public (approve-refund (id uint))
  (match (map-get? refund-requests id)
    r (begin (map-set refund-requests id (merge r {status: "approved"})) (ok true))
    (err u404)))

Functions (3)

FunctionAccessArgs
get-requestread-onlyid: uint
request-refundpublicescrow-id: uint, amount: uint, reason: (string-ascii 100
approve-refundpublicid: uint