Source Code


(define-constant one-12 u1000000000000)
(define-constant sats-to-precision u10000)

(define-constant deployer tx-sender)

(define-public (reclaim-btc (btcz-amount uint))
	(let (
		(sender contract-caller)
        (redeemable-btc (get-redeemable-btc-by-amount btcz-amount))
    )
		(try! (contract-call? .token-btc burn btcz-amount sender))
        (try!
            (as-contract
                (contract-call? 'SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token transfer
                    redeemable-btc
                    tx-sender
                    sender
                    none
                )
            )
        )
		(ok redeemable-btc)
	)
)

(define-public (withdraw-sbtc
    (sbtc-amount uint)
    (receiver principal)
    )
    (begin
        (asserts! (is-eq tx-sender deployer) (err u401))
        (try!
            (as-contract
                (contract-call? 'SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token transfer
                    sbtc-amount
                    tx-sender
                    receiver
                    none
                )
            )
        )
        (ok sbtc-amount)
    )
)

(define-read-only (get-redeemable-btc-by-amount (btcz-amount uint))
	(mul-btcz-with-ratio-to-sats btcz-amount one-12))

(define-read-only (mul-btcz-with-ratio-to-sats (btcz uint) (ratio uint))
	(/ (/ (* btcz ratio) one-12) sats-to-precision))

Functions (3)

FunctionAccessArgs
reclaim-btcpublicbtcz-amount: uint
get-redeemable-btc-by-amountread-onlybtcz-amount: uint
mul-btcz-with-ratio-to-satsread-onlybtcz: uint, ratio: uint