;; agate-scanner
(define-map ranks principal { amount: uint, unlock-block: uint })
(define-data-var lock-period uint u967)
(define-public (lock (amount uint))
(begin
(map-set ranks tx-sender
{ amount: amount,
unlock-block: (+ block-height (var-get lock-period)) })
(ok amount)))
(define-public (unlock)
(match (map-get? ranks tx-sender)
entry
(if (>= block-height (get unlock-block entry))
(begin
(map-delete ranks tx-sender)
(ok (get amount entry)))
(err u1))
(err u2)))
(define-read-only (get-lock (who principal))
(ok (map-get? ranks who)))
(define-read-only (get-lock-period)
(ok (var-get lock-period)))