Guest User

Untitled

a guest
Oct 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. pragma solidity ^0.4.20;
  2.  
  3. contract Token{
  4.  
  5. function totalSupply() constant returns (uint256 supply){}
  6. function balanceOf(address _owner) constant returns(uint256 balance){}
  7. function transfer(address _to, uint256 _value) returns(bool success){}
  8. function transferFrom(address _from, address _to, uint256 _value) returns(bool success){}
  9. function approve(address _spender, uint256 _value) returns(bool success){}
  10. function allowance(address _owner, address _spender) constant returns(uint256 remaining){}
  11.  
  12. event Transfer(address indexed _from, address indexed _to, uint256 _value);
  13. event Approval(address indexed _owner, address indexed _spender, uint256 _value);
  14.  
  15. }
  16.  
  17. contract MyToken is Token{
  18.  
  19. function transfer(address _to, uint256 _value) returns(bool success){
  20.  
  21. if (balances[msg.sender] >= _value && _value > 0){
  22. balances[msg.sender] -= _value;
  23. balances[_to] += _value;
  24. Transfer(msg.sender, _to, _value);
  25. return true;
  26.  
  27. } else {
  28.  
  29. return false;
  30.  
  31. }
  32. }
  33.  
  34. function transferFrom(address _from, address _to, uint256 _value) returns(bool success){
  35.  
  36. if(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0){
  37. balances[_to] += _value;
  38. balances[_from] -= _value;
  39. allowed[_from][msg.sender] -= _value;
  40. Transfer(_from, _to, _value);
  41. return true;
  42.  
  43. } else {
  44.  
  45. return false;
  46.  
  47. }
  48. }
  49.  
  50. function balanceOf(address _owner) constant returns(uint256 balance){
  51.  
  52. return balances[_owner];
  53.  
  54. }
  55.  
  56. function approve(address _spender, uint256 _value) returns(bool success){
  57.  
  58. allowed[msg.sender][_spender] = _value;
  59. Approval(msg.sender, _spender, _value);
  60. return true;
  61.  
  62. }
  63.  
  64. function allowance(address _owner, address _spender) constant returns(uint256 remaining){
  65.  
  66. return allowed[_owner][_spender];
  67.  
  68. }
  69.  
  70. mapping(address => uint256) balances;
  71. mapping(address => mapping(address => uint256)) allowed;
  72. uint256 public totalSupply;
  73.  
  74. }
  75.  
  76. contract JupiterToken is MyToken{
  77.  
  78. function(){
  79.  
  80. throw;
  81.  
  82. }
  83.  
  84. string public name;
  85. uint8 public decimals;
  86. string public symbol;
  87. string public version = "H1.0";
  88.  
  89. function JupiterToken(){
  90.  
  91. balances[msg.sender] = 1000000;
  92. totalSupply = 1000000;
  93. name = "Jupiter";
  94. decimals = 0;
  95. symbol = "JPT";
  96. // timeLastProof = now;
  97.  
  98. }
  99.  
  100. function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns(bool success){
  101.  
  102. allowed[msg.sender][_spender] = _value;
  103. Approval(msg.sender, _spender, _value);
  104.  
  105. if(!_spender.call(bytes4(bytes32(sha3("receiveApproval(address, uint256, address, bytes)"))), msg.sender, _value, this, _extraData)) {
  106.  
  107. throw;
  108.  
  109. }
  110.  
  111. return true;
  112. }
  113.  
  114. }
Add Comment
Please, Sign In to add comment