Smart Contract
IFantastecPackNFT
A.4bbff461fa8f6192.IFantastecPackNFT
1import Crypto
2import NonFungibleToken from 0x1d7e57aa55817448
3import FantastecNFT from 0x4bbff461fa8f6192
4
5access(all) contract interface IFantastecPackNFT {
6
7 access(all) entitlement Owner
8
9 /// StoragePath for Collection Resource
10 access(all) let CollectionStoragePath: StoragePath
11
12 /// PublicPath expected for deposit
13 access(all) let CollectionPublicPath: PublicPath
14
15 /// PublicPath for receiving NFT
16 access(all) let CollectionIFantastecPackNFTPublicPath: PublicPath
17
18 /// StoragePath for the NFT Operator Resource (issuer owns this)
19 access(all) let OperatorStoragePath: StoragePath
20
21 /// Burned
22 /// Emitted when a NFT has been burned
23 access(all) event Burned(id: UInt64 )
24
25 access(all) resource interface IOperator {
26 access(Owner) fun mint(packId: UInt64, productId: UInt64): @{NFT}
27 access(Owner) fun addFantastecNFT(id: UInt64, nft: @FantastecNFT.NFT)
28 access(Owner) fun open(id: UInt64, recipient: Address)
29 }
30
31 access(all) resource interface FantastecPackNFTOperator: IOperator {
32 access(Owner) fun mint(packId: UInt64, productId: UInt64): @{NFT}
33 access(Owner) fun addFantastecNFT(id: UInt64, nft: @FantastecNFT.NFT)
34 access(Owner) fun open(id: UInt64, recipient: Address)
35 }
36
37 access(all) resource interface IFantastecPack {
38 access(all) var ownedNFTs: @{UInt64: FantastecNFT.NFT}
39
40 access(all) fun addFantastecNFT(nft: @FantastecNFT.NFT)
41 access(Owner) fun open(recipient: Address)
42 }
43
44 access(all) resource interface NFT: NonFungibleToken.NFT {
45 access(all) let id: UInt64
46 }
47
48 access(all) resource interface IFantastecPackNFTCollectionPublic: NonFungibleToken.Collection {
49 access(all) fun deposit(token: @{NonFungibleToken.NFT})
50 }
51}