mirror of
https://github.com/zhigang1992/liquid-stacking.git
synced 2026-04-30 13:02:37 +08:00
working
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
(define-data-var mint-delay uint u432) ;; mint available 3 day after cycle starts
|
||||
|
||||
;; __IF_MAINNET__
|
||||
(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-pox-info)))
|
||||
(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-pox-info)))
|
||||
(define-constant activation-burn-block (get first-burnchain-block-height pox-info))
|
||||
(define-constant reward-cycle-length (get reward-cycle-length pox-info))
|
||||
(define-constant prepare-cycle-length (get prepare-cycle-length pox-info))
|
||||
|
||||
@@ -83,14 +83,14 @@
|
||||
|
||||
;; @dev used for testing only
|
||||
(define-read-only (get-reward-cycle (stacks-height uint))
|
||||
;; (some (contract-call? 'SP000000000000000000002Q6VF78.pox-3 current-pox-reward-cycle)))
|
||||
;; (some (contract-call? 'ST000000000000000000002AMW42H.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))
|
||||
|
||||
;; @dev used for testing only
|
||||
(define-read-only (get-first-stacks-block-in-reward-cycle (reward-cycle uint))
|
||||
;; (contract-call? 'SP000000000000000000002Q6VF78.pox-3 reward-cycle-to-burn-height reward-cycle))
|
||||
;; (contract-call? 'ST000000000000000000002AMW42H.pox-3 reward-cycle-to-burn-height reward-cycle))
|
||||
(+ (var-get activation-block) (* (var-get reward-cycle-length) reward-cycle)))
|
||||
|
||||
(define-read-only (get-mint-delay)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
;; SPDX-License-Identifier: BUSL-1.1
|
||||
|
||||
(use-trait strategy-trait .strategy-trait.strategy-trait)
|
||||
|
||||
(define-constant err-unauthorised (err u3000))
|
||||
|
||||
(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-private (sum-strategy-amounts (strategy <strategy-trait>) (accumulator (response uint uint)))
|
||||
(ok (+ (try! (contract-call? strategy get-amount-in-strategy)) (try! accumulator)))
|
||||
)
|
||||
|
||||
(define-public (rebase (strategies (list 20 <strategy-trait>)))
|
||||
(let ((total-stx (- (+ (stx-get-balance .lqstx-vault) (try! (fold sum-strategy-amounts strategies (ok u0)))) (contract-call? .lqstx-mint-endpoint-v1-02 get-mint-requests-pending-amount))))
|
||||
(try! (is-dao-or-extension))
|
||||
(as-contract (try! (contract-call? .token-lqstx set-reserve total-stx)))
|
||||
(ok total-stx)
|
||||
)
|
||||
)
|
||||
@@ -5,6 +5,8 @@
|
||||
;; lqstx-mint-endpoint-v1-02
|
||||
;;
|
||||
|
||||
(use-trait strategy-trait .strategy-trait.strategy-trait)
|
||||
|
||||
;; __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)
|
||||
@@ -27,7 +29,7 @@
|
||||
|
||||
;; __IF_MAINNET__
|
||||
(define-data-var request-cutoff uint u300) ;; request must be made 300 blocks before prepare stage starts
|
||||
(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-pox-info)))
|
||||
(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-pox-info)))
|
||||
(define-constant activation-burn-block (get first-burnchain-block-height pox-info))
|
||||
(define-constant reward-cycle-length (get reward-cycle-length pox-info))
|
||||
(define-constant prepare-cycle-length (get prepare-cycle-length pox-info))
|
||||
@@ -119,10 +121,25 @@
|
||||
|
||||
;; public calls
|
||||
|
||||
(define-public (rebase)
|
||||
(let (
|
||||
;; (total-stx (- (+ (stx-get-balance .lqstx-vault) (try! (fold sum-strategy-amounts (list .public-pools-strategy) (ok u0)))) (get-mint-requests-pending-amount))))
|
||||
(available-stx (stx-get-balance .lqstx-vault))
|
||||
;; __IF_MAINNET__
|
||||
(deployed-stx (unwrap-panic (contract-call? .public-pools-strategy get-amount-in-strategy)))
|
||||
;; (deployed-stx (unwrap-panic (contract-call? .mock-strategy get-amount-in-strategy)))
|
||||
;; __ENDIF__
|
||||
(pending-stx (get-mint-requests-pending-amount))
|
||||
(check-stx (asserts! (>= (+ available-stx deployed-stx) pending-stx) (err deployed-stx)))
|
||||
(total-stx (- (+ available-stx deployed-stx) pending-stx)))
|
||||
(as-contract (try! (contract-call? .token-lqstx set-reserve total-stx)))
|
||||
(ok total-stx)))
|
||||
|
||||
;; @dev the requestor stx is held by the contract until mint can be finalized.
|
||||
(define-public (request-mint (amount uint))
|
||||
(let (
|
||||
(let (
|
||||
(sender tx-sender)
|
||||
(rebase-first (try! (rebase)))
|
||||
(cycle (get-request-cycle burn-block-height))
|
||||
(request-details { requested-by: sender, amount: amount, requested-at: cycle, status: PENDING })
|
||||
(request-id (try! (contract-call? .lqstx-mint-registry set-mint-request u0 request-details))))
|
||||
@@ -130,12 +147,14 @@
|
||||
(asserts! (is-whitelisted-or-mint-for-all sender) err-not-whitelisted)
|
||||
(try! (stx-transfer? amount sender .lqstx-vault))
|
||||
(try! (contract-call? .lqstx-mint-registry set-mint-requests-pending-amount (+ (get-mint-requests-pending-amount) amount)))
|
||||
(try! (contract-call? .li-stx-mint-nft mint request-id amount sender))
|
||||
;; (try! (contract-call? .li-stx-mint-nft mint request-id amount sender))
|
||||
(try! (rebase))
|
||||
(print { type: "mint-request", id: request-id, details: request-details })
|
||||
(ok request-id)))
|
||||
|
||||
(define-public (revoke-mint (request-id uint))
|
||||
(let (
|
||||
(rebase-first (try! (rebase)))
|
||||
(request-details (try! (get-mint-request-or-fail request-id)))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-mint-nft request-id)) err-request-finalized-or-revoked)))
|
||||
(try! (is-not-paused-or-fail))
|
||||
@@ -145,23 +164,86 @@
|
||||
(try! (contract-call? .lqstx-mint-registry set-mint-request request-id (merge request-details { status: REVOKED })))
|
||||
(try! (contract-call? .lqstx-mint-registry set-mint-requests-pending-amount (- (get-mint-requests-pending-amount) (get amount request-details))))
|
||||
(as-contract (try! (contract-call? .li-stx-mint-nft burn request-id)))
|
||||
(try! (rebase))
|
||||
(ok true)))
|
||||
|
||||
(define-public (request-burn (amount uint))
|
||||
(let (
|
||||
(sender tx-sender)
|
||||
(rebase-first (try! (rebase)))
|
||||
(cycle (get-request-cycle burn-block-height))
|
||||
(vlqstx-amount (contract-call? .token-vlqstx get-tokens-to-shares amount))
|
||||
(request-details { requested-by: sender, amount: amount, wrapped-amount: vlqstx-amount, requested-at: cycle, status: PENDING })
|
||||
(request-id (try! (contract-call? .lqstx-mint-registry set-burn-request u0 request-details))))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(print { type: "burn-request", id: request-id, details: request-details })
|
||||
(if (>= (stx-get-balance .lqstx-vault) amount)
|
||||
(begin
|
||||
(as-contract (try! (contract-call? .token-lqstx dao-burn amount sender)))
|
||||
(as-contract (try! (contract-call? .lqstx-vault proxy-call .stx-transfer-proxy (unwrap-panic (to-consensus-buff? { ustx: amount, recipient: sender })))))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: FINALIZED }))))
|
||||
(try! (rebase))
|
||||
(ok {request-id: request-id, status: FINALIZED })
|
||||
)
|
||||
(begin
|
||||
(try! (contract-call? .token-vlqstx mint amount sender))
|
||||
(try! (contract-call? .token-vlqstx transfer vlqstx-amount sender .lqstx-mint-registry none))
|
||||
(as-contract (try! (contract-call? .li-stx-burn-nft mint request-id amount sender)))
|
||||
(try! (rebase))
|
||||
(ok { request-id: request-id, status: PENDING })))))
|
||||
|
||||
(define-public (revoke-burn (request-id uint))
|
||||
(let (
|
||||
(rebase-first (try! (rebase)))
|
||||
(request-details (try! (get-burn-request-or-fail request-id)))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-burn-nft request-id)) err-request-finalized-or-revoked))
|
||||
(lqstx-amount (contract-call? .token-vlqstx get-shares-to-tokens (get wrapped-amount request-details))))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked)
|
||||
(asserts! (is-eq tx-sender recipient) err-unauthorised)
|
||||
(try! (contract-call? .lqstx-mint-registry transfer (get wrapped-amount request-details) (as-contract tx-sender) .token-vlqstx))
|
||||
(try! (contract-call? .token-vlqstx burn (get wrapped-amount request-details) (as-contract tx-sender)))
|
||||
(try! (contract-call? .token-lqstx transfer lqstx-amount (as-contract tx-sender) recipient none))
|
||||
(try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: REVOKED })))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry transfer (get wrapped-amount request-details) recipient .token-vlqstx)))
|
||||
(try! (contract-call? .token-vlqstx burn (get wrapped-amount request-details) recipient))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: REVOKED }))))
|
||||
(as-contract (try! (contract-call? .li-stx-burn-nft burn request-id)))
|
||||
(try! (rebase))
|
||||
(ok true)))
|
||||
|
||||
(define-public (finalize-mint (request-id uint))
|
||||
(let (
|
||||
(rebase-first (try! (rebase)))
|
||||
(request-details (try! (get-mint-request-or-fail request-id)))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-mint-nft request-id)) err-request-finalized-or-revoked)))
|
||||
(try! (validate-mint-request request-id))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(as-contract (try! (contract-call? .token-lqstx dao-mint (get amount request-details) recipient)))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry set-mint-request request-id (merge request-details { status: FINALIZED }))))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry set-mint-requests-pending-amount (- (get-mint-requests-pending-amount) (get amount request-details)))))
|
||||
(as-contract (try! (contract-call? .li-stx-mint-nft burn request-id)))
|
||||
(try! (rebase))
|
||||
(ok true)))
|
||||
|
||||
(define-public (finalize-mint-many (request-ids (list 1000 uint)))
|
||||
(fold check-err (map finalize-mint request-ids) (ok true)))
|
||||
|
||||
(define-public (finalize-burn (request-id uint))
|
||||
(let (
|
||||
(rebase-first (try! (rebase)))
|
||||
(request-details (try! (get-burn-request-or-fail request-id)))
|
||||
(transfer-vlqstx (as-contract (try! (contract-call? .lqstx-mint-registry transfer (get wrapped-amount request-details) tx-sender .token-vlqstx))))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-burn-nft request-id)) err-request-finalized-or-revoked))
|
||||
(validation-data (try! (validate-burn-request request-id))))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(as-contract (try! (contract-call? .token-vlqstx burn (get wrapped-amount request-details) tx-sender)))
|
||||
(as-contract (try! (contract-call? .token-lqstx dao-burn (get vaulted-amount validation-data) tx-sender)))
|
||||
(as-contract (try! (contract-call? .lqstx-vault proxy-call .stx-transfer-proxy (unwrap-panic (to-consensus-buff? { ustx: (get vaulted-amount validation-data), recipient: recipient })))))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: FINALIZED }))))
|
||||
(as-contract (try! (contract-call? .li-stx-burn-nft burn request-id)))
|
||||
(try! (rebase))
|
||||
(ok true)))
|
||||
|
||||
(define-public (finalize-burn-many (request-ids (list 1000 uint)))
|
||||
(fold check-err (map finalize-burn request-ids) (ok true)))
|
||||
|
||||
;; governance calls
|
||||
|
||||
(define-public (set-use-whitelist (new-use bool))
|
||||
@@ -196,66 +278,12 @@
|
||||
|
||||
;; privileged calls
|
||||
|
||||
(define-public (finalize-mint (request-id uint))
|
||||
(let (
|
||||
(request-details (try! (get-mint-request-or-fail request-id)))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-mint-nft request-id)) err-request-finalized-or-revoked)))
|
||||
(try! (validate-mint-request request-id))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(try! (is-dao-or-extension))
|
||||
(try! (contract-call? .token-lqstx dao-mint (get amount request-details) recipient))
|
||||
(try! (contract-call? .lqstx-mint-registry set-mint-request request-id (merge request-details { status: FINALIZED })))
|
||||
(try! (contract-call? .lqstx-mint-registry set-mint-requests-pending-amount (- (get-mint-requests-pending-amount) (get amount request-details))))
|
||||
(try! (contract-call? .li-stx-mint-nft burn request-id))
|
||||
(ok true)))
|
||||
|
||||
(define-public (finalize-mint-many (request-ids (list 1000 uint)))
|
||||
(fold check-err (map finalize-mint request-ids) (ok true)))
|
||||
|
||||
(define-public (request-burn (sender principal) (amount uint))
|
||||
(let (
|
||||
(cycle (get-request-cycle burn-block-height))
|
||||
(vlqstx-amount (contract-call? .token-vlqstx get-tokens-to-shares amount))
|
||||
(request-details { requested-by: sender, amount: amount, wrapped-amount: vlqstx-amount, requested-at: cycle, status: PENDING })
|
||||
(request-id (try! (contract-call? .lqstx-mint-registry set-burn-request u0 request-details))))
|
||||
(try! (is-not-paused-or-fail))
|
||||
(try! (is-dao-or-extension))
|
||||
(try! (contract-call? .token-vlqstx mint amount tx-sender))
|
||||
(try! (contract-call? .token-vlqstx transfer vlqstx-amount tx-sender .lqstx-mint-registry none))
|
||||
(print { type: "burn-request", id: request-id, details: request-details })
|
||||
(if (>= (stx-get-balance .lqstx-vault) amount)
|
||||
(begin
|
||||
(try! (contract-call? .lqstx-mint-registry transfer vlqstx-amount (as-contract tx-sender) .token-vlqstx))
|
||||
(try! (contract-call? .token-vlqstx burn vlqstx-amount (as-contract tx-sender)))
|
||||
(try! (contract-call? .token-lqstx dao-burn amount (as-contract tx-sender)))
|
||||
(try! (contract-call? .lqstx-vault proxy-call .stx-transfer-proxy (unwrap-panic (to-consensus-buff? { ustx: vlqstx-amount, recipient: sender }))))
|
||||
(try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: FINALIZED })))
|
||||
(ok {request-id: request-id, status: FINALIZED })
|
||||
)
|
||||
(begin
|
||||
(try! (contract-call? .li-stx-burn-nft mint request-id amount sender))
|
||||
(ok { request-id: request-id, status: PENDING })))))
|
||||
|
||||
(define-public (finalize-burn (request-id uint))
|
||||
(let (
|
||||
(request-details (try! (get-burn-request-or-fail request-id)))
|
||||
(transfer-vlqstx (try! (contract-call? .lqstx-mint-registry transfer (get wrapped-amount request-details) (as-contract tx-sender) .token-vlqstx)))
|
||||
(recipient (unwrap! (unwrap-panic (get-owner-burn-nft request-id)) err-request-finalized-or-revoked))
|
||||
(validation-data (try! (validate-burn-request request-id))))
|
||||
(try! (is-not-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)))
|
||||
(try! (contract-call? .lqstx-vault proxy-call .stx-transfer-proxy (unwrap-panic (to-consensus-buff? { ustx: (get vaulted-amount validation-data), recipient: recipient }))))
|
||||
(try! (contract-call? .lqstx-mint-registry set-burn-request request-id (merge request-details { status: FINALIZED })))
|
||||
(try! (contract-call? .li-stx-burn-nft burn request-id))
|
||||
(ok true)))
|
||||
|
||||
(define-public (finalize-burn-many (request-ids (list 1000 uint)))
|
||||
(fold check-err (map finalize-burn request-ids) (ok true)))
|
||||
|
||||
;; private calls
|
||||
|
||||
(define-private (sum-strategy-amounts (strategy <strategy-trait>) (accumulator (response uint uint)))
|
||||
(ok (+ (try! (contract-call? strategy get-amount-in-strategy)) (try! accumulator)))
|
||||
)
|
||||
|
||||
(define-private (check-err (result (response bool uint)) (prior (response bool uint)))
|
||||
(match prior
|
||||
ok-value result
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
;; 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-v1-02 rebase (list .mock-strategy))))
|
||||
|
||||
(define-public (finalize-mint (request-id uint))
|
||||
(begin
|
||||
(try! (rebase))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-02 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-02 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-02 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))
|
||||
@@ -6,17 +6,14 @@
|
||||
(define-public (execute (sender principal))
|
||||
(begin
|
||||
(try! (contract-call? .lisa-dao set-extensions (list
|
||||
{extension: .lqstx-mint-endpoint, enabled: false}
|
||||
{extension: .lqstx-mint-endpoint-v1-02, enabled: true}
|
||||
{extension: .lisa-rebase-v1-02, enabled: true}
|
||||
;; __IF_MAINNET__
|
||||
{extension: .rebase-mock, enabled: true}
|
||||
;; {extension: .rebase-1-v1-02, enabled: true}
|
||||
;; __ENDIF__
|
||||
{extension: .rebase-mock, enabled: true}
|
||||
{extension: .mock-strategy-manager, enabled: true}
|
||||
{extension: .lqstx-vault, enabled: true}
|
||||
{extension: .operators, enabled: true}
|
||||
{ extension: .lqstx-mint-endpoint, enabled: false }
|
||||
{ extension: .lqstx-mint-endpoint-v1-02, enabled: true }
|
||||
{ extension: .lqstx-vault, enabled: true }
|
||||
{ extension: .treasury, enabled: true }
|
||||
{ extension: .token-vesting, enabled: true }
|
||||
{ extension: .public-pools-strategy-manager, enabled: true }
|
||||
{ extension: .operators, enabled: true }
|
||||
{ extension: .mock-strategy-manager, enabled: true }
|
||||
)))
|
||||
|
||||
;; Set initial operators
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
|
||||
;; 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-v1-02 rebase (list .public-pools-strategy))
|
||||
)
|
||||
|
||||
(define-public (finalize-mint (request-id uint))
|
||||
(begin
|
||||
(try! (rebase))
|
||||
(as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-02 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-02 finalize-burn request-id)))
|
||||
(try! (rebase))
|
||||
(ok true)))
|
||||
|
||||
(define-public (request-burn (amount uint))
|
||||
(let (
|
||||
(sender tx-sender))
|
||||
(try! (contract-call? .token-lqstx transfer amount sender (as-contract tx-sender) none))
|
||||
(as-contract (contract-call? .lqstx-mint-endpoint-v1-02 request-burn sender amount))))
|
||||
@@ -12,24 +12,17 @@
|
||||
{ extension: .treasury, enabled: true }
|
||||
{ extension: .token-vesting, enabled: true }
|
||||
{ extension: .public-pools-strategy-manager, enabled: true }
|
||||
{ extension: .lisa-rebase-v1-02, enabled: true }
|
||||
{ extension: .rebase-1-v1-02, enabled: true }
|
||||
{ extension: .operators, enabled: true }
|
||||
)))
|
||||
|
||||
;; Set initial operators
|
||||
(try! (contract-call? .operators set-operators (list
|
||||
;; three from ALEX
|
||||
{ operator: 'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7, enabled: true }
|
||||
{ operator: 'SPHFAXDZVFHMY8YR3P9J7ZCV6N89SBET203ZAY25, enabled: true }
|
||||
{ operator: 'SPSZ26REB731JN8H00TD010S600F4AB4Z8F0JRB7, enabled: true }
|
||||
;; three from Ryder/FAST Pool
|
||||
{ operator: 'SP12BFYTH3NJ6N63KE0S50GHSYV0M91NGQND2B704, enabled: true }
|
||||
{ operator: 'SP1ZPTDQ3801C1AYEZ37NJWNDZ3HM60HC2TCFP228, enabled: true }
|
||||
{ operator: 'SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B, enabled: true }
|
||||
{operator: tx-sender, enabled: true}
|
||||
{operator: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM, enabled: true}
|
||||
{operator: 'ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND, enabled: true}
|
||||
{operator: 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB, enabled: true}
|
||||
)))
|
||||
;; Set operator signal threshold, i.e. 4-of-6
|
||||
(try! (contract-call? .operators set-proposal-threshold 4))
|
||||
(try! (contract-call? .operators set-proposal-threshold 2))
|
||||
|
||||
;; Set initial strategy managers, sender is the deployer
|
||||
(try! (contract-call? .public-pools-strategy-manager set-authorised-manager sender true))
|
||||
@@ -38,24 +31,7 @@
|
||||
(try! (contract-call? .token-lisa dao-mint-many (list
|
||||
{ recipient: .treasury, amount: u1000000000000000 }
|
||||
)))
|
||||
|
||||
;; Enable whitelist
|
||||
(try! (contract-call? .lqstx-mint-endpoint-v1-02 set-use-whitelist false))
|
||||
(try! (contract-call? .lqstx-mint-endpoint-v1-02 set-whitelisted-many
|
||||
(list
|
||||
'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7
|
||||
'SP2VZBR9GCVM33BN0WXA05VJP6QV7CJ3Z3SQKJ5HH
|
||||
'SP12BFYTH3NJ6N63KE0S50GHSYV0M91NGQND2B704
|
||||
'SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B
|
||||
'SPFJVM9Y1A4KJ31T8ZBDESZH36YGPDAZ9WXEFC53
|
||||
)
|
||||
(list
|
||||
true
|
||||
true
|
||||
true
|
||||
true
|
||||
true
|
||||
)))
|
||||
|
||||
(try! (contract-call? .lqstx-mint-endpoint-v1-02 set-paused false))
|
||||
(ok true)
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
(define-constant err-unauthorised (err u5000))
|
||||
|
||||
(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none))
|
||||
(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none))
|
||||
|
||||
(define-read-only (is-strategy-caller)
|
||||
(ok (asserts! (is-eq contract-caller .public-pools-strategy) err-unauthorised))
|
||||
@@ -20,7 +20,7 @@
|
||||
(define-public (revoke-delegate-stx)
|
||||
(begin
|
||||
(try! (is-strategy-caller))
|
||||
(match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx))
|
||||
(match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 revoke-delegate-stx))
|
||||
ok-val (ok ok-val)
|
||||
err-val (err (to-uint err-val))
|
||||
)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{ hashbytes: 0x827a04335a9eb22cb46979f180670c8e7ba453b5, version: 0x04 }
|
||||
)
|
||||
|
||||
(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none))
|
||||
(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none))
|
||||
|
||||
(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))
|
||||
@@ -37,7 +37,7 @@
|
||||
(define-public (revoke-delegate-stx)
|
||||
(begin
|
||||
(try! (is-strategy-caller))
|
||||
(match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx))
|
||||
(match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 revoke-delegate-stx))
|
||||
ok-val (ok ok-val)
|
||||
err-val (err (to-uint err-val))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user