Source Code

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

Functions (4)

FunctionAccessArgs
lockpublicamount: uint
unlockpublic
get-lockread-onlywho: principal
get-lock-periodread-only