vault-registry-v2601221844-v11

SP1K2XGT5RNGT42N49BH936VDF8NXWNZJY15BPV4F

Source Code

(define-constant ERR-UNAUTHORIZED u100)
(define-constant ERR-NOT-FOUND u101)

(define-data-var governor principal tx-sender)
(define-data-var next-vault-id uint u1)

(define-map vaults
  { id: uint }
  { vault: principal, risk-tier: uint, cap: uint, active: bool }
)

(define-read-only (is-governor)
  (is-eq tx-sender (var-get governor))
)

(define-public (set-governor (new-governor principal))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (var-set governor new-governor)
    (ok true)
  )
)

(define-read-only (get-vault (id uint))
  (map-get? vaults { id: id })
)

(define-public (register-vault (vault principal) (risk-tier uint) (cap uint))
  (let ((id (var-get next-vault-id)))
    (begin
      (asserts! (is-governor) (err ERR-UNAUTHORIZED))
      (map-set vaults { id: id } { vault: vault, risk-tier: risk-tier, cap: cap, active: true })
      (var-set next-vault-id (+ id u1))
      (ok id)
    )
  )
)

(define-public (set-vault-active (id uint) (active bool))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (asserts! (is-some (map-get? vaults { id: id })) (err ERR-NOT-FOUND))
    (map-set vaults { id: id }
      (merge (unwrap-panic (map-get? vaults { id: id })) { active: active })
    )
    (ok true)
  )
)

(define-public (set-vault-cap (id uint) (cap uint))
  (begin
    (asserts! (is-governor) (err ERR-UNAUTHORIZED))
    (asserts! (is-some (map-get? vaults { id: id })) (err ERR-NOT-FOUND))
    (map-set vaults { id: id }
      (merge (unwrap-panic (map-get? vaults { id: id })) { cap: cap })
    )
    (ok true)
  )
)

Functions (6)

FunctionAccessArgs
is-governorread-only
set-governorpublicnew-governor: principal
get-vaultread-onlyid: uint
register-vaultpublicvault: principal, risk-tier: uint, cap: uint
set-vault-activepublicid: uint, active: bool
set-vault-cappublicid: uint, cap: uint