Source Code

(define-constant O tx-sender)
(define-constant E1 (err u730))
(define-constant E2 (err u731))
(define-map market-tag {mid: uint, idx: uint} (string-ascii 32))
(define-map tag-count uint uint)
(define-public (add-tag (mid uint) (tag (string-ascii 32)))
 (let ((cnt (default-to u0 (map-get? tag-count mid))))
  (asserts! (< cnt u5) E2)
  (map-set market-tag {mid: mid, idx: cnt} tag)
  (map-set tag-count mid (+ cnt u1))
  (ok true)))
(define-public (remove-tags (mid uint))
 (begin (asserts! (is-eq tx-sender O) E1)
  (ok (map-set tag-count mid u0))))
(define-read-only (get-tag (mid uint) (idx uint))
 (map-get? market-tag {mid: mid, idx: idx}))
(define-read-only (get-tag-count (mid uint))
 (default-to u0 (map-get? tag-count mid)))

Functions (4)

FunctionAccessArgs
add-tagpublicmid: uint, tag: (string-ascii 32
remove-tagspublicmid: uint
get-tagread-onlymid: uint, idx: uint
get-tag-countread-onlymid: uint