Source Code


;; SPDX-License-Identifier: BUSL-1.1

(use-trait strategy-trait .strategy-trait.strategy-trait)

(define-constant err-unauthorised (err u3000))

(define-read-only (is-dao-or-extension)
	(ok (asserts! (or (is-eq tx-sender .lisa-dao) (contract-call? .lisa-dao is-extension contract-caller)) err-unauthorised))
)

(define-private (sum-strategy-amounts (strategy <strategy-trait>) (accumulator (response uint uint)))
	(ok (+ (try! (contract-call? strategy get-amount-in-strategy)) (try! accumulator)))
)

(define-public (rebase (strategies (list 20 <strategy-trait>)))
	(let ((total-stx (- (+ (stx-get-balance .lqstx-vault) (try! (fold sum-strategy-amounts strategies (ok u0)))) (contract-call? .lqstx-mint-endpoint-v1-01 get-mint-requests-pending-amount))))
		(try! (is-dao-or-extension))
		(as-contract (try! (contract-call? .token-lqstx set-reserve total-stx)))
		(ok total-stx)
	)
)

Functions (3)

FunctionAccessArgs
is-dao-or-extensionread-only
sum-strategy-amountsprivatestrategy: <strategy-trait>, accumulator: (response uint uint
rebasepublicstrategies: (list 20 <strategy-trait>