Solidity

函式approveAndCall錯誤

  • February 24, 2022

我使用 remix 創建代幣合約。

函式approveAndCall 程式碼如下。

function approveAndCall(address _spender, uint256 _value, bytes 
_extraData) public
   returns (bool success) {
   allowance[msg.sender][_spender] = _value;
   tokenRecipient spender = tokenRecipient(_spender);
   if (approve(_spender, _value)) {
   spender.receiveApproval(msg.sender, _value, this, _extraData);
   return true;
}

當我執行這個函式時,它顯示:

approveAndCall 出錯:錯誤編碼參數:錯誤:無效字節值(arg=undefined,type=“number”,value=undefined)

我應該用什麼字元串“bytes _extraData”?

在此處輸入圖像描述

我的建議是同時將 _extraData 的數據類型更改為字元串,同時您仍在混音環境中測試您的合約以獲得可讀數據,並在部署合約時將其更改回字節。

但是,如果您真的想使用字節測試它,您可以使用這些範例值中的任何一個。0x1262、0x12、0x12

只需 write 0x00,就好像您的receiveApproval函式不使用它一樣。

希望這有幫助。

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