staging-proposal-add-ststxbtc-token-2-v1

SP1K9NMMGWTY85HQ6Z0CH1SBF5E2NMMKCW9D7XFVM

Source Code

;; Mainnet Proposal: Initialize stSTXbtc-v2 Asset and Create Egroups (v1 - Fixed Parameters)
;; This proposal:
;;   1. Registers stSTXbtc-v2 token (Asset ID 11)
;;   2. Enables it for collateral
;;   3. Creates 3 egroups with different debt configurations
;;
;; V1 Fix: Updated egroup parameters to satisfy strict inequality validation
;;   - All parameters must be strictly increasing (cannot use zeros)

(impl-trait .staging-dao-traits-v0.proposal-script)

;; Oracle configuration
(define-constant STSTXBTC-FEED-ID 0xec7a775f46379b5e943c3526b1c8d54cd49749176b0b98e02dde68d1bd335c17)
(define-constant MAX-STALENESS u120)

;; Token reference
(define-constant STSTXBTC-TOKEN 'SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.ststxbtc-token-v2)

;; Oracle type constant
(define-constant TYPE-PYTH 0x00)

;; Asset IDs (for reference):
;; STX (wstx): 0, sBTC: 1, stSTX: 2, USDC: 3, USDh: 4
;; zSTX: 5, zsBTC: 6, zstSTX: 7, zUSDC: 8, zUSDh: 9
;; stSTXbtc (v1): 10, stSTXbtc-v2: 11 (NEW)
;;
;; MASK encoding:
;; Bits 0-63: Collateral assets (bit position = asset ID)
;; Bits 64-127: Debt assets (bit position = asset ID + 64)

(define-public (execute)
  (begin    
    ;; =========================================================================
    ;; STEP 1: REGISTER ASSET
    ;; Asset ID 11: stSTXbtc-v2 (Stacked STX BTC v2)
    ;; =========================================================================
    
    ;; Register stSTXbtc-v2 with Pyth price feed (uses STX feed)
    (try! (contract-call? .staging-assets-v0 insert 
      STSTXBTC-TOKEN
      {
        type: TYPE-PYTH,
        ident: STSTXBTC-FEED-ID,
        callcode: none,
        max-staleness: MAX-STALENESS
      }))
    
    ;; Enable stSTXbtc-v2 for collateral only
    (try! (contract-call? .staging-assets-v0 enable STSTXBTC-TOKEN true))
    
    ;; =========================================================================
    ;; STEP 2: CREATE EGROUPS FOR ASSET ID 11
    ;; =========================================================================
    
    ;; -------------------------------------------------------------------------
    ;; Group 1: stSTXbtc-v2 -> USDC+USDh (40% LTV)
    ;; Medium confidence - stSTXbtc-v2 as volatile collateral
    ;; MASK = 2^11 + 2^67 + 2^68 = 442721857769029240832
    ;; -------------------------------------------------------------------------
    (try! (contract-call? .staging-egroup-v0 insert {
      MASK: u442721857769029240832,
      LIQ-CURVE-EXP: u10000,
      LIQ-PENALTY-MIN: u500,
      LIQ-PENALTY-MAX: u1000,
      LTV-BORROW: u4000,
      LTV-LIQ-PARTIAL: u6000,
      LTV-LIQ-FULL: u7500
    }))
    
    ;; -------------------------------------------------------------------------
    ;; Group 2: stSTXbtc-v2 -> sBTC+USDC+USDh+STX+stSTX (20% LTV)
    ;; Multi-debt stSTXbtc-v2 collateral - very conservative
    ;; MASK = 2^11 + 2^64 + 2^65 + 2^66 + 2^67 + 2^68 = 571849066284996102144
    ;; -------------------------------------------------------------------------
    (try! (contract-call? .staging-egroup-v0 insert {
      MASK: u571849066284996102144,
      LIQ-CURVE-EXP: u10000,
      LIQ-PENALTY-MIN: u500,
      LIQ-PENALTY-MAX: u1000,
      LTV-BORROW: u2000,
      LTV-LIQ-PARTIAL: u4000,
      LTV-LIQ-FULL: u5500
    }))
    
    ;; -------------------------------------------------------------------------
    ;; Group 3: stSTXbtc-v2 -> stSTX+STX (80% LTV)
    ;; High correlation pair - stSTXbtc-v2 with STX-related debt
    ;; MASK = 2^11 + 2^64 + 2^66 = 92233720368547760128
    ;; -------------------------------------------------------------------------
    (try! (contract-call? .staging-egroup-v0 insert {
      MASK: u92233720368547760128,
      LIQ-CURVE-EXP: u10000,
      LIQ-PENALTY-MIN: u500,
      LIQ-PENALTY-MAX: u1000,
      LTV-BORROW: u8000,
      LTV-LIQ-PARTIAL: u9000,
      LTV-LIQ-FULL: u9500
    }))
    
    (ok true)))

Functions (1)

FunctionAccessArgs
executepublic