I hereby claim:
- I am hugo6991 on github.
- I am jamestsai (https://keybase.io/jamestsai) on keybase.
- I have a public key ASC0IomXR4GrWlKk1_qg7gWhSCTK79uemGiehRq1BOxu_Ao
To claim this, I am signing this object:
// NFT 代表的就是一個 moment,也就是一張卡片 | |
// 它實作官方 NFT contract 裡的 INFT interface | |
// 以及 MetadataViews.Resolver interface | |
pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver { | |
// 每一張卡片都有獨特的 ID 代表, | |
// 並且這也是實作 NonFungibleToken.INFT 必須要有的 | |
pub let id: UInt64 | |
pub let data: MomentData |
// TopShotMomentMetadataView 就如變數名字所意, | |
// 儲存所有 moment 相關的 metadata, | |
// 像是球員名字、球員生日、所屬球隊等等 | |
pub struct TopShotMomentMetadataView { | |
pub let fullName: String? | |
pub let firstName: String? | |
pub let lastName: String? | |
pub let birthdate: String? | |
pub let birthplace: String? |
// Moment 也就是一張卡片, | |
pub struct MomentData { | |
// 是在哪個 set 裡 | |
pub let setID: UInt32 | |
// 是哪個 play | |
pub let playID: UInt32 | |
// 序號是多少 |
// Set 就是一個系列,裡面可以包含很多個精彩好球 play | |
pub struct SetData { | |
// 每個 Set 有一個獨特的 ID 表示 | |
pub let setID: UInt32 | |
// Set 名字,例如 "Cool Cats" 系列 | |
pub let name: String | |
// Play 就是一個精彩好球,比如說 LBJ 的 The block, | |
// 所有的卡片只會包含一個 play, | |
// 但同一個 play 可以被很多卡片或是系列包含 | |
pub struct Play { | |
// 每個 play 會有一個獨特的 ID 表示 | |
pub let playID: UInt32 | |
// 每個 play 也會有相應的 metadata, |
// 目前正在進行的 series | |
pub var currentSeries: UInt32 | |
// 紀錄 play 的資訊 | |
// 是一個 play ID -> play 資訊的 mapping | |
access(self) var playDatas: {UInt32: Play} | |
// 紀錄 set 的資訊 | |
// 是一個 set ID -> set 資訊的 mapping | |
access(self) var setDatas: {UInt32: SetData} |
pub event ContractInitialized() | |
pub event PlayCreated(id: UInt32, metadata: {String:String}) | |
pub event NewSeriesStarted(newCurrentSeries: UInt32) | |
pub event SetCreated(setID: UInt32, series: UInt32) | |
pub event PlayAddedToSet(setID: UInt32, playID: UInt32) | |
pub event PlayRetiredFromSet(setID: UInt32, playID: UInt32, numMoments: UInt32) | |
pub event SetLocked(setID: UInt32) | |
pub event MomentMinted(momentID: UInt64, playID: UInt32, setID: UInt32, serialNumber: UInt32) |
pub contract TopShot: NonFungibleToken | |
I hereby claim:
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object: