Guest User

Untitled

a guest
Jul 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. pragma solidity ^0.4.21;
  2.  
  3. import "./EIP20Interface.sol";
  4.  
  5.  
  6. contract ApnaToken is EIP20Interface {
  7.  
  8. uint256 constant private MAX_UINT256 = 2**256 - 1;
  9. mapping (address => uint256) public balances;
  10. mapping (address => mapping (address => uint256)) public allowed;
  11. string public name; //fancy name: eg Simon Bucks
  12. uint8 public decimals; //How many decimals to show.
  13. string public symbol; //An identifier: eg SBX
  14.  
  15. function Constructor(
  16. uint256 _initialAmount,
  17. string _tokenName,
  18. uint8 _decimalUnits,
  19. string _tokenSymbol
  20. ) public {
  21. balances[msg.sender] = _initialAmount; // Give the creator all initial tokens
  22. totalSupply = _initialAmount; // Update total supply
  23. name = _tokenName; // Set the name for display purposes
  24. decimals = _decimalUnits; // Amount of decimals for display purposes
  25. symbol = _tokenSymbol; // Set the symbol for display purposes
  26. }
  27.  
  28. function transfer(address _to, uint256 _value) public returns (bool success) {
  29. require(balances[msg.sender] >= _value);
  30. balances[msg.sender] -= _value;
  31. balances[_to] += _value;
  32. emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars
  33. return true;
  34. }
  35.  
  36. function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
  37. uint256 allowance = allowed[_from][msg.sender];
  38. require(balances[_from] >= _value && allowance >= _value);
  39. balances[_to] += _value;
  40. balances[_from] -= _value;
  41. if (allowance < MAX_UINT256) {
  42. allowed[_from][msg.sender] -= _value;
  43. }
  44. emit Transfer(_from, _to, _value); //solhint-disable-line indent, no-unused-vars
  45. return true;
  46. }
  47.  
  48. function balanceOf(address _owner) public view returns (uint256 balance) {
  49. return balances[_owner];
  50. }
  51.  
  52. function approve(address _spender, uint256 _value) public returns (bool success) {
  53. allowed[msg.sender][_spender] = _value;
  54. emit Approval(msg.sender, _spender, _value); //solhint-disable-line indent, no-unused-vars
  55. return true;
  56. }
  57.  
  58. function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
  59. return allowed[_owner][_spender];
  60. }
  61. }
Add Comment
Please, Sign In to add comment