Files
liquid-stacking/contracts/rules/rebase-1.clar
fiftyeightandeight ce69b46641 chore: license header
2024-03-14 22:31:45 +08:00

35 lines
1.1 KiB
Plaintext

;; SPDX-License-Identifier: BUSL-1.1
(define-constant PENDING 0x00)
(define-constant FINALIZED 0x01)
(define-constant REVOKED 0x02)
(define-public (rebase)
(contract-call? .lisa-rebase rebase (list .public-pools-strategy))
)
(define-public (finalize-mint (request-id uint))
(begin
(try! (rebase))
(as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 finalize-mint request-id)))
(try! (rebase))
(ok true)))
(define-public (finalize-burn (request-id uint))
(begin
(try! (rebase))
(as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 finalize-burn request-id)))
(try! (rebase))
(ok true)))
(define-public (request-burn (amount uint))
(let (
(sender tx-sender)
(send-token (try! (contract-call? .token-lqstx transfer amount sender (as-contract tx-sender) none)))
(request-data (as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 request-burn sender amount)))))
(match (finalize-burn (get request-id request-data))
ok-value (ok { request-id: (get request-id request-data), status: FINALIZED })
err-value (ok request-data))))