[balances] Safeguard against consumer ref underflow (#3865)

There are some accounts that do not have a consumer ref while having a
reserve.
This adds a fail-safe mechanism to trigger in the case that
`does_consume` is true, but the assumption of `consumer>0` is not.

This should prevent those accounts from loosing balance and the TI from
getting messed up even more, but is not an "ideal" fix. TBH an ideal fix
is not possible, since on-chain data is in an invalid state.

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
Oliver Tale-Yazdi
2024-04-26 11:16:03 +03:00
committed by GitHub
parent 8f8c49deff
commit e8f7c81db6
6 changed files with 150 additions and 2 deletions
+1
View File
@@ -28,6 +28,7 @@ docify = "0.2.8"
[dev-dependencies]
pallet-transaction-payment = { path = "../transaction-payment" }
frame-support = { path = "../support", features = ["experimental"] }
sp-core = { path = "../../primitives/core" }
sp-io = { path = "../../primitives/io" }
paste = "1.0.12"