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 :
batchAll[claimUds?, changeOwnerKey]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(aveckeepAlive=false) vide le compte source vers le nouveau -
changeOwnerKeymigre 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