Smart Contract
HoodlumsMetadata
A.427ceada271aa0b1.HoodlumsMetadata
1access(all) contract HoodlumsMetadata {
2
3 access(all) event ContractInitialized()
4 access(all) event MetadataSetted(tokenID: UInt64, metadata: {String: String})
5
6 access(all) let AdminStoragePath: StoragePath
7
8 access(self) let metadata: {UInt64: {String: String}}
9 access(all) var sturdyRoyaltyAddress: Address
10 access(all) var artistRoyaltyAddress: Address
11 access(all) var sturdyRoyaltyCut: UFix64
12 access(all) var artistRoyaltyCut: UFix64
13
14 access(all) entitlement Owner
15
16 access(all) resource Admin {
17 access(Owner) fun setMetadata(tokenID: UInt64, metadata: {String: String}) {
18 HoodlumsMetadata.metadata[tokenID] = metadata;
19 emit MetadataSetted(tokenID: tokenID, metadata: metadata)
20 }
21
22 access(Owner) fun setSturdyRoyaltyAddress(sturdyRoyaltyAddress: Address) {
23 HoodlumsMetadata.sturdyRoyaltyAddress = sturdyRoyaltyAddress;
24 }
25
26 access(Owner) fun setArtistRoyaltyAddress(artistRoyaltyAddress: Address) {
27 HoodlumsMetadata.artistRoyaltyAddress = artistRoyaltyAddress;
28 }
29
30 access(Owner) fun setSturdyRoyaltyCut(sturdyRoyaltyCut: UFix64) {
31 HoodlumsMetadata.sturdyRoyaltyCut = sturdyRoyaltyCut;
32 }
33
34 access(Owner) fun setArtistRoyaltyCut(artistRoyaltyCut: UFix64) {
35 HoodlumsMetadata.artistRoyaltyCut = artistRoyaltyCut;
36 }
37 }
38
39 access(all) view fun getMetadata(tokenID: UInt64): {String: String}? {
40 return HoodlumsMetadata.metadata[tokenID]
41 }
42
43 init() {
44 self.AdminStoragePath = /storage/HoodlumsOwner
45
46 self.metadata = {}
47
48 self.sturdyRoyaltyAddress = 0xbb4ed9133bdab28a
49 self.artistRoyaltyAddress = 0x985bafb3357d729b
50 self.sturdyRoyaltyCut = 0.05
51 self.artistRoyaltyCut = 0.05
52
53 let admin <- create Admin()
54 self.account.storage.save(<-admin, to: self.AdminStoragePath)
55
56 emit ContractInitialized()
57 }
58}