Начинаю разбираться с solidity, наваял такой вот код:
pragma solidity ^0.4.0;
contract randomContract {
address public ownerAddr;
uint public lastBlock;
uint256 public lastRandomValue;
uint public randomMaxLimit = 1000000000000;
modifier isOwner {
require(ownerAddr == msg.sender);
_;
}
function randomContract() {
ownerAddr = msg.sender;
generateRandomNumber();
}
function generateRandomNumber() public /*constant*/ returns (uint) {
lastBlock = block.number;
lastRandomValue = uint( block.blockhash(block.number) ) % randomMaxLimit;
return lastRandomValue;
}
function getRandomNumber() public /*constant*/ returns (uint) {
generateRandomNumber();
return lastRandomValue;
}
}
Но мой рандом не работает(тестирую в REMIX на гитхабе), вопрос почему? и как сделать рабочий рандом подскажите плс?
Еще вопрос чем отличаются между собой такие декларации функции:
function generateRandomNumber() public returns (uint) { }
и
function generateRandomNumber() public constant returns (uint) { }
?