Advertisement
Guest User

Untitled

a guest
Jun 14th, 2017
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. pragma solidity ^0.4.4;
  2.  
  3. contract Token {
  4.  
  5. uint private supply = 0;
  6.  
  7. address public tokenManager;
  8.  
  9. mapping (address => uint256) private balance;
  10. mapping (address => mapping(address => uint256)) private allowed;
  11.  
  12. modifier onlyTokenManager() { if(msg.sender != tokenManager) throw; _; }
  13.  
  14. event Transfer(address indexed _from, address indexed _to, uint256 _value);
  15. event Approval(address indexed _owner, address indexed _spender, uint256 _value);
  16.  
  17.  
  18. function Token(address _tokenManager) {
  19. tokenManager = _tokenManager;
  20. }
  21.  
  22. function() {
  23. throw;
  24. }
  25.  
  26. function createTokens(uint amount) onlyTokenManager {
  27. supply += amount;
  28. balance[msg.sender] += amount;
  29. }
  30.  
  31. function destroyTokens(uint amount) onlyTokenManager {
  32. if (amount > balance[msg.sender]) {
  33. throw;
  34. }
  35. supply -= amount;
  36. balance[msg.sender] -= amount;
  37. }
  38.  
  39. function balanceOf(address _owner) constant returns (uint256 balanceOf) {
  40. return balance[_owner];
  41. }
  42.  
  43. function totalSupply() constant returns (uint256 totalSupply) {
  44. return supply;
  45. }
  46.  
  47. function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
  48. return allowed[_owner][_spender];
  49. }
  50.  
  51. function transfer(address _to, uint256 _value) returns (bool success)
  52. {
  53. if (balance[msg.sender] >= _value && _value > 0) {
  54. balance[msg.sender] -= _value;
  55. balance[_to] += _value;
  56. Transfer(msg.sender,_to,_value);
  57. return true;
  58. }
  59. return false;
  60. }
  61.  
  62. function approve(address _spender, uint256 _value) returns (bool success) {
  63. if (balance[msg.sender] >= _value && _value > 0) {
  64. allowed[msg.sender][_spender] = _value;
  65. Approval(msg.sender,_spender,_value);
  66. return true;
  67. }
  68. return false;
  69. }
  70.  
  71.  
  72. function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
  73.  
  74. if (allowed[_from][msg.sender] >= _value && balance[_from] >= _value && _value >= 0)
  75. {
  76. allowed[_from][msg.sender] -= _value;
  77. balance[_from] -= _value;
  78. balance[_to] += _value;
  79. Transfer(_from,_to,_value);
  80. return true;
  81. }
  82.  
  83. return false;
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement