withdraw_unbonded: TxDescriptor<{
    member_account: MultiAddress;
    num_slashing_spans: number;
}>

Withdraw unbonded funds from member_account. If no bonded funds can be unbonded, an error is returned.

Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).

Conditions for a permissionless dispatch

  • The pool is in destroy mode and the target is not the depositor.
  • The target is the depositor and they are the only member in the sub pools.
  • The pool is blocked and the caller is either the root or bouncer.

Conditions for permissioned dispatch

  • The caller is the target and they are not the depositor.

Note

  • If the target is the depositor, the pool will be destroyed.
  • If the pool has any pending slash, we also try to slash the member before letting them withdraw. This calculation adds some weight overhead and is only defensive. In reality, pool slashes must have been already applied via permissionless [Call::apply_slash].