proposal-add-bond-wldnusda-v2

SP3MBWGMCVC9KZ5DTAYFMG1D0AEJCR7NENTM3FTK5

Source Code

;; @contract Governance proposal
;; @version 1.1

(impl-trait .lydian-dao-proposal-trait.lydian-dao-proposal-trait)

;; ------------------------------------------
;; Constants
;; ------------------------------------------

(define-constant  ERR-NOT-AUTHORIZED u1001)
(define-constant  ERR-NOT-ENABLED u1002)

;; ------------------------------------------
;; Variables
;; ------------------------------------------

(define-data-var owner principal tx-sender)
(define-data-var enabled bool false)

;; ------------------------------------------
;; Execute
;; ------------------------------------------

(define-public (execute)
  (begin
    (asserts! (is-eq contract-caller .lydian-dao) (err ERR-NOT-AUTHORIZED))
    (asserts! (var-get enabled) (err ERR-NOT-ENABLED))

    ;; Add new bond
    (unwrap-panic (contract-call? .bond-depository-v1-1 add-bond
      'SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-swap-token-wldn-usda     ;; token to accept as payment
      u5000000000                      ;; capacity (5000 LDN)
      true                             ;; capacity limit for payout
      u5                               ;; scaling variable for price
      false                            ;; fixed expiration
      u720                             ;; fixed-term - term in blocks
      u0                               ;; fixed-expiration - block number bond matures
      (+ block-height u720)            ;; block number bond no longer offered
      u869                             ;; minimum-price (vs principal value)
      u5000                            ;; max-payout in thousandths of a %. i.e. 500 = 0.5%
      u0                               ;; max-debt - unused
    ))

    (ok true)
  )
)

(define-public (toggle-enabled)
  (begin
    (asserts! (is-eq tx-sender (var-get owner)) (err ERR-NOT-AUTHORIZED))
    (var-set enabled (not (var-get enabled)))
    (ok (var-get enabled))
  )
)

Functions (2)

FunctionAccessArgs
executepublic
toggle-enabledpublic