Skip to content

Election.sol needs to be updated for solidity ^0.5.8 #4

@urwa

Description

@urwa

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions