Source Code

(define-map collections uint {name: (string-ascii 64), creator: principal, item-count: uint, floor-price: uint})
(define-data-var collection-counter uint u0)
(define-read-only (get-collection (id uint)) (map-get? collections id))
(define-read-only (get-collection-count) (var-get collection-counter))
(define-public (create-collection (name (string-ascii 64)))
  (let ((id (var-get collection-counter)))
    (map-set collections id {name: name, creator: tx-sender, item-count: u0, floor-price: u0})
    (var-set collection-counter (+ id u1))
    (ok id)))
(define-public (update-floor-price (id uint) (price uint))
  (let ((col (unwrap! (get-collection id) (err u1))))
    (asserts! (is-eq tx-sender (get creator col)) (err u2))
    (map-set collections id (merge col {floor-price: price}))
    (ok true)))

Functions (4)

FunctionAccessArgs
get-collectionread-onlyid: uint
get-collection-countread-only
create-collectionpublicname: (string-ascii 64
update-floor-pricepublicid: uint, price: uint