Source Code

;; $Fight (https://lasereye.vip/#/x/tokens)

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

(define-fungible-token Fight)

(define-constant MAX_SUPPLY u45000000000000)
(define-constant DECIMAL u0)
(define-constant ONE_COIN (pow u10 DECIMAL))
(define-constant AIRDROP_COUNT_PER_MEMBER (* u85000000000 ONE_COIN))

(define-data-var m_admin principal tx-sender)
(define-data-var m_name (string-ascii 32) "Fight")
(define-data-var m_symbol (string-ascii 32) "Fight!Fight!Fight!(lasereye.vip)")

(define-read-only (get-balance (user principal))
  (ok (ft-get-balance Fight user))
)

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

(define-read-only (get-name)
  (ok (var-get m_name))
)

(define-read-only (get-symbol)
  (ok (var-get m_symbol))
)

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

(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))
  (if (is-eq tx-sender sender)
    (begin
      (try! (ft-transfer? Fight amount sender recipient))
      (print memo)
      (ok true)
    )
    (err u4)
  )
)

(define-public (burn (count uint))
  (ft-burn? Fight count tx-sender)
)

(define-public (get-token-uri)
  (ok (some u"https://ipfs.io/ipfs/QmTRbJVaY2eNqsaS11pdDtL9BHmsNVBKCVQNZu3y6xYVHf"))
)

(define-public (set-admin (admin principal))
  (ok (and
    (is-eq (var-get m_admin) tx-sender)
    (var-set m_admin admin)
  ))
)

(define-public (set-name (name (string-ascii 32)))
  (ok (and
    (is-eq (var-get m_admin) tx-sender)
    (var-set m_name name)
  ))
)

(define-public (set-symbol (symbol (string-ascii 32)))
  (ok (and
    (is-eq (var-get m_admin) tx-sender)
    (var-set m_symbol symbol)
  ))
)

(define-private (airdrop (tid uint))
  (match (contract-call? 'SP3XYJ8XFZYF7MD86QQ5EF8HBVHHZFFQ9HM6SPJNQ.laser-eyes-v5 get_player_by_id tid) user
    (is-ok (ft-mint? Fight AIRDROP_COUNT_PER_MEMBER user))
    false
  )
)

(map airdrop (list u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21))
(ft-mint? Fight (- MAX_SUPPLY (* u21 AIRDROP_COUNT_PER_MEMBER)) tx-sender)

Functions (12)

FunctionAccessArgs
get-balanceread-onlyuser: principal
get-total-supplyread-only
get-nameread-only
get-symbolread-only
get-decimalsread-only
transferpublicamount: uint, sender: principal, recipient: principal, memo: (optional (buff 34
burnpubliccount: uint
get-token-uripublic
set-adminpublicadmin: principal
set-namepublicname: (string-ascii 32
set-symbolpublicsymbol: (string-ascii 32
airdropprivatetid: uint