亲爱的社区成员:
我在定义接口时遇到了一个错误(只使用标准的一个接口ERC721TokenReceiver)
这个接口在这个链接https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md中有提到。
我在下面的错误(请找到屏幕截图)数据位置必须是“调用数据”的参数在外部功能,但没有给出。

奇怪的是,当我将字节更改为bytes32时,错误就消失了。但我很怀疑
1)错误的原因是什么?
( 2)在定义接口时是否应偏离std指南?
Br发展
发布于 2019-01-17 02:04:54
bytes是byte的数组(如byte[],只在眼睛上更容易),因此这里列出的第二个明确性要求适用于:https://solidity.readthedocs.io/en/v0.5.0/050-breaking-changes.html#explicitness-requirements
您可以用更早的版本编译它,就像现在一样。我没有发现0.4.20和0.4.25的问题。
或者,您可以稍微重构代码。
将第一行更改为pragma solidity 0.5.2;,在第15行更改为... bytes calldata _data, ...。这将适用于0.5.2编译器。
希望能帮上忙。
https://ethereum.stackexchange.com/questions/65683
复制相似问题