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.
Description
There are 2 problems with the current
Budget
trait:NFTs are currently allowed to mint and send NFTs to a parent NFT that can meet up to the threshold of
NestingBudget::get() + 1
. This allows for NFTs queries likelookup_root_owner
to return errors likeTooManyRecursions
. Having this error is okay, but the NFTs should be prevented from being minted to or sent to a parent NFT if the Budget threshold is met.Currently the code will do a calculation on functions like
burn_nft
and this will perform an arithmetic subtraction at the end of the function, but this should be added as a field in theValue
type & implement a function fromBudget
to get the budget that has been consumed and budget that is left.Target
NestingBudget::get()
value.budget_consumed
and budget_left` to track & through errors is an overflow is detected.Budget
trait to get the 2 new fields.