feat: vendoring sip-010-trait for regtest

This commit is contained in:
Kyle Fang
2024-03-17 09:31:50 +08:00
parent 6aac03034c
commit cbd021ad42
6 changed files with 59 additions and 19 deletions

View File

@@ -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

View File

@@ -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))))

View File

@@ -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)))

View File

@@ -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))

View File

@@ -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))

View 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))
)
)