Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.0;
- contract ERC20_Token {
- address owner;
- string public name;
- string public symbol;
- uint8 public decimals;
- uint256 public totalSupply;
- mapping (address => uint256) public balanceOf;
- mapping (address => mapping(address => uint)) allowance;
- event Transfer(address from, address to, uint256 value);
- event Approval(address from, address to, uint256 value);
- constructor (string _name, string _symbol) public {
- decimals = 8;
- symbol = _symbol;
- name = _name;
- totalSupply = 1000000 * (10 ** uint256(decimals));
- balanceOf[msg.sender] = totalSupply;
- owner = msg.sender;
- }
- function _transfer(address _from, address _to, uint256 _value) internal {
- require(_to != 0x0);
- require(balanceOf[_from] >= _value);
- require( balanceOf[_to] + _value >= balanceOf[_to]);
- balanceOf[_from] -= _value;
- balanceOf[_to] += _value;
- emit Transfer(_from, _to, _value);
- }
- function transfer(address _to, uint256 _value ) public {
- _transfer(msg.sender,_to,_value);
- }
- function transferFrom(address _from, address _to, uint256 _value ) public {
- require(_value <= allowance[_from][_to]);
- _transfer(_from, _to, _value);
- }
- function approve(address _to, uint256 _value) public {
- allowance[msg.sender][_to] = _value;
- emit Approval(msg.sender,_to, _value);
- }
- function mint(uint256 _value) public {
- require(msg.sender == owner);
- totalSupply += _value * (10 ** uint256(decimals));
- }
- function burn(uint256 _value) public {
- require(msg.sender == owner);
- require (totalSupply >= _value* (10 ** uint256(decimals)));
- totalSupply -= _value * (10 ** uint256(decimals));
- }
- function balance(address _owner) public view returns (uint256){
- return balanceOf[_owner];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement