@@ -23,7 +23,9 @@ contract KiddoPerks is Ownable {
23
23
error KiddoPerks__CannotCompleteRemovedTask (uint256 id );
24
24
error KiddoPerks__ChildAlreadyRemoved (uint256 id );
25
25
error KiddoPerks__PerkAlreadyRemoved (uint256 id );
26
- error KiddoPerks__NotEnoughTokenBalance (uint256 id , address by , uint256 tokensRequired );
26
+ error KiddoPerks__NotEnoughTokenBalance (
27
+ uint256 id , address by , uint256 tokensRequired
28
+ );
27
29
error KiddoPerks__PerkAlreadyRedeemmed (uint256 id , address by );
28
30
error KiddoPerks__NoValidChild (address childAddr );
29
31
error KiddoPerks__CannotMintAnyNFTYet (address who );
@@ -39,13 +41,15 @@ contract KiddoPerks is Ownable {
39
41
uint256 public s_childrenNextId = 0 ;
40
42
41
43
mapping (uint256 => Perk) public s_perks;
42
- mapping (uint256 perkId = > mapping (address by = > bool isRedeemed )) public s_perksRedeemedBy;
44
+ mapping (uint256 perkId = > mapping (address by = > bool isRedeemed )) public
45
+ s_perksRedeemedBy;
43
46
uint256 public s_perksNextId = 0 ;
44
47
45
48
mapping (uint256 => Task) public s_tasks;
46
49
uint256 public s_taskNextId = 0 ;
47
50
mapping (address => mapping (uint256 => bool )) public s_completedTasksByUser;
48
- mapping (address child = > uint256 numTasksCompleted ) public s_childNumTasksCompleted;
51
+ mapping (address child = > uint256 numTasksCompleted ) public
52
+ s_childNumTasksCompleted;
49
53
50
54
struct Task {
51
55
uint256 id;
@@ -91,7 +95,10 @@ contract KiddoPerks is Ownable {
91
95
/**
92
96
* Tasks
93
97
*/
94
- function createTask (string memory title , uint256 tokensReward ) public onlyOwner {
98
+ function createTask (
99
+ string memory title ,
100
+ uint256 tokensReward
101
+ ) public onlyOwner {
95
102
s_tasks[s_taskNextId] = Task (s_taskNextId, title, tokensReward, false );
96
103
s_taskNextId++ ;
97
104
emit TaskCreated (title);
@@ -103,7 +110,10 @@ contract KiddoPerks is Ownable {
103
110
return s_tasks[id];
104
111
}
105
112
106
- function completeTask (uint256 taskId , address by ) public onlyOwner onlyValidChild (by) {
113
+ function completeTask (
114
+ uint256 taskId ,
115
+ address by
116
+ ) public onlyOwner onlyValidChild (by) {
107
117
if (taskId >= s_taskNextId) {
108
118
revert KiddoPerks__TaskNotFound (taskId);
109
119
}
@@ -134,7 +144,10 @@ contract KiddoPerks is Ownable {
134
144
emit TaskRemoved (id);
135
145
}
136
146
137
- function isTaskCompletedBy (uint256 taskId , address by ) public view returns (bool ) {
147
+ function isTaskCompletedBy (
148
+ uint256 taskId ,
149
+ address by
150
+ ) public view returns (bool ) {
138
151
return s_completedTasksByUser[by][taskId];
139
152
}
140
153
@@ -151,7 +164,10 @@ contract KiddoPerks is Ownable {
151
164
/**
152
165
* Perks
153
166
*/
154
- function createPerk (string memory title , uint256 tokensRequired ) public onlyOwner {
167
+ function createPerk (
168
+ string memory title ,
169
+ uint256 tokensRequired
170
+ ) public onlyOwner {
155
171
Perk memory newPerk = Perk (s_perksNextId, title, tokensRequired, false );
156
172
s_perks[s_perksNextId] = newPerk;
157
173
s_perksNextId++ ;
@@ -195,13 +211,16 @@ contract KiddoPerks is Ownable {
195
211
Perk memory perk = s_perks[perkId];
196
212
uint256 userTokenBalance = token.balanceOf (msg .sender );
197
213
if (userTokenBalance < perk.tokensRequired) {
198
- revert KiddoPerks__NotEnoughTokenBalance (perkId, msg .sender , perk.tokensRequired);
214
+ revert KiddoPerks__NotEnoughTokenBalance (
215
+ perkId, msg .sender , perk.tokensRequired
216
+ );
199
217
}
200
218
if (s_perksRedeemedBy[perkId][msg .sender ]) {
201
219
revert KiddoPerks__PerkAlreadyRedeemmed (perkId, msg .sender );
202
220
}
203
221
204
- bool sent = token.transferFrom (msg .sender , address (this ), perk.tokensRequired);
222
+ bool sent =
223
+ token.transferFrom (msg .sender , address (this ), perk.tokensRequired);
205
224
if (! sent) {
206
225
revert ("Error on token transfer " );
207
226
}
@@ -258,7 +277,7 @@ contract KiddoPerks is Ownable {
258
277
*/
259
278
function mintNFTByTaskCompletion () public {
260
279
uint256 numTaskCompletedByChild = s_childNumTasksCompleted[msg .sender ];
261
- if (numTaskCompletedByChild >= MIN_TASK_COMPLETED_NFT) {
280
+ if (numTaskCompletedByChild < MIN_TASK_COMPLETED_NFT) {
262
281
revert KiddoPerks__CannotMintAnyNFTYet (msg .sender );
263
282
}
264
283
nft.mintNft (msg .sender , s_childNumTasksCompleted[msg .sender ]);
0 commit comments