In the statement players.push(msg.sender);
I am getting following error:
Member "push" not found or not visible after argument-dependent lookup in address payable[] storage ref.
Thus I cannot push to address payable array in solidity. What's the workaround here?
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0;
contract Lottery {
address public manager;
address payable[] public players;
constructor() {
manager = msg.sender;
}
function enter() public payable {
players.push(msg.sender); // ERROR IN THIS LINE
}
}
If you're compiling with Solidity 0.7, everything works fine.
This error shows in Solidity 0.8, and it's because in 0.8 msg.sender
is not automatically payable
anymore. So you need to make it payable
first:
players.push(payable(msg.sender));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With