【问题标题】:Send hash in function parameter在函数参数中发送哈希
【发布时间】:2018-04-02 13:23:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: hash ethereum solidity smartcontracts


    【解决方案1】:

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

    0x57315cf71be5ffcaf957b9cc196b322e1c4d5a1832396abcee71d05d8caf41a6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2016-03-25
      • 2011-02-27
      • 2011-07-16
      相关资源
      最近更新 更多