Contract 0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c87

 

TxHash Block Age From To Value [TxFee]
0xa71129c978308f86e5e167ad758c0c1977222b5f43b79c07eee353db9505117b5409150347 days 8 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c870 Ether0.000095432
0x45e68e70332019d7a1f6119b7f1fe89747b7b2cedde8dffc3b3df0b234f769885409150347 days 8 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c870 Ether0.000183672
0x315827b2b9378475a3a87d5195f1a6687aaa1b18b339eb7175d0e669084124575409147347 days 8 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c870 Ether0.000095432
0x09f97f68f928c8b5a269acaf4a69aa6885f0be0a28c97ef7427510b824b8ef5e5409145347 days 8 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c870 Ether0.000183672
0x02265749cf2822630d8c3a07506f470687483e8d164c53cb76b75185b6e7ebdd5396192349 days 11 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  0xbf01186bd42d27d602dfb4a6187fa09f3c7a1c870 Ether0.000061552
0x5a0394c2ca5b9672c3c2ff1127ab109f6c8f444de017c8e77203d5044e80a9d85396083349 days 12 hrs ago0xc42d4e6dbc15758f359f3977fec3d7fa31d02a26 IN  Contract Creation0 Ether0.001113468
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value

Contract Source Code Verified (Exact Match)

Contract Name:
O9COIN

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.18;



/**
 * Math operations with safety checks
 * By OpenZeppelin: https://github.com/OpenZeppelin/zeppelin-solidity/contracts/SafeMath.sol
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

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

  function add(uint256 a, uint256 b) internal returns (uint256) {
    uint256 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;
  }

}



 contract ContractReceiver{
    function tokenFallback(address _from, uint256 _value, bytes  _data) external;
}


//Basic ERC23 token, backward compatible with ERC20 transfer function.
//Based in part on code by open-zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity.git
contract ERC23BasicToken {
    using SafeMath for uint256;
    uint256 public totalSupply;
    mapping(address => uint256) balances;
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value, bytes data);

    function tokenFallback(address _from, uint256 _value, bytes  _data) external {
        throw;
    }

    function transfer(address _to, uint256 _value, bytes _data) returns (bool success) {

        //Standard ERC23 transfer function

        if(isContract(_to)) {
            transferToContract(_to, _value, _data);
        }
        else {
            transferToAddress(_to, _value, _data);
        }
        return true;
    }

    function transfer(address _to, uint256 _value) {

        //standard function transfer similar to ERC20 transfer with no _data
        //added due to backwards compatibility reasons

        bytes memory empty;
        if(isContract(_to)) {
            transferToContract(_to, _value, empty);
        }
        else {
            transferToAddress(_to, _value, empty);
        }
    }

    function transferToAddress(address _to, uint256 _value, bytes _data) internal {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        Transfer(msg.sender, _to, _value, _data);
    }

    function transferToContract(address _to, uint256 _value, bytes _data) internal {
        balances[msg.sender] = balances[msg.sender].sub( _value);
        balances[_to] = balances[_to].add( _value);
        ContractReceiver receiver = ContractReceiver(_to);
        receiver.tokenFallback(msg.sender, _value, _data);
        Transfer(msg.sender, _to, _value);
        Transfer(msg.sender, _to, _value, _data);
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    //assemble the given address bytecode. If bytecode exists then the _addr is a contract.
    function isContract(address _addr) returns (bool is_contract) {
          uint256 length;
          assembly {
              //retrieve the size of the code on target address, this needs assembly
              length := extcodesize(_addr)
          }
          if(length>0) {
              return true;
          }
          else {
              return false;
          }
    }
}


 // Standard ERC23 token, backward compatible with ERC20 standards.
 // Based on code by open-zeppelin: https://github.com/OpenZeppelin/zeppelin-solidity.git
contract ERC23StandardToken is ERC23BasicToken {
    mapping (address => mapping (address => uint256)) allowed;
    event Approval (address indexed owner, address indexed spender, uint256 value);

    function transferFrom(address _from, address _to, uint256 _value) {
        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);
    }

    function approve(address _spender, uint256 _value) {

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  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);
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

}
/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    owner = msg.sender;
  }
  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }
  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
contract MintableToken is ERC23StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();
  bool public mintingFinished = false;
  modifier canMint() {
    require(!mintingFinished);
    _;
  }
  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(0x0, _to, _amount);
    return true;
  }
  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner public returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

contract O9COIN is MintableToken { 
  string public name="O9COIN";
  string public symbol="O9C";
  uint8 public decimals=18;

}

Contract ABI

[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"isContract","outputs":[{"name":"is_contract","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Transfer","type":"event"}]

Contract Creation Code

606060409081526003805460a060020a60ff02191690558051908101604052600681527f4f39434f494e00000000000000000000000000000000000000000000000000006020820152600490805161005b9291602001906100d3565b5060408051908101604052600381527f4f39430000000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100d3565b506006805460ff1916601217905560038054600160a060020a033316600160a060020a031990911617905561016e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011457805160ff1916838001178555610141565b82800160010185558215610141579182015b82811115610141578251825591602001919060010190610126565b5061014d929150610151565b5090565b61016b91905b8082111561014d5760008155600101610157565b90565b610e118061017d6000396000f3006060604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146100f557806306fdde031461011c578063095ea7b3146101a657806316279055146101ca57806318160ddd146101e957806323b872dd1461020e578063313ce5671461023657806340c10f191461025f57806370a08231146102815780637d64bcb4146102a05780638da5cb5b146102b357806395d89b41146102e2578063a9059cbb146102f5578063be45fd6214610317578063c0ee0b8a1461037c578063dd62ed3e146103ab578063f2fde38b146103d0575b600080fd5b341561010057600080fd5b6101086103ef565b604051901515815260200160405180910390f35b341561012757600080fd5b61012f610410565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016b578082015183820152602001610153565b50505050905090810190601f1680156101985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b157600080fd5b6101c8600160a060020a03600435166024356104ae565b005b34156101d557600080fd5b610108600160a060020a036004351661054f565b34156101f457600080fd5b6101fc61056f565b60405190815260200160405180910390f35b341561021957600080fd5b6101c8600160a060020a0360043581169060243516604435610575565b341561024157600080fd5b61024961066e565b60405160ff909116815260200160405180910390f35b341561026a57600080fd5b610108600160a060020a0360043516602435610677565b341561028c57600080fd5b6101fc600160a060020a0360043516610783565b34156102ab57600080fd5b61010861079e565b34156102be57600080fd5b6102c6610823565b604051600160a060020a03909116815260200160405180910390f35b34156102ed57600080fd5b61012f610832565b341561030057600080fd5b6101c8600160a060020a036004351660243561089d565b341561032257600080fd5b61010860048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506108d395505050505050565b341561038757600080fd5b6101c860048035600160a060020a03169060248035916044359182019101356100f0565b34156103b657600080fd5b6101fc600160a060020a0360043581169060243516610908565b34156103db57600080fd5b6101c8600160a060020a0360043516610933565b60035474010000000000000000000000000000000000000000900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b505050505081565b80158015906104e15750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b156104eb57600080fd5b600160a060020a03338116600081815260026020908152604080832094871680845294909152908190208490557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b6000813b818111156105645760019150610569565b600091505b50919050565b60005481565b600160a060020a0380841660009081526002602090815260408083203385168452825280832054938616835260019091529020546105b9908363ffffffff6109ce16565b600160a060020a0380851660009081526001602052604080822093909355908616815220546105ee908363ffffffff6109e416565b600160a060020a038516600090815260016020526040902055610617818363ffffffff6109e416565b600160a060020a0380861660008181526002602090815260408083203386168452909152908190209390935590851691600080516020610dc68339815191529085905190815260200160405180910390a350505050565b60065460ff1681565b60035460009033600160a060020a0390811691161461069557600080fd5b60035474010000000000000000000000000000000000000000900460ff16156106bd57600080fd5b6000546106d0908363ffffffff6109ce16565b6000908155600160a060020a0384168152600160205260409020546106fb908363ffffffff6109ce16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a03166000600080516020610dc68339815191528460405190815260200160405180910390a350600192915050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a039081169116146107bc57600080fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b6108a5610db3565b6108ae8361054f565b156108c3576108be8383836109f6565b6108ce565b6108ce838383610c56565b505050565b60006108de8461054f565b156108f3576108ee8484846109f6565b6108fe565b6108fe848484610c56565b5060019392505050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461094e57600080fd5b600160a060020a038116151561096357600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156109dd57fe5b9392505050565b6000828211156109f057fe5b50900390565b600160a060020a033316600090815260016020526040812054610a1f908463ffffffff6109e416565b600160a060020a033381166000908152600160205260408082209390935590861681522054610a54908463ffffffff6109ce16565b600160a060020a03851660008181526001602052604090819020929092558592509063c0ee0b8a90339086908690518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b06578082015183820152602001610aee565b50505050905090810190601f168015610b335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515610b5357600080fd5b6102c65a03f11515610b6457600080fd5b50505083600160a060020a031633600160a060020a0316600080516020610dc68339815191528560405190815260200160405180910390a383600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610c15578082015183820152602001610bfd565b50505050905090810190601f168015610c425780820380516001836020036101000a031916815260200191505b50935050505060405180910390a350505050565b600160a060020a033316600090815260016020526040902054610c7f908363ffffffff6109e416565b600160a060020a033381166000908152600160205260408082209390935590851681522054610cb4908363ffffffff6109ce16565b600160a060020a038085166000818152600160205260409081902093909355913390911690600080516020610dc68339815191529085905190815260200160405180910390a382600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16848460405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610d73578082015183820152602001610d5b565b50505050905090810190601f168015610da05780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3505050565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582091edca49f38de7ac62e53358b86d19faa0195ed58e574468c5587e83e2663cf10029

Swarm Source

bzzr://91edca49f38de7ac62e53358b86d19faa0195ed58e574468c5587e83e2663cf1
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.