• Ankan's avatar
    [NPoS] Fix for Reward Deficit in the pool (#1255) · f820dc0a
    Ankan authored
    closes https://github.com/paritytech/polkadot-sdk/issues/158.
    partially addresses
    https://github.com/paritytech/polkadot-sdk/issues/226.
    
    Instead of fragile calculation of current balance by looking at `free
    balance - ED`, Nomination Pool now freezes ED in the pool reward account
    to restrict an account from going below minimum balance. This also has a
    nice side effect that if ED changes, we know how much is the imbalance
    in ED frozen in the pool and the current required ED. A pool operator
    can diligently top up the pool with the deficit in ED or vice versa,
    withdraw the excess they transferred to the pool.
    
    ## Notable changes
    - New call `adjust_pool_deposit`: Allows to top up the deficit or
    withdraw the excess deposited funds to the pool.
    - Uses Fungible trait (instead of Currency trait). Since NP was not
    doing any locking/reserving previously, no migration is needed for this.
    - One time migration of freezing ED from each of the existing pools (not
    very PoV friendly but fine for relay chain).
    f820dc0a