mirror of
https://github.com/zhigang1992/liquid-stacking.git
synced 2026-01-12 17:23:23 +08:00
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
|
|
;; SPDX-License-Identifier: BUSL-1.1
|
|
|
|
(define-constant PENDING 0x00)
|
|
(define-constant FINALIZED 0x01)
|
|
(define-constant REVOKED 0x02)
|
|
|
|
(define-public (rebase)
|
|
(as-contract (contract-call? .lisa-rebase rebase (list .mock-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))))
|
|
|
|
(define-public (callback (extension principal) (payload (buff 2048)))
|
|
(ok true)) |