我在 remix.ethereum.org 的blockhash函数有问题。尽管多次尝试使用不同的代码,blockhash 函数总是会导致问题,结果是所有变量都返回零值。
在以下情况下,_previousBlockNumber变量始终返回零。如果注释掉 blockhash 函数行,则不会发生错误,并且至少_previousBlockNumber变量会正确返回。
我尝试了几种不同版本的编译器。
pragma solidity ^0.5.5;
contract Test {
constructor() public {
}
function rand() public view returns(uint,bytes32) {
uint _previousBlockNumber;
bytes32 _previousBlockHash;
_previousBlockNumber = uint(block.number - 1);
bytes32 _previousBlockHash = bytes32(blockhash(_previousBlockNumber));
return (_previousBlockNumber,_previousBlockHash);
}
}
是bug问题吗?
谢谢你的帮助。