Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.4;
- contract Token {
- uint private supply = 0;
- address public tokenManager;
- mapping (address => uint256) private balance;
- mapping (address => mapping(address => uint256)) private allowed;
- modifier onlyTokenManager() { if(msg.sender != tokenManager) throw; _; }
- event Transfer(address indexed _from, address indexed _to, uint256 _value);
- event Approval(address indexed _owner, address indexed _spender, uint256 _value);
- function Token(address _tokenManager) {
- tokenManager = _tokenManager;
- }
- function() {
- throw;
- }
- function createTokens(uint amount) onlyTokenManager {
- supply += amount;
- balance[msg.sender] += amount;
- }
- function destroyTokens(uint amount) onlyTokenManager {
- if (amount > balance[msg.sender]) {
- throw;
- }
- supply -= amount;
- balance[msg.sender] -= amount;
- }
- function balanceOf(address _owner) constant returns (uint256 balanceOf) {
- return balance[_owner];
- }
- function totalSupply() constant returns (uint256 totalSupply) {
- return supply;
- }
- function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
- return allowed[_owner][_spender];
- }
- function transfer(address _to, uint256 _value) returns (bool success)
- {
- if (balance[msg.sender] >= _value && _value > 0) {
- balance[msg.sender] -= _value;
- balance[_to] += _value;
- Transfer(msg.sender,_to,_value);
- return true;
- }
- return false;
- }
- function approve(address _spender, uint256 _value) returns (bool success) {
- if (balance[msg.sender] >= _value && _value > 0) {
- allowed[msg.sender][_spender] = _value;
- Approval(msg.sender,_spender,_value);
- return true;
- }
- return false;
- }
- function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
- if (allowed[_from][msg.sender] >= _value && balance[_from] >= _value && _value >= 0)
- {
- allowed[_from][msg.sender] -= _value;
- balance[_from] -= _value;
- balance[_to] += _value;
- Transfer(_from,_to,_value);
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement