Source Code

;; title: scheduling-queue-
;; version:
;; summary:
;; description:


;; traits
;;

(define-constant contract-owner tx-sender)
(define-constant err-owner-only (err u100))

(define-map registry-entries
  (string-ascii 64)
  {
    owner: principal,
    value: (string-utf8 256),
    created-at: uint,
  }
)

(define-public (register-entry
    (key (string-ascii 64))
    (value (string-utf8 256))
  )
  (begin
    (asserts! (> (len key) u0) (err u1))
    (asserts! (> (len value) u0) (err u2))
    (map-set registry-entries key {
      owner: tx-sender,
      value: value,
      created-at: stacks-block-height,
    })
    (ok true)
  )
)

(define-public (update-entry
    (key (string-ascii 64))
    (new-value (string-utf8 256))
  )
  (let ((entry (unwrap! (map-get? registry-entries key) (err u404))))
    (asserts! (is-eq (get owner entry) tx-sender) err-owner-only)
    (asserts! (> (len new-value) u0) (err u3))
    (map-set registry-entries key (merge entry { value: new-value }))
    (ok true)
  )
)

(define-read-only (get-entry (key (string-ascii 64)))
  (ok (map-get? registry-entries key))
)

Functions (3)

FunctionAccessArgs
register-entrypublickey: (string-ascii 64
update-entrypublickey: (string-ascii 64
get-entryread-onlykey: (string-ascii 64