Smart Contract
AFLBurnRegistry
A.8f9231920da9af6d.AFLBurnRegistry
1access(all) contract AFLBurnRegistry {
2 access(all) let totalBurnsByTemplateId: {UInt64: UInt64}
3
4 access(account) fun burn(templateId: UInt64) {
5 if self.totalBurnsByTemplateId[templateId] == nil {
6 self.totalBurnsByTemplateId[templateId] = 1
7 } else {
8 self.totalBurnsByTemplateId[templateId] = self.totalBurnsByTemplateId[templateId]! + 1
9 }
10 }
11
12 access(account) fun burnMultiple(templateId: UInt64, count: UInt64) {
13 if self.totalBurnsByTemplateId[templateId] == nil {
14 self.totalBurnsByTemplateId[templateId] = count
15 } else {
16 self.totalBurnsByTemplateId[templateId] = self.totalBurnsByTemplateId[templateId]! + count
17 }
18 }
19
20 access(account) fun setTotalBurns(templateId: UInt64, total: UInt64) {
21 self.totalBurnsByTemplateId[templateId] = total
22 }
23
24 access(all) view fun getBurnDetails(templateId: UInt64): UInt64 {
25 return self.totalBurnsByTemplateId[templateId] ?? 0
26 }
27
28 init() {
29 self.totalBurnsByTemplateId = {}
30 }
31}
32