mirror of
https://github.com/zhigang1992/liquid-stacking.git
synced 2026-01-12 22:48:34 +08:00
feat: vendoring sip-010-trait for regtest
This commit is contained in:
@@ -35,6 +35,10 @@ epoch = 2.4
|
||||
path = "contracts/extensions/token-vesting.clar"
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.sip-010-trait]
|
||||
path = "contracts/traits/sip-010-trait.clar"
|
||||
epoch = 2.4
|
||||
|
||||
[contracts.strategy-trait]
|
||||
path = "contracts/traits/strategy-trait.clar"
|
||||
epoch = 2.4
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
;; lqstx-mint-registry
|
||||
;;
|
||||
|
||||
;; __IF_MAINNET__
|
||||
(use-trait sip-010-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait)
|
||||
;; (use-trait sip-010-trait .sip-010-trait.sip-010-trait)
|
||||
;; __ENDIF__
|
||||
|
||||
(define-constant err-unauthorised (err u1000))
|
||||
(define-constant err-unknown-request-id (err u1008))
|
||||
@@ -29,7 +32,7 @@
|
||||
|
||||
(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-read-only (get-mint-request-nonce)
|
||||
(var-get mint-request-nonce))
|
||||
|
||||
@@ -40,7 +43,7 @@
|
||||
(ok (unwrap! (map-get? mint-requests request-id) err-unknown-request-id)))
|
||||
|
||||
(define-read-only (get-burn-request-or-fail (request-id uint))
|
||||
(ok (unwrap! (map-get? burn-requests request-id) err-unknown-request-id)))
|
||||
(ok (unwrap! (map-get? burn-requests request-id) err-unknown-request-id)))
|
||||
|
||||
(define-read-only (get-mint-requests-pending-or-default (user principal))
|
||||
(default-to (list ) (map-get? mint-requests-pending user)))
|
||||
@@ -71,29 +74,29 @@
|
||||
)
|
||||
(try! (is-dao-or-extension))
|
||||
(map-set burn-requests id details)
|
||||
(ok id)))
|
||||
(ok id)))
|
||||
|
||||
(define-public (set-mint-requests-pending (requested-by principal) (new-list (list 1000 uint)))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(ok (map-set mint-requests-pending requested-by new-list))))
|
||||
|
||||
(define-public (set-burn-requests-pending (requested-by principal) (new-list (list 1000 uint)))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(ok (map-set burn-requests-pending requested-by new-list))))
|
||||
|
||||
(define-public (set-mint-requests-pending-amount (new-amount uint))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(ok (var-set mint-requests-pending-amount new-amount))))
|
||||
|
||||
(define-public (transfer (amount uint) (recipient principal) (token-trait <sip-010-trait>))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(as-contract (contract-call? token-trait transfer amount tx-sender recipient none))))
|
||||
|
||||
(define-public (stx-transfer (amount uint) (recipient principal))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(as-contract (stx-transfer? amount tx-sender recipient))))
|
||||
(as-contract (stx-transfer? amount tx-sender recipient))))
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
;;
|
||||
;; lqstx-mint-endpoint
|
||||
;;
|
||||
|
||||
;; __IF_MAINNET__
|
||||
(use-trait sip-010-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait)
|
||||
;; (use-trait sip-010-trait .sip-010-trait.sip-010-trait)
|
||||
;; __ENDIF__
|
||||
(use-trait rebase-strategy-trait .rebase-strategy-trait.rebase-strategy-trait)
|
||||
|
||||
(define-constant err-unauthorised (err u1000))
|
||||
@@ -82,7 +86,7 @@
|
||||
;; (some (contract-call? 'SP000000000000000000002Q6VF78.pox-3 current-pox-reward-cycle)))
|
||||
(if (>= stacks-height (var-get activation-block))
|
||||
(some (/ (- stacks-height (var-get activation-block)) (var-get reward-cycle-length)))
|
||||
none))
|
||||
none))
|
||||
|
||||
;; @dev used for testing only
|
||||
(define-read-only (get-first-stacks-block-in-reward-cycle (reward-cycle uint))
|
||||
@@ -98,12 +102,12 @@
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-use-whitelist (new-use bool))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(ok (var-set use-whitelist new-use))))
|
||||
|
||||
(define-public (set-whitelisted (user principal) (new-whitelisted bool))
|
||||
(begin
|
||||
(begin
|
||||
(try! (is-dao-or-extension))
|
||||
(set-whitelisted-private user new-whitelisted)))
|
||||
|
||||
@@ -189,7 +193,7 @@
|
||||
(try! (contract-call? .lqstx-mint-registry set-burn-requests-pending sender (unwrap-panic (as-max-len? (append (get-burn-requests-pending-or-default sender) request-id) u1000))))
|
||||
(match (contract-call? rebase-trait finalize-burn request-id)
|
||||
ok-value (ok { request-id: request-id, status: FINALIZED })
|
||||
err-value (begin (print { type: "burn-request", id: request-id, details: request-details, finalize-err: err-value }) (ok { request-id: request-id, status: PENDING })))))
|
||||
err-value (begin (print { type: "burn-request", id: request-id, details: request-details, finalize-err: err-value }) (ok { request-id: request-id, status: PENDING })))))
|
||||
|
||||
(define-public (finalize-burn (request-id uint))
|
||||
(let (
|
||||
@@ -197,7 +201,7 @@
|
||||
(transfer-vlqstx (try! (contract-call? .lqstx-mint-registry transfer (get wrapped-amount request-details) (as-contract tx-sender) .token-vlqstx)))
|
||||
(burn-requests (get-burn-requests-pending-or-default (get requested-by request-details)))
|
||||
(validation-data (try! (validate-burn-request request-id))))
|
||||
(try! (is-paused-or-fail))
|
||||
(try! (is-paused-or-fail))
|
||||
(try! (is-dao-or-extension))
|
||||
(try! (contract-call? .token-vlqstx burn (get wrapped-amount request-details) (as-contract tx-sender)))
|
||||
(try! (contract-call? .token-lqstx dao-burn (get vaulted-amount validation-data) (as-contract tx-sender)))
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
;;
|
||||
;; lqstx-mint-endpoint-v1-01
|
||||
;;
|
||||
|
||||
;; __IF_MAINNET__
|
||||
(use-trait sip-010-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait)
|
||||
;; (use-trait sip-010-trait .sip-010-trait.sip-010-trait)
|
||||
;; __ENDIF__
|
||||
|
||||
(define-constant err-unauthorised (err u1000))
|
||||
(define-constant err-paused (err u1001))
|
||||
|
||||
@@ -9,21 +9,21 @@
|
||||
{extension: .lqstx-mint-endpoint, enabled: false}
|
||||
{extension: .lqstx-mint-endpoint-v1-01, enabled: true}
|
||||
{extension: .lisa-rebase, enabled: true}
|
||||
{extension: .rebase-mock, enabled: true}
|
||||
{extension: .rebase-1, enabled: true}
|
||||
{extension: .mock-strategy-manager, enabled: true}
|
||||
{extension: .lqstx-vault, enabled: true}
|
||||
{extension: .operators, enabled: true}
|
||||
{extension: .operators, enabled: true}
|
||||
)))
|
||||
|
||||
|
||||
;; Set initial operators
|
||||
(try! (contract-call? .operators set-operators (list
|
||||
{operator: tx-sender, enabled: true}
|
||||
{operator: tx-sender, enabled: true}
|
||||
{operator: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM, enabled: true}
|
||||
{operator: 'ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND, enabled: true}
|
||||
{operator: 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB, enabled: true}
|
||||
)))
|
||||
(try! (contract-call? .operators set-proposal-threshold 2))
|
||||
|
||||
|
||||
(try! (contract-call? .lqstx-mint-endpoint-v1-01 set-paused false))
|
||||
(try! (contract-call? .lqstx-mint-endpoint-v1-01 set-mint-delay u14))
|
||||
(try! (contract-call? .mock-strategy-manager set-authorised-manager 'ST2QXSK64YQX3CQPC530K79XWQ98XFAM9W3XKEH3N true))
|
||||
|
||||
25
contracts/traits/sip-010-trait.clar
Normal file
25
contracts/traits/sip-010-trait.clar
Normal file
@@ -0,0 +1,25 @@
|
||||
;; https://explorer.hiro.so/txid/SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard
|
||||
(define-trait sip-010-trait
|
||||
(
|
||||
;; Transfer from the caller to a new principal
|
||||
(transfer (uint principal principal (optional (buff 34))) (response bool uint))
|
||||
|
||||
;; the human readable name of the token
|
||||
(get-name () (response (string-ascii 32) uint))
|
||||
|
||||
;; the ticker symbol, or empty if none
|
||||
(get-symbol () (response (string-ascii 32) uint))
|
||||
|
||||
;; the number of decimals used, e.g. 6 would mean 1_000_000 represents 1 token
|
||||
(get-decimals () (response uint uint))
|
||||
|
||||
;; the balance of the passed principal
|
||||
(get-balance (principal) (response uint uint))
|
||||
|
||||
;; the current total supply (which does not need to be a constant)
|
||||
(get-total-supply () (response uint uint))
|
||||
|
||||
;; an optional URI that represents metadata of this token
|
||||
(get-token-uri () (response (optional (string-utf8 256)) uint))
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user