sha3 с опцией шестнадцатеричное кодирование против не шестнадцатеричное кодирование с экранированной строкой - PullRequest
0 голосов
/ 01 апреля 2019

Я пытался выяснить, почему sha3 ("\ x80") отличается от sha3 ("0x80", {encoding: 'hex'})

web3.sha3( "\x80" )
"0x0f50dcb7f76b82d3cf8c843adacd5cb4d1ce1b6de2ef1f2557f196d07c26f08e"

web3.sha3( "0x80" , { encoding : 'hex' } )
"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"

но это работает, если все мои байты <0x80. Например, если я попробую с \ x70: </p>

web3.sha3( "\x70" )
"0x2304e88f144ae9318c71b0fb9e0f44bd9e0c6c58fb1b5315a35fd8b4b2a444ab"

web3.sha3( "0x70" , { encoding : 'hex' } )
"0x2304e88f144ae9318c71b0fb9e0f44bd9e0c6c58fb1b5315a35fd8b4b2a444ab"

Причина, по которой я спрашиваю, заключается в том, что хотя я могу использовать {encoding: 'hex'} с web3.js, но эта опция недоступна в tronWeb.sj3 () tronWeb.js, который принимает только 1 аргумент. Так что я думаю об обходном пути, если у меня нет опции {encoding: 'hex'} для использования.

...