(impl-trait 'ST2PABAF9FTAJYNFZH93XENAJ8FVY99RRM4DF2YCW.nft-trait.nft-trait)

(define-constant MAX (uint 100))

(define-constant ERR-NOT-AUTHORIZED (err u0))

(define-non-fungible-token demo-a uint)

(define-public (transfer (token-id uint) (sender principal) (recipient principal))
	 (begin
		(asserts! (is-eq tx-sender sender) ERR-NOT-AUTHORIZED)
		(nft-transfer? demo-a token-id sender recipient)))

(define-read-only (get-owner (token-id uint))
	(ok (nft-get-owner? demo-a token-id)))

(define-read-only (get-last-token-id)
	(ok MAX))

(define-read-only (get-token-uri (token-id uint))
	(ok none))

(begin
	(try! (mint (as-contract (tx-sender)) u0))
(try! (mint (as-contract (tx-sender)) u1))
(try! (mint (as-contract (tx-sender)) u2))
(try! (mint (as-contract (tx-sender)) u3))
(try! (mint (as-contract (tx-sender)) u4))
(try! (mint (as-contract (tx-sender)) u5))
(try! (mint (as-contract (tx-sender)) u6))
(try! (mint (as-contract (tx-sender)) u7))
(try! (mint (as-contract (tx-sender)) u8))
(try! (mint (as-contract (tx-sender)) u9))
(try! (mint (as-contract (tx-sender)) u10))
(try! (mint (as-contract (tx-sender)) u11))
(try! (mint (as-contract (tx-sender)) u12))
(try! (mint (as-contract (tx-sender)) u13))
(try! (mint (as-contract (tx-sender)) u14))
(try! (mint (as-contract (tx-sender)) u15))
(try! (mint (as-contract (tx-sender)) u16))
(try! (mint (as-contract (tx-sender)) u17))
(try! (mint (as-contract (tx-sender)) u18))
(try! (mint (as-contract (tx-sender)) u19))
(try! (mint (as-contract (tx-sender)) u20))
(try! (mint (as-contract (tx-sender)) u21))
(try! (mint (as-contract (tx-sender)) u22))
(try! (mint (as-contract (tx-sender)) u23))
(try! (mint (as-contract (tx-sender)) u24))
(try! (mint (as-contract (tx-sender)) u25))
(try! (mint (as-contract (tx-sender)) u26))
(try! (mint (as-contract (tx-sender)) u27))
(try! (mint (as-contract (tx-sender)) u28))
(try! (mint (as-contract (tx-sender)) u29))
(try! (mint (as-contract (tx-sender)) u30))
(try! (mint (as-contract (tx-sender)) u31))
(try! (mint (as-contract (tx-sender)) u32))
(try! (mint (as-contract (tx-sender)) u33))
(try! (mint (as-contract (tx-sender)) u34))
(try! (mint (as-contract (tx-sender)) u35))
(try! (mint (as-contract (tx-sender)) u36))
(try! (mint (as-contract (tx-sender)) u37))
(try! (mint (as-contract (tx-sender)) u38))
(try! (mint (as-contract (tx-sender)) u39))
(try! (mint (as-contract (tx-sender)) u40))
(try! (mint (as-contract (tx-sender)) u41))
(try! (mint (as-contract (tx-sender)) u42))
(try! (mint (as-contract (tx-sender)) u43))
(try! (mint (as-contract (tx-sender)) u44))
(try! (mint (as-contract (tx-sender)) u45))
(try! (mint (as-contract (tx-sender)) u46))
(try! (mint (as-contract (tx-sender)) u47))
(try! (mint (as-contract (tx-sender)) u48))
(try! (mint (as-contract (tx-sender)) u49))
(try! (mint (as-contract (tx-sender)) u50))
(try! (mint (as-contract (tx-sender)) u51))
(try! (mint (as-contract (tx-sender)) u52))
(try! (mint (as-contract (tx-sender)) u53))
(try! (mint (as-contract (tx-sender)) u54))
(try! (mint (as-contract (tx-sender)) u55))
(try! (mint (as-contract (tx-sender)) u56))
(try! (mint (as-contract (tx-sender)) u57))
(try! (mint (as-contract (tx-sender)) u58))
(try! (mint (as-contract (tx-sender)) u59))
(try! (mint (as-contract (tx-sender)) u60))
(try! (mint (as-contract (tx-sender)) u61))
(try! (mint (as-contract (tx-sender)) u62))
(try! (mint (as-contract (tx-sender)) u63))
(try! (mint (as-contract (tx-sender)) u64))
(try! (mint (as-contract (tx-sender)) u65))
(try! (mint (as-contract (tx-sender)) u66))
(try! (mint (as-contract (tx-sender)) u67))
(try! (mint (as-contract (tx-sender)) u68))
(try! (mint (as-contract (tx-sender)) u69))
(try! (mint (as-contract (tx-sender)) u70))
(try! (mint (as-contract (tx-sender)) u71))
(try! (mint (as-contract (tx-sender)) u72))
(try! (mint (as-contract (tx-sender)) u73))
(try! (mint (as-contract (tx-sender)) u74))
(try! (mint (as-contract (tx-sender)) u75))
(try! (mint (as-contract (tx-sender)) u76))
(try! (mint (as-contract (tx-sender)) u77))
(try! (mint (as-contract (tx-sender)) u78))
(try! (mint (as-contract (tx-sender)) u79))
(try! (mint (as-contract (tx-sender)) u80))
(try! (mint (as-contract (tx-sender)) u81))
(try! (mint (as-contract (tx-sender)) u82))
(try! (mint (as-contract (tx-sender)) u83))
(try! (mint (as-contract (tx-sender)) u84))
(try! (mint (as-contract (tx-sender)) u85))
(try! (mint (as-contract (tx-sender)) u86))
(try! (mint (as-contract (tx-sender)) u87))
(try! (mint (as-contract (tx-sender)) u88))
(try! (mint (as-contract (tx-sender)) u89))
(try! (mint (as-contract (tx-sender)) u90))
(try! (mint (as-contract (tx-sender)) u91))
(try! (mint (as-contract (tx-sender)) u92))
(try! (mint (as-contract (tx-sender)) u93))
(try! (mint (as-contract (tx-sender)) u94))
(try! (mint (as-contract (tx-sender)) u95))
(try! (mint (as-contract (tx-sender)) u96))
(try! (mint (as-contract (tx-sender)) u97))
(try! (mint (as-contract (tx-sender)) u98))
(try! (mint (as-contract (tx-sender)) u99)))
	