Fee refund after change_owner_key is credited to old owner key instead of new owner key
Summary
When an identity owner rotates key inside a single utility::batch_all that includes:
balances::transfer_all identity::change_owner_key
the transaction fee refund is queued for the old signer key instead of the new owner key.
Why this matters
This workflow is expected to be used for one-shot migration from an old funded key to a new empty key. Refunding the old key is inconsistent with final ownership and can lead to incorrect credit target (especially when old key was drained/reaped by transfer_all).
Expected behavior
For a batch where change_owner_key happens in the same extrinsic, the refund should be attributed to the identity’s new owner key.
Actual behavior
Refund target was always the extrinsic signer (who), i.e. the old key, even when key ownership changed during that same extrinsic.
Root cause
pallet-duniter-account correct_and_deposit_fee use:
linked identity from signer account (who) then called request_refund(who, idty, amount) It did not account for in-extrinsic owner-key migration state.
Scope
pallet-quota is not the source of this bug; it refunds whatever account is passed to request_refund.
Bug is in refund account selection in pallet-duniter-account.