Ma solution consiste à créer une transaction avec :
En Inputs de toutes les sources de base inférieure
En Outputs :
- une ligne par source avec un “zéro” en dernier digit (ex: 25656 => 25650)
- sur la dernière source, on ajoute en plus le reste qui tombe juste (un multiple de 10)
- une nouvelle output, rassemblant le reste, forcément inférieur à 10.
Est-ce que cela vous convient ?
EX:
{
version: 2,
issuers: [
“4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv”
],
inputs: [
“D:4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv:1310” // montant=9387
“D:4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv:1405” // montant = 9568
“D:4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv:1650” // montant = 9729
“D:4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv:1870” // montant = 9580
],
outputs: [
“9380:0:SIG(4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv)”, // on recupere 7 unités
“9560:0:SIG(4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv)”, // on recupere 8
“9720:0:SIG(4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv)”, // on recupere 9
“9600:0:SIG(4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv)”, // dernière sources, à laquelle on ajoute la partie du reste qui tombe juste (=20)
“4:0:SIG(4ZvN25BZtirpYg59FyD2tko7oKWC4UBDwdECrrKZDWyv)” // le reste (24 - 20 = 4), toujours inférieur à 10
],
…
}
Par contre, ca pose le problème des nouveaux paiements recus en base 0 (et qui n’ont pas de zéro en dernier digit) :
- On aura a nouveau des sources en base 0;
- Nous proposons de relancer l’opération précédente, dès lors que, par exemple, suffisamment de sources sont en base 0 (cela pourrait etre un pourcentage du solde du portefeuille, ou bine un montant max exprimé en DU);
Qu’en dites vous ?
Refait on l’opération ? quand la déclenche t-on ?