Smart Contract
GUMStakingTracker
A.807c3d470888cc48.GUMStakingTracker
1access(all)
2contract GUMStakingTracker{
3 access(self)
4 var flunksClaimedGum:{ UInt64: UFix64}
5
6 access(self)
7 var backpackClaimedGum:{ UInt64: UFix64}
8
9 access(all)
10 let AdminStoragePath: StoragePath
11
12 access(all)
13 resource Admin{
14 access(all)
15 fun updateClaimedGUM(pool: String, tokenID: UInt64, amount: UFix64){
16 if pool == "Flunks"{
17 let existingAmount = GUMStakingTracker.flunksClaimedGum[tokenID] ?? 0.0
18 let newAmount = existingAmount + amount
19 GUMStakingTracker.flunksClaimedGum[tokenID] = newAmount
20 } else if pool == "Backpack"{
21 let existingAmount = GUMStakingTracker.backpackClaimedGum[tokenID] ?? 0.0
22 let newAmount = existingAmount + amount
23 GUMStakingTracker.backpackClaimedGum[tokenID] = newAmount
24 }
25 }
26 }
27
28 access(all)
29 fun getClaimedFlunksTracker():{ UInt64: UFix64}{
30 return self.flunksClaimedGum
31 }
32
33 access(all)
34 fun getClaimedBackpackTracker():{ UInt64: UFix64}{
35 return self.backpackClaimedGum
36 }
37
38 init(){
39 self.AdminStoragePath = /storage/GUMStakingTrackerAdmin
40 self.flunksClaimedGum ={}
41 self.backpackClaimedGum ={}
42 let admin <- create Admin()
43 self.account.storage.save(<-admin, to: self.AdminStoragePath)
44 }
45}
46