Fix attribute resolution errors in Counter contract for Algorand Python Challenge 2 #80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Algorand Coding Challenge Submission
What was the bug?
The bug in the Counter smart contract was related to incorrect handling of state variables. The
count
andcounters
attributes were declared as class variables, which resulted in errors during attribute resolution when attempting to access local and global state values.How did you fix the bug?
count
andcounters
attributes to instance variables by initializing them inside the__init__
constructor. This allows for consistent state management across all methods.count
andcounters
to correctly use instance variables (self.count
andself.counters
).count
accurately tracks the transaction count per sender andcounters
maintains the global count of all users opted into the smart contract.These changes resolved the attribute resolution errors and ensured proper local and global state handling.
Console Screenshot: