私が使用しているバージョンは0.5.2です
Remix IDEで以下のコードを実行しています
pragma solidity ^0.5.2;
contract Lottery {
address public manager;
address payable[] public players;
constructor () public {
manager = msg.sender;
}
function enter() public payable {
require(msg.value > 0.01 ether);
players.push(msg.sender);
}
// function getPlayers() public view returns(address[] memory) {
// return players;
// }
function random() public view returns(uint) {
return uint(keccak256(abi.encodePacked(block.difficulty, now, players)));
}
function pickWinner() public {
uint index = random() % players.length;
players[index].transfer(address(this).balance);
players = new address[](0); // This line of code giving an error
}
}
私が得ているエラーは次のとおりです。
Type address[] memory is not implicitly convertible to expected type address payable[] storage ref.
関数 pickWinner() で:
function pickWinner() public {
uint index = random() % players.length;
players[index].transfer(address(this).balance);
players = new address[](0); // This line of code giving an error
}
宝くじ契約をリセットするために、プレーヤーの配列をすべて 0 にリセットしようとしています