[program] Remove an overly strict validation check on withheld fee destination account #914
+183
−2
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.
Problem
The
WithdrawWithheldTokensFromMintinstruction credits tokens directly to the available balance of the destination account and does not update the pending balance or its associated credit counter. Therefore, the instruction should not fail when the destination account’spending_balance_credit_counterequals itsmaximum_pending_balance_credit_counter, since no pending credit is created.Applying this check incorrectly leads to unnecessary transaction failures and can prevent the
TransferFeeConfigwithdraw-withheld authority from distributing withheld fees to certain accounts. Moreover, because this authority cannot invokeApplyPendingBalanceon accounts it does not own, it has no way to reduce theirpending_balance_credit_counter, meaning such accounts may be permanently unable to receive withheld-fee withdrawals even though the operation is semantically valid.Summary of Changes
Remove the overly strict validation check on withheld fee destination account.