ETH Price: $2,450.90 (-2.39%)

Contract

0x094614f22C71c830FfD1be8Ac1FB62381DBEBCab
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer72360592019-02-18 12:22:422084 days ago1550492562IN
0x094614f2...81DBEBCab
0 ETH0.0005901915.645
Transfer72189272019-02-14 10:11:202088 days ago1550139080IN
0x094614f2...81DBEBCab
0 ETH0.000135966.000002
Transfer72189272019-02-14 10:11:202088 days ago1550139080IN
0x094614f2...81DBEBCab
0 ETH0.000136346.000002
Transfer72189272019-02-14 10:11:202088 days ago1550139080IN
0x094614f2...81DBEBCab
0 ETH0.000135966.000002
Transfer71294302019-01-26 14:18:292107 days ago1548512309IN
0x094614f2...81DBEBCab
0 ETH0.000045442.000002
Transfer71294302019-01-26 14:18:292107 days ago1548512309IN
0x094614f2...81DBEBCab
0 ETH0.000045442.000002
Transfer71294302019-01-26 14:18:292107 days ago1548512309IN
0x094614f2...81DBEBCab
0 ETH0.000045442.000002
Transfer71294302019-01-26 14:18:292107 days ago1548512309IN
0x094614f2...81DBEBCab
0 ETH0.000045442.000002
Transfer71294292019-01-26 14:18:172107 days ago1548512297IN
0x094614f2...81DBEBCab
0 ETH0.000045442.000002
Transfer71294292019-01-26 14:18:172107 days ago1548512297IN
0x094614f2...81DBEBCab
0 ETH0.000045322.000002
Transfer71294292019-01-26 14:18:172107 days ago1548512297IN
0x094614f2...81DBEBCab
0 ETH0.000045322.000002
Transfer69304422018-12-22 4:01:542143 days ago1545451314IN
0x094614f2...81DBEBCab
0 ETH0.000191735.1
Transfer68099142018-12-02 2:24:052163 days ago1543717445IN
0x094614f2...81DBEBCab
0 ETH0.000376610
Transfer68057742018-12-01 9:51:272163 days ago1543657887IN
0x094614f2...81DBEBCab
0 ETH0.000526610
Transfer68039932018-12-01 2:51:192164 days ago1543632679IN
0x094614f2...81DBEBCab
0 ETH0.0005216522.95621836
Transfer68004762018-11-30 12:57:272164 days ago1543582647IN
0x094614f2...81DBEBCab
0 ETH0.0007556720.1
Transfer68004172018-11-30 12:43:512164 days ago1543581831IN
0x094614f2...81DBEBCab
0 ETH0.0011058621
Transfer68003862018-11-30 12:37:202164 days ago1543581440IN
0x094614f2...81DBEBCab
0 ETH0.0008414322.34296875
Transfer68002152018-11-30 11:54:452164 days ago1543578885IN
0x094614f2...81DBEBCab
0 ETH0.001579830
Transfer67984722018-11-30 5:12:302165 days ago1543554750IN
0x094614f2...81DBEBCab
0 ETH0.000181288
Transfer67935422018-11-29 9:37:202165 days ago1543484240IN
0x094614f2...81DBEBCab
0 ETH0.0006311512
Transfer67932592018-11-29 8:30:342165 days ago1543480234IN
0x094614f2...81DBEBCab
0 ETH0.0002272410
Transfer67932492018-11-29 8:28:312165 days ago1543480111IN
0x094614f2...81DBEBCab
0 ETH0.0005799611
Transfer67932152018-11-29 8:20:072165 days ago1543479607IN
0x094614f2...81DBEBCab
0 ETH0.0002492611
Transfer67931832018-11-29 8:13:282165 days ago1543479208IN
0x094614f2...81DBEBCab
0 ETH0.000226610
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
67647702018-11-24 15:47:362170 days ago1543074456
0x094614f2...81DBEBCab
9.6 ETH
67647612018-11-24 15:45:212170 days ago1543074321
0x094614f2...81DBEBCab
75 ETH
67647482018-11-24 15:42:462170 days ago1543074166
0x094614f2...81DBEBCab
100 ETH
67647422018-11-24 15:41:252170 days ago1543074085
0x094614f2...81DBEBCab
100 ETH
67647402018-11-24 15:41:052170 days ago1543074065
0x094614f2...81DBEBCab
100 ETH
67647312018-11-24 15:38:542170 days ago1543073934
0x094614f2...81DBEBCab
100 ETH
67647232018-11-24 15:38:152170 days ago1543073895
0x094614f2...81DBEBCab
100 ETH
67647152018-11-24 15:37:042170 days ago1543073824
0x094614f2...81DBEBCab
100 ETH
67646902018-11-24 15:32:362170 days ago1543073556
0x094614f2...81DBEBCab
97 ETH
67646882018-11-24 15:32:022170 days ago1543073522
0x094614f2...81DBEBCab
100 ETH
67646832018-11-24 15:30:522170 days ago1543073452
0x094614f2...81DBEBCab
100 ETH
67646792018-11-24 15:29:572170 days ago1543073397
0x094614f2...81DBEBCab
100 ETH
67646782018-11-24 15:29:562170 days ago1543073396
0x094614f2...81DBEBCab
100 ETH
67646722018-11-24 15:28:282170 days ago1543073308
0x094614f2...81DBEBCab
100 ETH
67646672018-11-24 15:26:522170 days ago1543073212
0x094614f2...81DBEBCab
100 ETH
67646612018-11-24 15:25:362170 days ago1543073136
0x094614f2...81DBEBCab
100 ETH
67646582018-11-24 15:24:292170 days ago1543073069
0x094614f2...81DBEBCab
100 ETH
67646572018-11-24 15:24:282170 days ago1543073068
0x094614f2...81DBEBCab
100 ETH
67633162018-11-24 10:11:292170 days ago1543054289
0x094614f2...81DBEBCab
96 ETH
67633152018-11-24 10:11:212170 days ago1543054281
0x094614f2...81DBEBCab
100 ETH
67633112018-11-24 10:10:392170 days ago1543054239
0x094614f2...81DBEBCab
100 ETH
67633092018-11-24 10:09:532170 days ago1543054193
0x094614f2...81DBEBCab
100 ETH
67633062018-11-24 10:09:202170 days ago1543054160
0x094614f2...81DBEBCab
100 ETH
67633032018-11-24 10:08:542170 days ago1543054134
0x094614f2...81DBEBCab
100 ETH
67632982018-11-24 10:07:592170 days ago1543054079
0x094614f2...81DBEBCab
100 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x6fD9e809...8b6a6AdCD
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CryptojoyToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-10-29
*/

pragma solidity ^0.4.24;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts 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;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}


/**
 * @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 private _owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    _owner = msg.sender;
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(_owner);
    _owner = address(0);
  }

  /**
   * @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) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}


contract EIP20Interface {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    uint256 public totalSupply;

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) public view returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) public returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);

    // solhint-disable-next-line no-simple-event-func-name  
    event Transfer(address indexed _from, address indexed _to, uint256 _value); 
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/// @dev A standard ERC20 token (with 18 decimals) contract with manager
 /// @dev Tokens are initally minted in the contract address
contract standardToken is EIP20Interface, Ownable {
    using SafeMath for uint;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;

    uint8 public constant decimals = 18;  

    string public name;                    
    string public symbol;                
    uint public totalSupply;

    function transfer(address _to, uint _value) public returns (bool success) {
        require(balances[msg.sender] >= _value, "Insufficient balance");
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint _value) public returns (bool success) {
        uint allowance = allowed[_from][msg.sender];
        require(balances[_from] >= _value && allowance >= _value);
        balances[_to] = balances[_to].add(_value);
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

        emit Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) public view returns (uint balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

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

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender. *
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     */
    function increaseApproval(address _spender, uint _addedValue) public returns(bool)
    {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
    
    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender. *
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseApproval(address _spender, uint _subtractedValue) public returns(bool)
    {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue){
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        return true;
    }
}

/// @dev A standard token that is linked to another pairToken.
/// @dev The total supply of these two tokens should be the same.
/// @dev Sending one token to any of these two contract address
/// @dev using transfer method will result a receiving of 1:1 another token. 
contract pairToken is standardToken {
    using SafeMath for uint;

    address public pairAddress;

    bool public pairInitialized = false;

    /// @dev Set the pair token contract, can only excute once
    function initPair(address _pairAddress) public onlyOwner() {
        require(!pairInitialized, "Pair already initialized");
        pairAddress = _pairAddress;
        pairInitialized = true;
    }

    /// @dev Override
    /// @dev A special transfer function that, if the target is either this contract
    /// @dev or the pair token contract, the token will be sent to this contract, and
    /// @dev 1:1 pair tokens are sent to the sender.
    /// @dev When the target address are other than the two paired token address,
    /// @dev this function behaves exactly the same as in a standard ERC20 token.
    function transfer(address _to, uint _value) public returns (bool success) {
        require(balances[msg.sender] >= _value, "Insufficient balance");
        balances[msg.sender] = balances[msg.sender].sub(_value);
        if (_to == pairAddress || _to == address(this)) {
            balances[address(this)] = balances[address(this)].add(_value);
            pairToken(pairAddress).pairTransfer(msg.sender, _value);
            emit Exchange(msg.sender, address(this), _value);
            emit Transfer(msg.sender, _to, _value);
        } else {
            balances[_to] = balances[_to].add(_value);
            emit Transfer(msg.sender, _to, _value);
        }
        return true;
    } 

    /// @dev Function called by pair token to excute 1:1 exchange of the token.
    function pairTransfer(address _to, uint _value) external returns (bool success) {
        require(msg.sender == pairAddress, "Only token pairs can transfer");
        balances[address(this)] = balances[address(this)].sub(_value);
        balances[_to] = balances[_to].add(_value);
        return true;
    }

    event Exchange(address indexed _from, address _tokenAddress, uint _value);
}

/// @dev A pair token that can be mint by sending ether into this contract.
/// @dev The price of the token follows price = a*log(t)+b, where a and b are
/// @dev two parameters to be set, and t is the current round depends on current
/// @dev block height.
contract CryptojoyToken is pairToken {
    using SafeMath for uint;

    string public name = "cryptojoy token";                    
    string public symbol = "CJT";                
    uint public totalSupply = 10**10 * 10**18; // 1 billion
    uint public miningSupply; // minable part

    uint constant MAGNITUDE = 10**6;
    uint constant LOG1DOT5 = 405465; // log(1.5) under MAGNITUDE
    uint constant THREE_SECOND= 15 * MAGNITUDE / 10; // 1.5 under MAGNITUDE
    uint constant MINING_INTERVAL = 365; // number of windows that the price is fixed

    uint public a; // paremeter a of the price fuction price = a*log(t)+b, 18 decimals
    uint public b; // paremeter b of the price fuction price = a*log(t)+b, 18 decimals
    uint public blockInterval; // number of blocks where the token price is fixed
    uint public startBlockNumber; // The starting block that the token can be mint.

    address public platform;
    uint public lowerBoundaryETH; // Refuse incoming ETH lower than this value
    uint public upperBoundaryETH; // Refuse incoming ETH higher than this value

    uint public supplyPerInterval; // miningSupply / MINING_INTERVAL
    uint public tokenMint = 0;

    bool paraInitialized = false;

    /// @param _beneficiary Address to send the remaining tokens
    /// @param _miningSupply Amount of tokens of mining
    constructor(
        address _beneficiary, 
        uint _miningSupply)
        public {
        require(_miningSupply < totalSupply, "Insufficient total supply");
        miningSupply = _miningSupply;
        uint _amount = totalSupply.sub(_miningSupply);
        balances[address(this)] = miningSupply;
        balances[_beneficiary] = _amount;
        supplyPerInterval = miningSupply / MINING_INTERVAL;
    }


    /// @dev sets boundaries for incoming tx
    /// @dev from FoMo3Dlong
    modifier isWithinLimits(uint _eth) {
        require(_eth >= lowerBoundaryETH, "pocket lint: not a valid currency");
        require(_eth <= upperBoundaryETH, "no vitalik, no");
        _;
    }

    /// @dev Initialize the token mint parameters
    /// @dev Can only be excuted once.
    function initPara(
        uint _a, 
        uint _b, 
        uint _blockInterval, 
        uint _startBlockNumber,
        address _platform,
        uint _lowerBoundaryETH,
        uint _upperBoundaryETH) 
        public 
        onlyOwner {
        require(!paraInitialized, "Parameters are already set");
        require(_lowerBoundaryETH < _upperBoundaryETH, "Lower boundary is larger than upper boundary!");
        a = _a;
        b = _b;
        blockInterval = _blockInterval;
        startBlockNumber = _startBlockNumber;

        platform = _platform;
        lowerBoundaryETH = _lowerBoundaryETH;
        upperBoundaryETH = _upperBoundaryETH;

        paraInitialized = true;
    }

    function changeWithdraw(address _platform) public onlyOwner {
        platform = _platform;
    }

    /// @dev Mint token based on the current token price.
    /// @dev The token number is limited during each interval.
    function buy() public isWithinLimits(msg.value) payable {
        uint currentStage = getCurrentStage(); // from 1 to MINING_INTERVAL
        require(tokenMint < currentStage.mul(supplyPerInterval), "No token avaiable");
        uint currentPrice = calculatePrice(currentStage); // 18 decimal
        uint amountToBuy = msg.value.mul(10**uint(decimals)).div(currentPrice);
        
        if(tokenMint.add(amountToBuy) > currentStage.mul(supplyPerInterval)) {
            amountToBuy = currentStage.mul(supplyPerInterval).sub(tokenMint);
            balances[address(this)] = balances[address(this)].sub(amountToBuy);
            balances[msg.sender] = balances[msg.sender].add(amountToBuy);
            tokenMint = tokenMint.add(amountToBuy);
            uint refund = msg.value.sub(amountToBuy.mul(currentPrice).div(10**uint(decimals)));
            msg.sender.transfer(refund);          
            platform.transfer(msg.value.sub(refund)); 
        } else {
            balances[address(this)] = balances[address(this)].sub(amountToBuy);
            balances[msg.sender] = balances[msg.sender].add(amountToBuy);
            tokenMint = tokenMint.add(amountToBuy);
            platform.transfer(msg.value);
        }
        emit Buy(msg.sender, amountToBuy);
    }

    function() public payable {
        buy();
    }

    /// @dev Shows the remaining token of the current token mint phase
    function tokenRemain() public view returns (uint) {
        uint currentStage = getCurrentStage();
        return currentStage * supplyPerInterval - tokenMint;
    }

    /// @dev Get the current token mint phase between 1 and MINING_INTERVAL
    function getCurrentStage() public view returns (uint) {
        require(block.number >= startBlockNumber, "Not started yet");
        uint currentStage = (block.number.sub(startBlockNumber)).div(blockInterval) + 1;
        if (currentStage <= MINING_INTERVAL) {
            return currentStage;
        } else {
            return MINING_INTERVAL;
        }
    }

    /// @dev Return the price of one token during the nth stage
    /// @param stage Current stage from 1 to 365
    /// @return Price per token
    function calculatePrice(uint stage) public view returns (uint) {
        return a.mul(log(stage.mul(MAGNITUDE))).div(MAGNITUDE).add(b);
    }

    /// @dev Return the e based logarithm of x demonstrated by Vitalik
    /// @param input The actual input (>=1) times MAGNITUDE
    /// @return result The actual output times MAGNITUDE
    function log(uint input) internal pure returns (uint) {
        uint x = input;
        require(x >= MAGNITUDE);
        if (x == MAGNITUDE) {
            return 0;
        }
        uint result = 0;
        while (x >= THREE_SECOND) {
            result += LOG1DOT5;
            x = x * 2 / 3;
        }
        
        x = x - MAGNITUDE;
        uint y = x;
        uint i = 1;
        while (i < 10) {
            result = result + (y / i);
            i += 1;
            y = y * x / MAGNITUDE;
            result = result - (y / i);
            i += 1;
            y = y * x / MAGNITUDE;
        }
        
        return result;
    }

    event Buy(address indexed _buyer, uint _value);
}

contract CryptojoyStock is pairToken {


    string public name = "cryptojoy stock";                    
    string public symbol = "CJS";                
    uint public totalSupply = 10**10 * 10**18;

    constructor() public {
        balances[address(this)] = totalSupply;
    } 

}

Contract Security Audit

Contract ABI

[{"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":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"a","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lowerBoundaryETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyPerInterval","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_value","type":"uint256"}],"name":"pairTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenRemain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"platform","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"b","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upperBoundaryETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"renounceOwnership","outputs":[],"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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pairInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"pairAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"stage","type":"uint256"}],"name":"calculatePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenMint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockInterval","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_platform","type":"address"}],"name":"changeWithdraw","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":true,"inputs":[],"name":"getCurrentStage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pairAddress","type":"address"}],"name":"initPair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"uint256"},{"name":"_b","type":"uint256"},{"name":"_blockInterval","type":"uint256"},{"name":"_startBlockNumber","type":"uint256"},{"name":"_platform","type":"address"},{"name":"_lowerBoundaryETH","type":"uint256"},{"name":"_upperBoundaryETH","type":"uint256"}],"name":"initPara","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_miningSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_buyer","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_tokenAddress","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Exchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"_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"}]

Deployed Bytecode

0x6080604052600436106101cc5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101d6578063095ea7b3146102605780630dbe671f1461029857806314de72cc146102bf57806318160ddd146102d457806323b872dd146102e957806327e235e3146103135780632e89b83b14610334578063313ce5671461034957806338c4d4a61461037457806342c7551e14610398578063498a4c2d146103ad5780634bde38c8146103c25780634df7e3d0146103f35780635c65816514610408578063661884631461042f578063691cc1671461045357806370a0823114610468578063715018a6146104895780638da5cb5b1461049e5780638f32d59b146104b357806394d249db146104c857806395d89b41146104dd578063a4cc1953146104f2578063a6f2ae3a146101cc578063a8b0898214610507578063a9059cbb1461051c578063ae10426514610540578063af25c07714610558578063c4c22e981461056d578063d73dd62314610582578063dcf6d0d2146105a6578063dd62ed3e146105c7578063eedbe31d146105ee578063f2fde38b14610603578063f4929cc514610624578063fd9e212014610645575b6101d4610678565b005b3480156101e257600080fd5b506101eb610a5f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022557818101518382015260200161020d565b50505050905090810190601f1680156102525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026c57600080fd5b50610284600160a060020a0360043516602435610aed565b604080519115158252519081900360200190f35b3480156102a457600080fd5b506102ad610b53565b60408051918252519081900360200190f35b3480156102cb57600080fd5b506102ad610b59565b3480156102e057600080fd5b506102ad610b5f565b3480156102f557600080fd5b50610284600160a060020a0360043581169060243516604435610b65565b34801561031f57600080fd5b506102ad600160a060020a0360043516610cb8565b34801561034057600080fd5b506102ad610cca565b34801561035557600080fd5b5061035e610cd0565b6040805160ff9092168252519081900360200190f35b34801561038057600080fd5b50610284600160a060020a0360043516602435610cd5565b3480156103a457600080fd5b506102ad610dae565b3480156103b957600080fd5b506102ad610dcb565b3480156103ce57600080fd5b506103d7610dd1565b60408051600160a060020a039092168252519081900360200190f35b3480156103ff57600080fd5b506102ad610de0565b34801561041457600080fd5b506102ad600160a060020a0360043581169060243516610de6565b34801561043b57600080fd5b50610284600160a060020a0360043516602435610e03565b34801561045f57600080fd5b506102ad610e99565b34801561047457600080fd5b506102ad600160a060020a0360043516610e9f565b34801561049557600080fd5b506101d4610eba565b3480156104aa57600080fd5b506103d7610f24565b3480156104bf57600080fd5b50610284610f33565b3480156104d457600080fd5b50610284610f44565b3480156104e957600080fd5b506101eb610f65565b3480156104fe57600080fd5b506102ad610fc0565b34801561051357600080fd5b506103d7610fc6565b34801561052857600080fd5b50610284600160a060020a0360043516602435610fd5565b34801561054c57600080fd5b506102ad600435611265565b34801561056457600080fd5b506102ad6112b2565b34801561057957600080fd5b506102ad6112b8565b34801561058e57600080fd5b50610284600160a060020a03600435166024356112be565b3480156105b257600080fd5b506101d4600160a060020a0360043516611357565b3480156105d357600080fd5b506102ad600160a060020a0360043581169060243516611399565b3480156105fa57600080fd5b506102ad6113c4565b34801561060f57600080fd5b506101d4600160a060020a036004351661145e565b34801561063057600080fd5b506101d4600160a060020a036004351661147d565b34801561065157600080fd5b506101d4600435602435604435606435600160a060020a036084351660a43560c435611562565b600080600080346011548110151515610701576040805160e560020a62461bcd02815260206004820152602160248201527f706f636b6574206c696e743a206e6f7420612076616c69642063757272656e6360448201527f7900000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60125481111561075b576040805160e560020a62461bcd02815260206004820152600e60248201527f6e6f20766974616c696b2c206e6f000000000000000000000000000000000000604482015290519081900360640190fd5b6107636113c4565b945061077a601354866116a390919063ffffffff16565b601454106107d2576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f20746f6b656e206176616961626c65000000000000000000000000000000604482015290519081900360640190fd5b6107db85611265565b9350610805846107f934670de0b6b3a764000063ffffffff6116a316565b9063ffffffff6116d816565b925061081c601354866116a390919063ffffffff16565b60145461082f908563ffffffff6116fb16565b11156109785761085c601454610850601354886116a390919063ffffffff16565b9063ffffffff61170d16565b3060009081526002602052604090205490935061087f908463ffffffff61170d16565b306000908152600260205260408082209290925533815220546108a8908463ffffffff6116fb16565b336000908152600260205260409020556014546108cb908463ffffffff6116fb16565b6014556108fa6108ed670de0b6b3a76400006107f9868863ffffffff6116a316565b349063ffffffff61170d16565b604051909250339083156108fc029084906000818181858888f1935050505015801561092a573d6000803e3d6000fd5b50601054600160a060020a03166108fc61094a348563ffffffff61170d16565b6040518115909202916000818181858888f19350505050158015610972573d6000803e3d6000fd5b50610a22565b30600090815260026020526040902054610998908463ffffffff61170d16565b306000908152600260205260408082209290925533815220546109c1908463ffffffff6116fb16565b336000908152600260205260409020556014546109e4908463ffffffff6116fb16565b601455601054604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610a20573d6000803e3d6000fd5b505b60408051848152905133917fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e919081900360200190a25050505050565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ae55780601f10610aba57610100808354040283529160200191610ae5565b820191906000526020600020905b815481529060010190602001808311610ac857829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600c5481565b60115481565b600a5481565b600160a060020a038316600081815260036020908152604080832033845282528083205493835260029091528120549091908311801590610ba65750828110155b1515610bb157600080fd5b600160a060020a038416600090815260026020526040902054610bda908463ffffffff6116fb16565b600160a060020a038086166000908152600260205260408082209390935590871681522054610c0f908463ffffffff61170d16565b600160a060020a0386166000908152600260209081526040808320939093556003815282822033835290522054610c4c908463ffffffff61170d16565b600160a060020a03808716600081815260036020908152604080832033845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506001949350505050565b60026020526000908152604090205481565b60135481565b601281565b600754600090600160a060020a03163314610d3a576040805160e560020a62461bcd02815260206004820152601d60248201527f4f6e6c7920746f6b656e2070616972732063616e207472616e73666572000000604482015290519081900360640190fd5b30600090815260026020526040902054610d5a908363ffffffff61170d16565b3060009081526002602052604080822092909255600160a060020a03851681522054610d8c908363ffffffff6116fb16565b600160a060020a03841660009081526002602052604090205550600192915050565b600080610db96113c4565b905060145460135482020391505b5090565b600f5481565b601054600160a060020a031681565b600d5481565b600360209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a038616845290915281205480831115610e5857336000908152600360209081526040808320600160a060020a0388168452909152812055610e8d565b610e68818463ffffffff61170d16565b336000908152600360209081526040808320600160a060020a03891684529091529020555b600191505b5092915050565b60125481565b600160a060020a031660009081526002602052604090205490565b610ec2610f33565b1515610ecd57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031690565b600154600160a060020a0316331490565b60075474010000000000000000000000000000000000000000900460ff1681565b6009805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ae55780601f10610aba57610100808354040283529160200191610ae5565b600b5481565b600754600160a060020a031681565b3360009081526002602052604081205482111561103c576040805160e560020a62461bcd02815260206004820152601460248201527f496e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b3360009081526002602052604090205461105c908363ffffffff61170d16565b33600090815260026020526040902055600754600160a060020a03848116911614806110905750600160a060020a03831630145b156111dd57306000908152600260205260409020546110b5908363ffffffff6116fb16565b3060009081526002602090815260408083209390935560075483517f38c4d4a6000000000000000000000000000000000000000000000000000000008152336004820152602481018790529351600160a060020a03909116936338c4d4a69360448083019493928390030190829087803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b505050506040513d602081101561115c57600080fd5b50506040805130815260208101849052815133927f477b65cf658c5207a9d60bb5ebe4f60a504af024949bdffa6efc396d01ced3f6928290030190a2604080518381529051600160a060020a0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a361125c565b600160a060020a038316600090815260026020526040902054611206908363ffffffff6116fb16565b600160a060020a0384166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35b50600192915050565b600d546000906112ac906112a0620f42406107f961129161128c888463ffffffff6116a316565b611724565b600c549063ffffffff6116a316565b9063ffffffff6116fb16565b92915050565b60145481565b600e5481565b336000908152600360209081526040808320600160a060020a03861684529091528120546112f2908363ffffffff6116fb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61135f610f33565b151561136a57600080fd5b6010805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600080600f544310151515611423576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f742073746172746564207965740000000000000000000000000000000000604482015290519081900360640190fd5b61143e600e546107f9600f544361170d90919063ffffffff16565b600101905061016d811161145457809150610dc7565b61016d9150610dc7565b611466610f33565b151561147157600080fd5b61147a816117d9565b50565b611485610f33565b151561149057600080fd5b60075474010000000000000000000000000000000000000000900460ff1615611503576040805160e560020a62461bcd02815260206004820152601860248201527f5061697220616c726561647920696e697469616c697a65640000000000000000604482015290519081900360640190fd5b6007805474ff000000000000000000000000000000000000000019600160a060020a0390931673ffffffffffffffffffffffffffffffffffffffff19909116179190911674010000000000000000000000000000000000000000179055565b61156a610f33565b151561157557600080fd5b60155460ff16156115d0576040805160e560020a62461bcd02815260206004820152601a60248201527f506172616d65746572732061726520616c726561647920736574000000000000604482015290519081900360640190fd5b80821061164d576040805160e560020a62461bcd02815260206004820152602d60248201527f4c6f77657220626f756e64617279206973206c6172676572207468616e20757060448201527f70657220626f756e646172792100000000000000000000000000000000000000606482015290519081900360840190fd5b600c96909655600d94909455600e92909255600f556010805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790556011556012556015805460ff19166001179055565b6000808315156116b65760009150610e92565b508282028284828115156116c657fe5b04146116d157600080fd5b9392505050565b6000808083116116e757600080fd5b82848115156116f257fe5b04949350505050565b6000828201838110156116d157600080fd5b6000808383111561171d57600080fd5b5050900390565b600081818080620f424084101561173a57600080fd5b620f424084141561174e57600094506117d0565b600092505b6216e36084106117745762062fd99290920191600360028502049350611753565b5050620f423f19909101908160015b600a8110156117cc57808281151561179757fe5b049290920191600101620f424082850204915080828115156117b557fe5b0490920391600101620f4240828502049150611783565b8294505b50505050919050565b600160a060020a03811615156117ee57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582051dbc7b9cee7a6d178384694ae5e98960d7a457d3ae780abebfd2380f87b61100029

Swarm Source

bzzr://51dbc7b9cee7a6d178384694ae5e98960d7a457d3ae780abebfd2380f87b6110

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.