Source Code

;; Contract: Lending System
;; Description: Handles checking out books.

(define-public (borrow-book (book-id uint))
    (let
        (
            (book (unwrap! (contract-call? .books get-book book-id) (err u404)))
        )
        ;; Check if available
        (asserts! (get is-available book) (err u403))
        
        ;; Mark as unavailable in catalog
        (as-contract (contract-call? .books set-availability book-id false))
    )
)

(define-public (return-book (book-id uint))
    (begin
        ;; Mark as available again
        (as-contract (contract-call? .books set-availability book-id true))
    )
)

Functions (2)

FunctionAccessArgs
borrow-bookpublicbook-id: uint
return-bookpublicbook-id: uint