fix: rendre la migration de compte atomique (un seul batchAll)

Problème

Actuellement, la migration de compte dans Cesium2 se fait en deux transactions séparées :

  1. batchAll[claimUds?, changeOwnerKey]
  2. batchAll[claimUds?, transferAllowDeath]

Cela pose deux problèmes :

  • Avec le runtime 1100, si le nouveau compte est vide, changeOwnerKey échouera (fix issue duniter-v2s#321 : "Identity on empty account")
  • Risque de crash entre les deux transactions → le compte se retrouve dans un état intermédiaire non géré

Solution

Fusionner en une seule transaction atomique :

batchAll[claimUds?, transferAll, changeOwnerKey]
  • transferAll (avec keepAlive=false) vide le compte source vers le nouveau
  • changeOwnerKey migre ensuite l identité
  • Les frais étant prélevés en pré-exécution, le compte source peut être vide lors du changeOwnerKey
  • Plus besoin de vérifier que le nouveau compte a des fonds au préalable

Référence