1

我正在编写一个智能合约,用户发送一个散列字符串:问题的答案(因为我不希望它在区块链中公开)。它与正确的散列答案进行比较:

function answerQuestion(bytes32 _answer) notAnswered returns (string){
    if(_answer == keccak256(answer)){
        isAnswered = true;
        winner = msg.sender;
        return pos;
    }
    return "WRONG";
}

为了检查它是否有效,我在一个在线工具(https://emn178.github.io/online-tools/keccak_256.html)中散列了正确的答案

它给了我类似的东西57315cf71be5ffcaf957b9cc196b322e1c4d5a1832396abcee71d05d8caf41a6 ,我将其解析为浏览器可靠性中的参数。但它返回:

Error encoding arguments: SyntaxError: Unexpected token c in JSON at position 6

知道我应该如何解决这个问题吗?

4

1 回答 1

0

我正在使用 Remix IDE 开发智能合约,但遇到了同样的问题。我通过将 0x 附加到哈希的开头解决了这个问题。

0x57315cf71be5ffcaf957b9cc196b322e1c4d5a1832396abcee71d05d8caf41a6
于 2018-03-12T16:18:20.493 回答