Source Code

;; --------------------------------------------------
;; SIP-010 Fungible Token
;; --------------------------------------------------

(define-fungible-token stacks-token)

;; Errors
(define-constant err-not-owner (err u100))
(define-constant err-not-authorized (err u101))

;; Owner
(define-data-var owner principal tx-sender)

;; --------------------------------------------------
;; SIP-010 Required Read-Only Functions
;; --------------------------------------------------

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

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

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

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

(define-read-only (get-balance (who principal))
  (ok (ft-get-balance stacks-token who))
)

;; --------------------------------------------------
;; SIP-010 Required Public Function
;; --------------------------------------------------

(define-public (transfer (amount uint) (sender principal) (recipient principal))
  (if (is-eq tx-sender sender)
      (begin
        (try! (ft-transfer? stacks-token amount sender recipient))
        (ok true)
      )
      err-not-authorized
  )
)

;; --------------------------------------------------
;; Mint (Owner Only)
;; --------------------------------------------------

(define-public (mint (amount uint) (recipient principal))
  (if (is-eq tx-sender (var-get owner))
      (begin
        (try! (ft-mint? stacks-token amount recipient))
        (ok true)
      )
      err-not-owner
  )
)

Functions (7)

FunctionAccessArgs
get-nameread-only
get-symbolread-only
get-decimalsread-only
get-total-supplyread-only
get-balanceread-onlywho: principal
transferpublicamount: uint, sender: principal, recipient: principal
mintpublicamount: uint, recipient: principal