Hash

當我呼叫我的函式元遮罩告訴“此操作預計會失敗”時

  • April 21, 2022

大家好,我正在嘗試創建問題挑戰 dapp,我有一個checkAnswer()可以從前端訪問的功能。我的問題結構:

   struct Question{
       string qDesc;
       uint qPrize;//must be wei
       uint qDate;
       string[3] qHints;
       string qAnswer;
       bool qState;
       bool qWait;
   }

部分函式體:

   function checkAnswer(string memory _answer) public payable{
    if(keccak256(abi.encodePacked(newQuestion.qAnswer)) == keccak256(abi.encodePacked(_answer))){
     ...
    }
    ...
   }   

當我發送“測試答案”輸入值來執行它時,它成功呼叫。但是當我嘗試將“test cevap”值發送給函式時,元遮罩給了我“這個操作預計會失敗”。我不明白這裡發生了什麼。

我發現是什麼破壞了我的功能。當使用者向功能發送正確答案時,智能合約正在將挑戰獎轉移到msg.sender但我在合約錢包中沒有足夠的餘額,所以這就是交易損壞的原因。

引用自:https://ethereum.stackexchange.com/questions/126093