Skip to content

Instantly share code, notes, and snippets.

@giladHaimov
Last active March 19, 2025 19:41
Show Gist options
  • Save giladHaimov/8e81dbde10c9aeff69a1d683ed6870be to your computer and use it in GitHub Desktop.
Save giladHaimov/8e81dbde10c9aeff69a1d683ed6870be to your computer and use it in GitHub Desktop.

Revisions

  1. Gilad Haimov revised this gist Aug 30, 2018. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions BasicERC20.sol
    Original file line number Diff line number Diff line change
    @@ -20,8 +20,7 @@ contract ERC20Basic {
    using SafeMath for uint256;


    // constructor
    function ERC20Basic(uint256 total) public {
    constructor(uint256 total) public {
    totalSupply_ = total;
    balances[msg.sender] = totalSupply_;
    }
  2. Gilad Haimov revised this gist Aug 24, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion BasicERC20.sol
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@ pragma solidity ^0.4.19;

    contract ERC20Basic {

    string public constant name = "ERC20Basic";
    string public constant name = "ERC20Basic";
    string public constant symbol = "BSC";
    uint8 public constant decimals = 18;

  3. Gilad Haimov revised this gist Aug 24, 2018. 1 changed file with 10 additions and 11 deletions.
    21 changes: 10 additions & 11 deletions BasicERC20.sol
    Original file line number Diff line number Diff line change
    @@ -17,20 +17,19 @@ contract ERC20Basic {

    uint256 totalSupply_;

    using SafeMath for uint256;
    using SafeMath for uint256;


    // constructor
    function ERC20Basic(uint256 total) public {
    totalSupply_ = total;
    balances[msg.sender] = totalSupply_;
    }

    function totalSupply() public view returns (uint256) {
    return totalSupply_;
    }

    // constructor
    function ERC20Basic(uint256 total) public {
    totalSupply_ = total;
    balances[msg.sender] = totalSupply_;
    }

    function totalSupply() public view returns (uint256) {
    return totalSupply_;
    }

    function balanceOf(address tokenOwner) public view returns (uint) {
    return balances[tokenOwner];
    }
  4. Gilad Haimov created this gist Aug 24, 2018.
    79 changes: 79 additions & 0 deletions BasicERC20.sol
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    pragma solidity ^0.4.19;

    contract ERC20Basic {

    string public constant name = "ERC20Basic";
    string public constant symbol = "BSC";
    uint8 public constant decimals = 18;


    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
    event Transfer(address indexed from, address indexed to, uint tokens);


    mapping(address => uint256) balances;

    mapping(address => mapping (address => uint256)) allowed;

    uint256 totalSupply_;

    using SafeMath for uint256;


    // constructor
    function ERC20Basic(uint256 total) public {
    totalSupply_ = total;
    balances[msg.sender] = totalSupply_;
    }

    function totalSupply() public view returns (uint256) {
    return totalSupply_;
    }


    function balanceOf(address tokenOwner) public view returns (uint) {
    return balances[tokenOwner];
    }

    function transfer(address receiver, uint numTokens) public returns (bool) {
    require(numTokens <= balances[msg.sender]);
    balances[msg.sender] = balances[msg.sender].sub(numTokens);
    balances[receiver] = balances[receiver].add(numTokens);
    emit Transfer(msg.sender, receiver, numTokens);
    return true;
    }

    function approve(address delegate, uint numTokens) public returns (bool) {
    allowed[msg.sender][delegate] = numTokens;
    Approval(msg.sender, delegate, numTokens);
    return true;
    }

    function allowance(address owner, address delegate) public view returns (uint) {
    return allowed[owner][delegate];
    }

    function transferFrom(address owner, address buyer, uint numTokens) public returns (bool) {
    require(numTokens <= balances[owner]);
    require(numTokens <= allowed[owner][msg.sender]);

    balances[owner] = balances[owner].sub(numTokens);
    allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);
    balances[buyer] = balances[buyer].add(numTokens);
    Transfer(owner, buyer, numTokens);
    return true;
    }
    }

    library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
    }
    }