ETH Price: $3,265.22 (+0.35%)
Gas: 1 Gwei

Token

HorseWithACheapCardboardHorn (HWACCH)
 

Overview

Max Total Supply

11,829 HWACCH

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Filtered by Token Holder
froglord.eth
Balance
49 HWACCH

Value
$0.00
0xCC89EC35fCECC62273603B6031f93ca692a54414
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CardboardUnicorns

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-07-02
*/

pragma solidity ^0.4.11;

contract ForeignToken {
  function balanceOf(address _owner) constant returns (uint256);
  function transfer(address _to, uint256 _value) returns (bool);
}

/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint a, uint b) internal returns (uint) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function add(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

  function assert(bool assertion) internal {
    if (!assertion) {
      throw;
    }
  }
}

contract CardboardUnicorns {
  using SafeMath for uint;
  
  string public name = "HorseWithACheapCardboardHorn";
  string public symbol = "HWACCH";
  uint public decimals = 0;
  uint public totalSupply = 0;
  mapping(address => uint) balances;
  mapping (address => mapping (address => uint)) allowed;
  address public owner = msg.sender;

  event Transfer(address indexed from, address indexed to, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
  event Minted(address indexed owner, uint value);

  /**
   * Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint size) {
    if(msg.data.length < size + 4) {
      throw;
    }
    _;
  }
  
  modifier onlyOwner {
    require(msg.sender == owner);
    _;
  }
  
  /**
   * Change ownership of the token
   */
  function changeOwner(address _newOwner) onlyOwner {
    owner = _newOwner;
  }

  function withdraw() onlyOwner {
    owner.transfer(this.balance);
  }
  function withdrawForeignTokens(address _tokenContract) onlyOwner {
    ForeignToken token = ForeignToken(_tokenContract);
    uint256 amount = token.balanceOf(address(this));
    token.transfer(owner, amount);
  }

  /**
   * Generate new tokens.
   * Can only be done by the owner of the contract
   */
  function mint(address _who, uint _value) onlyOwner {
    balances[_who] = balances[_who].add(_value);
    totalSupply = totalSupply.add(_value);
    Minted(_who, _value);
  }

  /**
   * Get the token balance of the specified address
   */
  function balanceOf(address _who) constant returns (uint balance) {
    return balances[_who];
  }
  
  /**
   * Transfer token to another address
   */
  function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {
    require(_to != address(this)); // Don't send tokens back to the contract!
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }
  
  
  /**
   * Transfer tokens from an different address to another address.
   * Need to have been granted an allowance to do this before triggering.
   */
  function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3 * 32) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
  }
  
  /**
   * Approve the indicated address to spend the specified amount of tokens on the sender's behalf
   */
  function approve(address _spender, uint _value) {
    // Ensure allowance is zero if attempting to set to a non-zero number
    // This helps manage an edge-case race condition better: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;
    
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }
  
  /**
   * Check how many tokens the indicated address can spend on behalf of the owner
   */
  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"withdrawForeignTokens","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Minted","type":"event"}]

60a0604052601c60608190527f486f7273655769746841436865617043617264626f617264486f726e00000000608090815261003e91600091906100b6565b506040805180820190915260068082527f48574143434800000000000000000000000000000000000000000000000000006020909201918252610083916001916100b6565b506000600281905560035560068054600160a060020a03191633600160a060020a031617905534156100b157fe5b610156565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f757805160ff1916838001178555610124565b82800160010185558215610124579182015b82811115610124578251825591602001919060010190610109565b5b50610131929150610135565b5090565b61015391905b80821115610131576000815560010161013b565b5090565b90565b610ad4806101656000396000f300606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100cf578063095ea7b31461015f57806318160ddd1461018057806323b872dd146101a2578063313ce567146101c95780633ccfd60b146101eb57806340c10f19146101fd57806370a082311461021e5780638da5cb5b1461024c57806395d89b4114610278578063a6f9dae114610308578063a9059cbb14610326578063dd62ed3e14610347578063e58fc54c1461037b575bfe5b34156100d757fe5b6100df610399565b604080516020808252835181830152835191928392908301918501908083838215610125575b80518252602083111561012557601f199092019160209182019101610105565b505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016757fe5b61017e600160a060020a0360043516602435610427565b005b341561018857fe5b6101906104c7565b60408051918252519081900360200190f35b34156101aa57fe5b61017e600160a060020a03600435811690602435166044356104cd565b005b34156101d157fe5b6101906105f1565b60408051918252519081900360200190f35b34156101f357fe5b61017e6105f7565b005b341561020557fe5b61017e600160a060020a0360043516602435610649565b005b341561022657fe5b610190600160a060020a0360043516610702565b60408051918252519081900360200190f35b341561025457fe5b61025c610721565b60408051600160a060020a039092168252519081900360200190f35b341561028057fe5b6100df610730565b604080516020808252835181830152835191928392908301918501908083838215610125575b80518252602083111561012557601f199092019160209182019101610105565b505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031057fe5b61017e600160a060020a03600435166107bd565b005b341561032e57fe5b61017e600160a060020a0360043516602435610806565b005b341561034f57fe5b610190600160a060020a03600435811690602435166108f6565b60408051918252519081900360200190f35b341561038357fe5b61017e600160a060020a0360043516610923565b005b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b801580159061045a5750600160a060020a0333811660009081526005602090815260408083209386168352929052205415155b156104655760006000fd5b600160a060020a03338116600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60035481565b6000606060643610156104e05760006000fd5b600160a060020a038086166000908152600560209081526040808320338516845282528083205493881683526004909152902054909250610527908463ffffffff610a6216565b600160a060020a03808616600090815260046020526040808220939093559087168152205461055c908463ffffffff610a7e16565b600160a060020a038616600090815260046020526040902055610585828463ffffffff610a7e16565b600160a060020a038087166000818152600560209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5b5050505050565b60025481565b60065433600160a060020a039081169116146106135760006000fd5b600654604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561064557fe5b5b5b565b60065433600160a060020a039081169116146106655760006000fd5b600160a060020a03821660009081526004602052604090205461068e908263ffffffff610a6216565b600160a060020a0383166000908152600460205260409020556003546106ba908263ffffffff610a6216565b600355604080518281529051600160a060020a038416917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a25b5b5050565b600160a060020a0381166000908152600460205260409020545b919050565b600654600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b60065433600160a060020a039081169116146107d95760006000fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b604060443610156108175760006000fd5b30600160a060020a031683600160a060020a0316141515156108395760006000fd5b600160a060020a033316600090815260046020526040902054610862908363ffffffff610a7e16565b600160a060020a033381166000908152600460205260408082209390935590851681522054610897908363ffffffff610a6216565b600160a060020a038085166000818152600460209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5b505050565b600160a060020a038083166000908152600560209081526040808320938516835292905220545b92915050565b600654600090819033600160a060020a039081169116146109445760006000fd5b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15156109c057fe5b6102c65a03f115156109ce57fe5b50506040805180516006546000602093840181905284517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529451929650908716945063a9059cbb936044808201949392918390030190829087803b1515610a4a57fe5b6102c65a03f11515610a5857fe5b5050505b5b505050565b6000828201610a7384821015610a97565b8091505b5092915050565b6000610a8c83831115610a97565b508082035b92915050565b8015156108025760006000fd5b5b505600a165627a7a723058204bde4bdb6dc2f11cef35a744c62b2f46124efe6fd96319dacdc3cc030605bc010029

Deployed Bytecode

0x606060405236156100cd5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100cf578063095ea7b31461015f57806318160ddd1461018057806323b872dd146101a2578063313ce567146101c95780633ccfd60b146101eb57806340c10f19146101fd57806370a082311461021e5780638da5cb5b1461024c57806395d89b4114610278578063a6f9dae114610308578063a9059cbb14610326578063dd62ed3e14610347578063e58fc54c1461037b575bfe5b34156100d757fe5b6100df610399565b604080516020808252835181830152835191928392908301918501908083838215610125575b80518252602083111561012557601f199092019160209182019101610105565b505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016757fe5b61017e600160a060020a0360043516602435610427565b005b341561018857fe5b6101906104c7565b60408051918252519081900360200190f35b34156101aa57fe5b61017e600160a060020a03600435811690602435166044356104cd565b005b34156101d157fe5b6101906105f1565b60408051918252519081900360200190f35b34156101f357fe5b61017e6105f7565b005b341561020557fe5b61017e600160a060020a0360043516602435610649565b005b341561022657fe5b610190600160a060020a0360043516610702565b60408051918252519081900360200190f35b341561025457fe5b61025c610721565b60408051600160a060020a039092168252519081900360200190f35b341561028057fe5b6100df610730565b604080516020808252835181830152835191928392908301918501908083838215610125575b80518252602083111561012557601f199092019160209182019101610105565b505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031057fe5b61017e600160a060020a03600435166107bd565b005b341561032e57fe5b61017e600160a060020a0360043516602435610806565b005b341561034f57fe5b610190600160a060020a03600435811690602435166108f6565b60408051918252519081900360200190f35b341561038357fe5b61017e600160a060020a0360043516610923565b005b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b801580159061045a5750600160a060020a0333811660009081526005602090815260408083209386168352929052205415155b156104655760006000fd5b600160a060020a03338116600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60035481565b6000606060643610156104e05760006000fd5b600160a060020a038086166000908152600560209081526040808320338516845282528083205493881683526004909152902054909250610527908463ffffffff610a6216565b600160a060020a03808616600090815260046020526040808220939093559087168152205461055c908463ffffffff610a7e16565b600160a060020a038616600090815260046020526040902055610585828463ffffffff610a7e16565b600160a060020a038087166000818152600560209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5b5050505050565b60025481565b60065433600160a060020a039081169116146106135760006000fd5b600654604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561064557fe5b5b5b565b60065433600160a060020a039081169116146106655760006000fd5b600160a060020a03821660009081526004602052604090205461068e908263ffffffff610a6216565b600160a060020a0383166000908152600460205260409020556003546106ba908263ffffffff610a6216565b600355604080518281529051600160a060020a038416917f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe919081900360200190a25b5b5050565b600160a060020a0381166000908152600460205260409020545b919050565b600654600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561041f5780601f106103f45761010080835404028352916020019161041f565b820191906000526020600020905b81548152906001019060200180831161040257829003601f168201915b505050505081565b60065433600160a060020a039081169116146107d95760006000fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b604060443610156108175760006000fd5b30600160a060020a031683600160a060020a0316141515156108395760006000fd5b600160a060020a033316600090815260046020526040902054610862908363ffffffff610a7e16565b600160a060020a033381166000908152600460205260408082209390935590851681522054610897908363ffffffff610a6216565b600160a060020a038085166000818152600460209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5b505050565b600160a060020a038083166000908152600560209081526040808320938516835292905220545b92915050565b600654600090819033600160a060020a039081169116146109445760006000fd5b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15156109c057fe5b6102c65a03f115156109ce57fe5b50506040805180516006546000602093840181905284517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529451929650908716945063a9059cbb936044808201949392918390030190829087803b1515610a4a57fe5b6102c65a03f11515610a5857fe5b5050505b5b505050565b6000828201610a7384821015610a97565b8091505b5092915050565b6000610a8c83831115610a97565b508082035b92915050565b8015156108025760006000fd5b5b505600a165627a7a723058204bde4bdb6dc2f11cef35a744c62b2f46124efe6fd96319dacdc3cc030605bc010029

Swarm Source

bzzr://4bde4bdb6dc2f11cef35a744c62b2f46124efe6fd96319dacdc3cc030605bc01
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.