[pallet-assets] fix: decrement supply when refund burns balance#11441
Merged
bkchr merged 10 commits intoparitytech:masterfrom Mar 24, 2026
Merged
[pallet-assets] fix: decrement supply when refund burns balance#11441bkchr merged 10 commits intoparitytech:masterfrom
bkchr merged 10 commits intoparitytech:masterfrom
Conversation
Contributor
Author
|
/cmd label T1-frame T2-pallets |
Contributor
Author
|
/cmd prdoc --audience runtime_dev --bump patch |
…time_dev --bump patch'
Contributor
Author
|
/cmd fmt |
Contributor
Author
|
/cmd prdoc --audience runtime_dev --bump patch --force |
…time_dev --bump patch --force'
bkchr
approved these changes
Mar 20, 2026
Contributor
Author
|
@ggwpez may I ask you to take a look at this. I think it is an important PR that should make it into the new release, and maybe even backported. |
Contributor
I've added the |
Merged
via the queue into
paritytech:master
with commit Mar 24, 2026
44f9788
249 of 250 checks passed
|
Successfully created backport PR for |
paritytech-release-backport-bot Bot
pushed a commit
that referenced
this pull request
Mar 24, 2026
When a user calls `refund` with `allow_burn = true`, their token balance is destroyed, but the asset's total supply was never updated. This caused `total_issuance()` to overcount. The fix decrements supply and emits a `Burned` event, consistent with how every other burn path works. In production, burning path is rarely triggered. The fungibles trait interface always passes `allow_burn = false`, so only users manually submitting the refund extrinsic with the burn flag would hit it. Follow-up issue for migrating the discrepancy (observed on Westend): #11443. Fixes #10412 --------- Co-authored-by: clangenb <clangenb@users.noreply.github.com> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> (cherry picked from commit 44f9788)
EgorPopelyaev
pushed a commit
that referenced
this pull request
Mar 25, 2026
Backport #11441 into `stable2603` from clangenb. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: clangenb <37865735+clangenb@users.noreply.github.com> Co-authored-by: clangenb <clangenb@users.noreply.github.com> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When a user calls
refundwithallow_burn = true, their token balance is destroyed, but the asset's total supply was never updated. This causedtotal_issuance()to overcount. The fix decrements supply and emits aBurnedevent, consistent with how every other burn path works.In production, burning path is rarely triggered. The fungibles trait interface always passes
allow_burn = false, so only users manually submitting the refund extrinsic with the burn flag would hit it.Follow-up issue for migrating the discrepancy (observed on Westend): #11443.
Fixes #10412