как получить правильный адрес с помощью ecrecover в троне - PullRequest
0 голосов
/ 15 апреля 2020

Блок кода получения адреса подписавшего через ecrecover в коде контракта на солидность хорошо работает с Ethereum, но в TRON он возвращает неправильный адрес. Код моей стороны контракта -

    function validate(string memory strTest,uint8 v, bytes32 r, bytes32 s) public view returns(address){
      bytes32 prefixedHash = keccak256(strTest);
      return ecrecover(keccak256(prefixedHash),v,r,s);
      // return ecrecover(prefixedHash,v,r,s):
   }

, а код стороны dapp -

    msg = tronWeb.sha3("this is test string");
    var signature = await tronWeb.trx.sign(msg);
    var r=signature.substr(0,66);
    var s= "0x" + signature.substr(66,64);
    var v="0x" + signature.substr(signature.length-2);
    retValue = await thisContractInstance.validate("this is test string",v,r,s).call();

но в обоих случаях (один случай комментируется в коде контракта) получение неверного адреса подписавшего в сети TRON shasta

...