Bug d'affichage des montants -

Bonjour,

Je viens de voir un bug non critique sur GTest. Il est en relation avec la revalorisation du DU, et il bloque mes tests (peut-être en bloquera-t-il d’autres).

Césium sur GTest accepte de faire des virements au centime près, mais les arrondit au décime près. Par exemple, un virement de 2.26 GT sera arrondi à 2.30 GT.

Cela a certainement à voir avec le nombre de chiffres requis pour le DU, qui est fixé à 4. (je m’attendais à voir le DU GT repasser à 10, mais il a augmenté au-dessus de 100 :thinking: )

Or, je fais actuellement des tests avec Silkaj, en envoyant des transactions au centime près (100.26 GT p.ex), et je reçois en erreur :

HTTP Error 400: Bad Request

SAUF quand mes transactions sont justes au décime près (100.30 GT).

J’en conclus que Silkaj ne prend pas (encore) en compte la rotation des chiffres du DU, et que les requêtes au centimes sont rejetées par les noeuds.

D’autre part, pour Cesium, quel est l’intérêt d’afficher le montant des DU au centime près si les transactions sont arrondies au décime ?

Nous avons looongtemps avant que ceci devienne un bug critique, cependant il bloque des tests. Je fais un ticket demain, il est trop tard là.

1 J'aime

Le dernier DU est de 52 ĞTests.

Silkaj 0.7.0 donne de meilleurs retours sur les messages d’erreurs grâce à DuniterPy qui les affiche.

L’erreur que j’ai envoyant des centièmes :

Error while publishing transaction: {
  "ucode": 2024,
  "message": "Transaction inputs sum must equal outputs sum"
}

Ça passe avec des décimes.

L’implémentation de Silkaj 0.6.1 et dev ne gèrent pas bien changement de base pour l’envoie de transaction.

Car il ne retrait pas dans le retour de change :
avec amount = 0.03

Inputs:
4371:1:D:5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:342845
Unlocks:
0:SIG(0)
Outputs:
3:0:SIG(WULdRTxspGdJzrs4vpZsWLGWsu37DjqoHyhGDFr5amh)
4371:1:SIG(5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH)

avec amount = 0.3

Inputs:
4371:1:D:5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH:342845
Unlocks:
0:SIG(0)
Outputs:
3:1:SIG(WULdRTxspGdJzrs4vpZsWLGWsu37DjqoHyhGDFr5amh)
4368:1:SIG(5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH)

La base est de 1, du coup, tout est décallé, le montant minimum et 0.1 ĞTest.

1 J'aime

En fait, c’est lié à la sélection des sources de monnaie, consommées par une TX. Il y a une règle imposant que la UnitBase de sortie ne puisse pas être inférieur à celle des sources consommées, afin que les veilles source, avec des UnitBase précédents, disparaissent progressivement.

En d’autres mot, je ne peux pas “rentre la monnaie” de tes plus petits sources, donc j’arrondis :slight_smile:

Je penses que @inso et @vtexier avait repris le même principe de leur côté, non ?
Si tu veux voir le code en question il est là (et assez clair je crois).
Du coup tu dois avoir tes traces dans la console JS, non ?
Tu peux facilement débugger (sous Chromium ou Chrome) en lancant <CESIUM_WEB>/debug.html

a+