Files
pezkuwi-subxt/substrate/frame
Gonçalo Pestana aac07af03c Fixes TotalValueLocked out of sync in nomination pools (#3052)
The `TotalLockedValue` storage value in nomination pools pallet may get
out of sync if the staking pallet does implicit withdrawal of unlocking
chunks belonging to a bonded pool stash. This fix is based on a new
method in the `OnStakingUpdate` traits, `on_withdraw`, which allows the
nomination pools pallet to adjust the `TotalLockedValue` every time
there is an implicit or explicit withdrawal from a bonded pool's stash.

This PR also adds a migration that checks and updates the on-chain TVL
if it got out of sync due to the bug this PR fixes.

**Changes to `trait OnStakingUpdate`**

In order for staking to notify the nomination pools pallet that chunks
where withdrew, we add a new method, `on_withdraw` to the
`OnStakingUpdate` trait. The nomination pools pallet filters the
withdraws that are related to bonded pool accounts and updates the
`TotalValueLocked` accordingly.

**Others**
- Adds try-state checks to the EPM/staking e2e tests
- Adds tests for auto withdrawing in the context of nomination pools

**To-do**
- [x] check if we need a migration to fix the current `TotalValueLocked`
(run try-runtime)
- [x] migrations to fix the current on-chain TVL value 

  **Kusama**:
```
TotalValueLocked: 99.4559 kKSM
TotalValueLocked (calculated) 99.4559 kKSM
```
⚠️ **Westend**:
```
TotalValueLocked: 18.4060 kWND
TotalValueLocked (calculated) 18.4050 kWND
```
**Polkadot**: TVL not released yet.

Closes https://github.com/paritytech/polkadot-sdk/issues/3055

---------

Co-authored-by: command-bot <>
Co-authored-by: Ross Bulat <ross@parity.io>
Co-authored-by: Dónal Murray <donal.murray@parity.io>
2024-02-08 18:03:22 +00:00
..
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2024-02-06 13:01:29 +00:00
2023-09-04 12:02:32 +03:00

FRAME

The FRAME development environment provides modules (called "pallets") and support libraries that you can use, modify, and extend to build the runtime logic to suit the needs of your blockchain.

Documentation

https://docs.substrate.io/reference/frame-pallets/

Issues

https://github.com/orgs/paritytech/projects/40