Solidity

乙太坊錢包編譯錯誤

  • November 30, 2020

我正在嘗試在https://ethereum.org/token中編譯範例合約,並按照說明進行操作。

乙太坊錢包無法編譯它。我收到以下錯誤消息

Expected ',' but got identifier
interface tokenRecipient { function receiveApproval(address _from, 
uint256 _value, address _token, bytes calldata _extraData) external; }

^--------^

第一次嘗試在乙太坊中做合約,並認為來自官方乙太坊網站的範常式式碼應該可以工作。誰能告訴我出了什麼問題?

這是因為solidity版本。如果使用solc@0.4.x則使用

interface tokenRecipient { function receiveApproval(address _from, 
uint256 _value, address _token, bytes _extraData) external; }

代替

interface tokenRecipient { function receiveApproval(address _from, 
uint256 _value, address _token, bytes calldata _extraData) external; }

或者將solidity版本更改為solc@0.5.0

檢查你的 Solidity 編譯器版本。

“calldata” 可用0.5.0 或更高版本

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