Comment générer keccak256 (STRING, INTEGER) à partir de Javascript?

Karthik

Comment générer keccak256 (STRING, INTEGER) à partir de Javascript?


Dans mon code de solidité, j’utilise bytes32 généré par keccak256("STRING_VALUE',INTEGER) pour stocker les valeurs dans la carte.

L’une des valeurs d’échantillon qui sont générées est

0x728021dd1e605706a029ef0f0a96028fab0d170608cbfcc8b28ff7786d985dcf

Maintenant, je veux générer ce hachage dans mon code JS, j’ai essayé d’utiliser des bibliothèques comme js-sha3 , keccak , solidity-sha3 . Aucun d’entre eux ne prend Integer comme paramètre et renvoie également un hachage qui n’est pas pertinent pour ce qui est généré ci-dessus.

Comment générer un hachage similaire dans le JS?

Réponses


 Jitendra Kumar. Balla

Convertissez simplement votre entier en base 16 et ajoutez-le à la chaîne d’origine pour enfin calculer le hachage. Ce sera pareil.

 function  solSha3 (... args )   { args =  args . map ( arg =>   { 
         if   ( typeof  arg ===   'string' )   { 
             if   ( arg . substring ( 0 ,   2 )   ===   '0x' )   { 
                 return  arg . slice ( 2 ) 
             }   else   { 
                 return  web3 . toHex ( arg ). slice ( 2 ) 
             } 
         } 

         if   ( typeof  arg ===   'number' )   { 
             return  leftPad (( arg ). toString ( 16 ),   64 ,   0 ) 
         }   else   { 
           return   '' 
         } 
     }) args =  args . join ( '' ) 

     return   '0x'   +  web3 . sha3 ( args ,   {  encoding :   'hex'   }) 
 } 

Pour plus de détails, reportez-vous au lien Github

 

#à, #de, comment, générer, INTEGER), JavaScript, keccak256, partir, string

 

yahoo

Laisser un commentaire

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