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.