L’adresse Ether retournée est différente (seconde moitié) de celle stockée dans le tableau du contrat

blockwala

L’adresse Ether retournée est différente (seconde moitié) de celle stockée dans le tableau du contrat


J’ai un simple setter et getter pour le tableau de type address [] dans un contrat.

J’ai déployé les contrats sur testrpc en utilisant de la truffe.

Puis dans la console de truffe:

truffe (développement)>

lot.addNewUserToLottery (24,0xf392261711006934215e47025275f98b3c156568, {valeur: 50000})

Retour:

 {  tx :   '0x5ed462b5f80578609223827cc9dea8a51ef2e6920f197734ce6c64b0cbebf372' , receipt : 
    {  transactionHash :   '0x5ed462b5f80578609223827cc9dea8a51ef2e6920f197734ce6c64b0cbebf372' , transactionIndex :   0 , blockHash :   '0x4015c50e9a5721466c007cade050671cb8fa3b768295a1793e0683e8613e4aa9' , blockNumber :   459 , gasUsed :   74162 , cumulativeGasUsed :   74162 , contractAddress :   null , logs :   [   [ Object ]   ], status :   '0x01' , logsBloom :   '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000008001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'   }, logs :   []   } 

Mais quand j’appelle le getter:

truffe (développement)> lot.getUserAddress (24,0);

J’obtiens l’adresse:

 '0xf3922617110067aaf6e0168134a72bed00000000' 

De même pour les autres adresses enregistrées:

0x83bf9513ceaa869a6b1e847f4f0caa47dc1441b4

Retour

0x83bf9513ceaa85b568c5a6858ba4640700000000

Pourquoi le second semestre de l’adresse est-il modifié par la solidité?

Réponses


 blockwala

Je l’ai compris, c’était une erreur très boiteuse.

J’appelais une fonction de la console de truffe comme:

lot.addNewUserToLottery (24,0xf392261711006934215e47025275f98b3c156568, {valeur: 50000})

Quand il faut utiliser des guillemets simples autour de l’adresse:

lot.addNewUserToLottery (24, ‘0xf392261711006934215e47025275f98b3c156568’, {valeur: 50000})

EVM acceptait le paramètre mais modifiait l’adresse.

J’espère que quelqu’un n’y arrivera pas et si c’est le cas, cela vous sera utile.

 

#de, celle, contrat, dans, différente?, du, est, Ether, l’adresse, Le, moitié, retournée?, Seconde, stockée, Tableau

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *