remix.ethereum.orgのブロックハッシュ機能に問題があります。異なるコードで何度か試みたにもかかわらず、ブロックハッシュ関数は常に問題を引き起こし、その結果、すべての変数がゼロの値で返されます。
以下の場合、_previousBlockNumber変数は常にゼロを返します。ブロックハッシュ関数の行がコメントアウトされている場合、エラーは発生せず、少なくとも_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);
}
}
バグの問題ですか?
助けてくれてありがとう。