Source Code

(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
        (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)
        (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