enthusiastic-chocolate-silkworm

SPGW07GB61SQ9EPQFG1A7HMMHN22805SM7E336QS

Source Code

;; =========================================================
;; Secure SIP-010 Fungible Token
;; =========================================================

(define-constant contract-owner tx-sender)

(define-constant err-owner-only (err u100))
(define-constant err-not-enough-balance (err u101))
(define-constant err-zero-amount (err u102))

(define-fungible-token mytoken u1000000000) ;; 1B max supply

;; ----------------------------
;; Read-only functions
;; ----------------------------

(define-read-only (get-name)
  (ok "My Secure Token"))

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

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

(define-read-only (get-total-supply)
  (ok (ft-get-supply mytoken)))

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

;; ----------------------------
;; Public functions
;; ----------------------------

(define-public (mint (amount uint) (recipient principal))
  (begin
    (asserts! (is-eq tx-sender contract-owner) err-owner-only)
    (asserts! (> amount u0) err-zero-amount)
    (ft-mint? mytoken amount recipient)
  )
)

(define-public (transfer (amount uint) (sender principal) (recipient principal))
  (begin
    (asserts! (> amount u0) err-zero-amount)
    (asserts!
      (is-eq tx-sender sender)
      err-owner-only
    )
    (ft-transfer? mytoken amount sender recipient)
  )
)

Functions (7)

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