workshop
workshop copied to clipboard
Election.sol needs to be updated for solidity ^0.5.8
Hi,
I was using Election.sol and could not compile it. With the solidity version ^0.5.8, the following changes are required.
SUMMARY:
- update solidity version.
- error message for require().
- public before other modifiers.
- valid argument in selfdestruct().
DETAILS:
-
pragma solidity ^0.4.21; to be changed to pragma solidity ^0.5.8;
-
require(msg.sender == owner); to be changed to require(msg.sender == owner, "Sender NOT authorized.");
-
constructor(string _name) public {...} to be changed to constructor(string memory _name) public {...}
-
function addCandidate(string name) ownerOnly public {...} to be changed to function addCandidate(string memory name) public ownerOnly {...}
-
function authorize(address person) ownerOnly public {...} to be changed to function authorize(address person) public ownerOnly {...}
-
require(!voters[msg.sender].voted); to be changed to require(!voters[msg.sender].voted, "Voter has already voted");
-
require(voters[msg.sender].authorized); to be changed to require(voters[msg.sender].authorized, "Voter not authorized");
-
function end() ownerOnly public {...} to be changed to function end() public ownerOnly {...}
-
selfdestruct(owner); to be changed to selfdestruct(msg.sender);
I am not sure if this workshop contracts requires updating but searching Election.sol by Blockgeeks gives this as a top search result. And I think new people can benefit from this.