Contract 0x229D79350dd75b606DF014FBfBd48f9f44EB9890

 
 
Txn Hash
Method
Block
From
To
Value
0x85afd2f5234356ba0f91b95e102e809bee68822aa68a3a66bfec076de777834bTransfer128636252021-07-20 13:18:26505 days 14 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.0011982621
0x7f4acba3aebe703928c6d0c1aaf26d6a943e0104d0d4dcff1da4a7a952b40dc4Transfer103959462020-07-04 23:40:37886 days 4 hrs ago0x8c0ab46425ea90a141e75280138173d0cdb9557b IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.0004843421
0x3dc46ba28962738dacb8f2fd723502d9c40a821e4f84c660a04432a419fe9ed9Transfer103947662020-07-04 19:25:44886 days 8 hrs ago0x8c0ab46425ea90a141e75280138173d0cdb9557b IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.0004612820
0x939fbfcd6e1acb632910a2b4243cff5ea80bd1ccaaa1c1105db8323b67fd5b2aTransfer102828642020-06-17 11:04:49903 days 16 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.0019056334
0xa8038317a31ccff23cd0b8359edb96f459b2cd5a9ec7cb8639bb70362f853ec1Transfer99888692020-05-02 20:14:21949 days 7 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000168183
0xe230dd57fbe98e47330482fcf09bf7e714d6bd787b021a91aecf5bb077c323c4Transfer99888682020-05-02 20:14:16949 days 7 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000112122
0x9f4513775adc2cbe410319fb4ac4cad38e6ff0a3dae6eabcc99fb0628d91c3aaTransfer97368362020-03-24 22:36:28988 days 5 hrs ago0x1291d8045a5a7277aaa15c51e3814a5bb3953ba7 IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000058812.20000023
0xa0a5f5b35838d6aae23542f5234798f5ea2276fa41d1a36496d58f127ff6169aTransfer97367702020-03-24 22:24:48988 days 5 hrs ago0x1291d8045a5a7277aaa15c51e3814a5bb3953ba7 IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000058812.20000023
0x316b0811a34a4e8f979b48e475822e98ac89f5db18d735de10f68813f41e7603Transfer97224402020-03-22 16:34:50990 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000168183
0x7f22be91b82c38f9c83a6a1d4a707431d2c8f888ba027bebe57d63d41a0f54b3Transfer97223962020-03-22 16:25:05990 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000168183
0x396dd6e700d2e7396c3308a059fd44ecf8f62e5e7c76b8f3710447584de604edTransfer97223212020-03-22 16:10:43990 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000168183
0xd2f9497767f3f17317558d6eefdbceeeb98c7c2e303df29949372af8e56da414Transfer94827522020-02-14 18:26:551027 days 9 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0xff449cfadb0152dd5af49343620711acbf5c299d266241defac30627435190dbTransfer94827052020-02-14 18:17:391027 days 9 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0xd24df89b3b6277095d0002e6883d22b9c059ea85acdd74be8b93ce3e554492baTransfer94826562020-02-14 18:06:361027 days 9 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000224244
0x7cf9c1e26f19d9ccecfb52553d22003f27486fc873aa79702b260373066818c2Transfer94825842020-02-14 17:50:021027 days 10 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0x3f3147a60c1522e30607ef07d5a6b6690a3b160ca40ac51d125eb2cb388f3403Transfer94825662020-02-14 17:44:351027 days 10 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0xbb804e35fadced412c47a47b25ac3a6a79136269919fa292d61c6574ec7f9ec5Transfer94825052020-02-14 17:29:021027 days 10 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000082072
0xb507b1f0c8eb3f51420e9b3edab09658b678b256ab40a040543c9c5960043c51Transfer94823222020-02-14 16:46:041027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000123143
0x6799a2788c65c52ca7996076fca7871130cd205a250b2f99151f9fcb8b264321Transfer94823012020-02-14 16:42:161027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000123183
0xa33deba6d3e08ae7eb310589e7f8a5cf29565e855a923c18ed189d6cd38a7433Transfer94822822020-02-14 16:38:001027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0x764c5f4db3d088df9ec3825da4fc347aeb7dadf99f5bdac8956c2e1a9e9fe48bTransfer94822402020-02-14 16:30:271027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0x28b6cbf36a2a382f4d0e7ec5ad4434ddf7113cf3445d94068f1d050bc8dd9377Transfer94822012020-02-14 16:22:551027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.00020535
0x5ec90ca352afa154e2d79691d017097284daf958a9b0a20397e5bfed7f790b47Transfer94821572020-02-14 16:13:071027 days 11 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000164244
0xf704695a7243980377910d3e6f62edf33e713d4b0e02295888cad48c91f744d7Transfer94819542020-02-14 15:29:451027 days 12 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000082122
0x2191a809bef0913d65628b0b1d89bfa9f93f3f7214dfe0aa6497af156cb179d3Transfer91614022019-12-25 15:40:081078 days 12 hrs agoCINEMADROM: Deployer IN  0x229d79350dd75b606df014fbfbd48f9f44eb98900 Ether0.000056061
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LutToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MPL-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-03-06
*/

pragma solidity >=0.4.22 <0.6.0;

/**
 * The contract controls the ownership and transfer of LUT tokens.
 * The contract fully complies with the ERC20 standard (https://en.wikipedia.org/wiki/ERC-20).
 * The contract provides:
 * - prohibition of transfer of tokens between their owners until the completion of ICO
 * - transfer of tokens by the investor when buying on ICO through a Crowdsale contract
*/

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

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

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  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;
  }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool); 
  event Transfer(address indexed from, address indexed to, uint256 value);
  
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
    
}

/**
 * @title DetailedERC20 token
 * @dev The decimals are only for visualization purposes.
 * All the operations are done using the smallest and indivisible token unit,
 * just as on Ethereum all the operations are done in wei.
 */
contract DetailedERC20 is ERC20 {
  string public name;
  string public symbol;
  uint8 public decimals;

  constructor(string _name, string _symbol, uint8 _decimals) public {
    name = _name;
    symbol = _symbol;
    decimals = _decimals;
  }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure 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 a / b;
  }

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

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

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256) {
    return balances[_owner];
  }

}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

  event Burn(address indexed burner, uint256 value);

  /**
   * @dev Burns a specific amount of tokens.
   * @param _value The amount of token to be burned.
   */
  function burn(uint256 _value) public {
    _burn(msg.sender, _value);
  }

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
    // no need to require value <= totalSupply, since that would imply the
    // sender's balance is greater than the totalSupply, which *should* be an assertion failure

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}

contract LutTokenInterface is ERC20 {
  bool public freeze;
  function burn(uint256 _value) public;
  function setSale(address _sale) public;
  function thaw() external;
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    public
    returns (bool)
  {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(
    address _owner,
    address _spender
   )
    public
    view
    returns (uint256)
  {
    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);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}


/**
 * Upgrade agent interface inspired by Lunyr.
 *
 * Upgrade agent transfers tokens to a new contract.
 * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting.
 */
contract UpgradeAgent {

  uint256 public originalSupply;

  /** Interface marker */
  function isUpgradeAgent() public pure returns (bool) {
    return true;
  }

  function upgradeFrom(address _from, uint256 _value) public;
}

/**
 * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision.
 *
 * First envisioned by Golem and Lunyr projects.
 */
contract UpgradeableToken is StandardToken {
  using SafeMath for uint256;

  /** Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. */
  address public upgradeMaster;

  /** The next contract where the tokens will be migrated. */
  UpgradeAgent public upgradeAgent;

  /** How many tokens we have upgraded by now. */
  uint256 public totalUpgraded;

  /**
   * Upgrade states.
   *
   * - NotAllowed: The child contract has not reached a condition where the upgrade can begun
   * - WaitingForAgent: Token allows upgrade, but we don't have a new agent yet
   * - ReadyToUpgrade: The agent is set, but not a single token has been upgraded yet
   * - Upgrading: Upgrade agent is set and the balance holders can upgrade their tokens
   *
   */
  enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading}

  /**
   * Somebody has upgraded some of his tokens.
   */
  event Upgrade(address indexed _from, address indexed _to, uint256 _value);

  /**
   * New upgrade agent available.
   */
  event UpgradeAgentSet(address agent);

  /**
   * Do not allow construction without upgrade master set.
   */
  constructor (address _upgradeMaster) public {
    upgradeMaster = _upgradeMaster;
  }

  /**
   * Allow the token holder to upgrade some of their tokens to a new contract.
   */
  function upgrade(uint256 value) public {
    require(value > 0);
    require(balances[msg.sender] >= value);
    UpgradeState state = getUpgradeState();
    require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading);
    
    balances[msg.sender] = balances[msg.sender].sub(value);
    // Take tokens out from circulation
    totalSupply_ = totalSupply_.sub(value);
    totalUpgraded = totalUpgraded.add(value);

    // Upgrade agent reissues the tokens
    upgradeAgent.upgradeFrom(msg.sender, value);
    emit Upgrade(msg.sender, upgradeAgent, value);
  }

  /**
   * Set an upgrade agent that handles
   */
  function setUpgradeAgent(address agent) external {
    require(agent != address(0));
    require(canUpgrade());
    // Only a master can designate the next agent
    require(msg.sender == upgradeMaster);
    // Upgrade has already begun for an agent
    require(getUpgradeState() != UpgradeState.Upgrading);

    upgradeAgent = UpgradeAgent(agent);

    // Bad interface
    require(upgradeAgent.isUpgradeAgent());
    // Make sure that token supplies match in source and target
    require(upgradeAgent.originalSupply() == totalSupply_);

    emit UpgradeAgentSet(upgradeAgent);
  }

  /**
   * Get the state of the token upgrade.
   */
  function getUpgradeState() public view returns(UpgradeState) {
    if (!canUpgrade()) {
      return UpgradeState.NotAllowed;
    } else if (upgradeAgent == address(0)) { 
      return UpgradeState.WaitingForAgent; 
    } else if (totalUpgraded == 0) {
      return UpgradeState.ReadyToUpgrade;
    }
    return UpgradeState.Upgrading;
  }

  /**
   * Change the upgrade master.
   *
   * This allows us to set a new owner for the upgrade mechanism.
   */
  function setUpgradeMaster(address master) public {
    require(master != address(0));
    require(msg.sender == upgradeMaster);
    upgradeMaster = master;
  }

  /**
   * Child contract can enable to provide the condition when the upgrade can begun.
   */
  function canUpgrade() public pure returns(bool) {
    return true;
  }
}

contract LutToken is LutTokenInterface, UpgradeableToken, DetailedERC20, BurnableToken, Pausable {
  using SafeMath for uint256;


  /// @notice set of sale account which can freeze tokens
  address public sale;
  


  /// @notice when true - all tokens are frozen and only sales or contract owner can move their tokens
  ///         when false - all tokens are unfrozen and can be moved by their owners
  bool public frozen = true;

  /// @dev makes transfer possible if tokens are unfrozen OR if the caller is a sale account
  modifier saleOrUnfrozen() {
    require((frozen == false) || msg.sender == sale || msg.sender == owner || !freeze);
    _;
  }

  /// @dev allowance to call method only if the caller is a sale account
  modifier onlySale() {
    require(msg.sender == sale || msg.sender == owner);
    _;
  }

  constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) 
      public 
      UpgradeableToken(msg.sender)
      DetailedERC20(_name, _symbol, _decimals) 
  {
    totalSupply_ = _totalSupply;
    balances[msg.sender] = totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value)
      public 
      whenNotPaused 
      saleOrUnfrozen
      returns (bool) 
  {
    super.transfer(_to, _value);
  }

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value)
      public
      whenNotPaused
      saleOrUnfrozen
      returns (bool) 
  {
    super.transferFrom(_from, _to, _value);
  }

  function setSale(address _sale) public onlyOwner {
    frozen = true;
    sale = _sale;
  }

  function setFreeze(bool newFreeze) public onlyOwner {
  freeze = newFreeze;
  }

  /// @notice Make transfer of tokens available to everyone
  function thaw() external onlySale {
    frozen = false;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"frozen","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":[{"name":"","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":[{"name":"","type":"bool"}],"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":"_sale","type":"address"}],"name":"setSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"thaw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"freeze","outputs":[{"name":"","type":"bool"}],"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":"sale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newFreeze","type":"bool"}],"name":"setFreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","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":"agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","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":"master","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"UpgradeAgentSet","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"}]

60806040526009805460a860020a60ff0219169055600a805460a060020a60ff021916740100000000000000000000000000000000000000001790553480156200004857600080fd5b506040516200178138038062001781833981016040908152815160208084015192840151606085015160048054600160a060020a03191633179055928501805190959490940193909291859185918591620000aa91600791908601906200010e565b508151620000c09060089060208501906200010e565b506009805433610100810261010060a860020a031960ff90951660ff199093169290921793909316179055600284905560009081526001602052604090209290925550620001b39350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015157805160ff191683800117855562000181565b8280016001018555821562000181579182015b828111156200018157825182559160200191906001019062000164565b506200018f92915062000193565b5090565b620001b091905b808211156200018f57600081556001016200019a565b90565b6115be80620001c36000396000f3006080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663054f7d9c811461019a57806306fdde03146101c3578063095ea7b31461024d57806318160ddd1461027157806323b872dd14610298578063313ce567146102c257806336af50fd146102ed5780633f4ba83a1461031057806342966c681461032557806345977d031461033d5780635920375c146103555780635c975abb1461036a5780635de4ccb01461037f578063600440cb146103b057806362a5af3b146103c557806366188463146103da5780636ad1fe02146103fe57806370a0823114610413578063715018a6146104345780638444b391146104495780638456cb59146104825780638da5cb5b1461049757806395d89b41146104ac5780639738968c146104c1578063a9059cbb146104d6578063c0d5536f146104fa578063c752ff6214610514578063d73dd62314610529578063d7e7088a1461054d578063dd62ed3e1461056e578063f2fde38b14610595578063ffeb7d75146105b6575b600080fd5b3480156101a657600080fd5b506101af6105d7565b604080519115158252519081900360200190f35b3480156101cf57600080fd5b506101d86105f8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025957600080fd5b506101af600160a060020a0360043516602435610686565b34801561027d57600080fd5b506102866106ec565b60408051918252519081900360200190f35b3480156102a457600080fd5b506101af600160a060020a03600435811690602435166044356106f3565b3480156102ce57600080fd5b506102d7610787565b6040805160ff9092168252519081900360200190f35b3480156102f957600080fd5b5061030e600160a060020a0360043516610790565b005b34801561031c57600080fd5b5061030e61080c565b34801561033157600080fd5b5061030e60043561088a565b34801561034957600080fd5b5061030e600435610897565b34801561036157600080fd5b5061030e610a24565b34801561037657600080fd5b506101af610a77565b34801561038b57600080fd5b50610394610a87565b60408051600160a060020a039092168252519081900360200190f35b3480156103bc57600080fd5b50610394610a96565b3480156103d157600080fd5b506101af610aa5565b3480156103e657600080fd5b506101af600160a060020a0360043516602435610aae565b34801561040a57600080fd5b50610394610ba0565b34801561041f57600080fd5b50610286600160a060020a0360043516610baf565b34801561044057600080fd5b5061030e610bca565b34801561045557600080fd5b5061045e610c42565b6040518082600481111561046e57fe5b60ff16815260200191505060405180910390f35b34801561048e57600080fd5b5061030e610c8b565b3480156104a357600080fd5b50610394610d0e565b3480156104b857600080fd5b506101d8610d22565b3480156104cd57600080fd5b506101af610d7d565b3480156104e257600080fd5b506101af600160a060020a0360043516602435610d82565b34801561050657600080fd5b5061030e6004351515610e0d565b34801561052057600080fd5b50610286610e3c565b34801561053557600080fd5b506101af600160a060020a0360043516602435610e42565b34801561055957600080fd5b5061030e600160a060020a0360043516610edb565b34801561057a57600080fd5b50610286600160a060020a03600435811690602435166110dc565b3480156105a157600080fd5b5061030e600160a060020a0360043516611107565b3480156105c257600080fd5b5061030e600160a060020a036004351661112c565b600a5474010000000000000000000000000000000000000000900460ff1681565b6007805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6002545b90565b60095460009060a860020a900460ff161561070d57600080fd5b600a5474010000000000000000000000000000000000000000900460ff1615806107415750600a54600160a060020a031633145b8061075b57506009546101009004600160a060020a031633145b80610769575060005460ff16155b151561077457600080fd5b61077f848484611187565b509392505050565b60095460ff1681565b6009546101009004600160a060020a031633146107ac57600080fd5b600a80547401000000000000000000000000000000000000000074ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6009546101009004600160a060020a0316331461082857600080fd5b60095460a860020a900460ff16151561084057600080fd5b6009805475ff000000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6108943382611300565b50565b60008082116108a557600080fd5b336000908152600160205260409020548211156108c157600080fd5b6108c9610c42565b905060038160048111156108d957fe5b14806108f0575060048160048111156108ee57fe5b145b15156108fb57600080fd5b3360009081526001602052604090205461091b908363ffffffff61140116565b3360009081526001602052604090205560025461093e908363ffffffff61140116565b600255600654610954908363ffffffff61141316565b600655600554604080517f753e88e5000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163753e88e59160448082019260009290919082900301818387803b1580156109c357600080fd5b505af11580156109d7573d6000803e3d6000fd5b5050600554604080518681529051600160a060020a0390921693503392507f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac919081900360200190a35050565b600a54600160a060020a0316331480610a4c57506009546101009004600160a060020a031633145b1515610a5757600080fd5b600a805474ff000000000000000000000000000000000000000019169055565b60095460a860020a900460ff1681565b600554600160a060020a031681565b600454600160a060020a031681565b60005460ff1681565b336000908152600360209081526040808320600160a060020a038616845290915281205480831115610b0357336000908152600360209081526040808320600160a060020a0388168452909152812055610b38565b610b13818463ffffffff61140116565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b600a54600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6009546101009004600160a060020a03163314610be657600080fd5b600954604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26009805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6000610c4c610d7d565b1515610c5a575060016106f0565b600554600160a060020a03161515610c74575060026106f0565b6006541515610c85575060036106f0565b50600490565b6009546101009004600160a060020a03163314610ca757600080fd5b60095460a860020a900460ff1615610cbe57600080fd5b6009805475ff000000000000000000000000000000000000000000191660a860020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6009546101009004600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561067e5780601f106106535761010080835404028352916020019161067e565b600190565b60095460009060a860020a900460ff1615610d9c57600080fd5b600a5474010000000000000000000000000000000000000000900460ff161580610dd05750600a54600160a060020a031633145b80610dea57506009546101009004600160a060020a031633145b80610df8575060005460ff16155b1515610e0357600080fd5b610b998383611426565b6009546101009004600160a060020a03163314610e2957600080fd5b6000805460ff1916911515919091179055565b60065481565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e76908363ffffffff61141316565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a0381161515610ef057600080fd5b610ef8610d7d565b1515610f0357600080fd5b600454600160a060020a03163314610f1a57600080fd5b6004610f24610c42565b6004811115610f2f57fe5b1415610f3a57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080517f61d3d7a6000000000000000000000000000000000000000000000000000000008152905192909116916361d3d7a6916004808201926020929091908290030181600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b505050506040513d6020811015610fe857600080fd5b50511515610ff557600080fd5b600254600560009054906101000a9004600160a060020a0316600160a060020a0316634b2ba0dd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561106457600080fd5b505af1158015611078573d6000803e3d6000fd5b505050506040513d602081101561108e57600080fd5b50511461109a57600080fd5b60055460408051600160a060020a039092168252517f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc9181900360200190a150565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6009546101009004600160a060020a0316331461112357600080fd5b61089481611509565b600160a060020a038116151561114157600080fd5b600454600160a060020a0316331461115857600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a038316151561119e57600080fd5b600160a060020a0384166000908152600160205260409020548211156111c357600080fd5b600160a060020a03841660009081526003602090815260408083203384529091529020548211156111f357600080fd5b600160a060020a03841660009081526001602052604090205461121c908363ffffffff61140116565b600160a060020a038086166000908152600160205260408082209390935590851681522054611251908363ffffffff61141316565b600160a060020a038085166000908152600160209081526040808320949094559187168152600382528281203382529091522054611295908363ffffffff61140116565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600160a060020a03821660009081526001602052604090205481111561132557600080fd5b600160a060020a03821660009081526001602052604090205461134e908263ffffffff61140116565b600160a060020a03831660009081526001602052604090205560025461137a908263ffffffff61140116565b600255604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008282111561140d57fe5b50900390565b8181018281101561142057fe5b92915050565b6000600160a060020a038316151561143d57600080fd5b3360009081526001602052604090205482111561145957600080fd5b33600090815260016020526040902054611479908363ffffffff61140116565b3360009081526001602052604080822092909255600160a060020a038516815220546114ab908363ffffffff61141316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a038116151561151e57600080fd5b600954604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360098054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600a165627a7a723058204ea7b8f5e013c673680af6ca5c9a0849594376dbe0a54400c3ef4b4d67aa77240029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000074c55544f4b454e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c55540000000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000074c55544f4b454e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c55540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): LUTOKEN
Arg [1] : _symbol (string): LUT
Arg [2] : _decimals (uint8): 8
Arg [3] : _totalSupply (uint256): 300000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [3] : 0000000000000000000000000000000000000000000000000429d069189e0000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [5] : 4c55544f4b454e00000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4c55540000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

16269:2250:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16686:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16686:25:0;;;;;;;;;;;;;;;;;;;;;;4090:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4090:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4090:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9691:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9691:192:0;-1:-1:-1;;;;;9691:192:0;;;;;;;5973:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5973:85:0;;;;;;;;;;;;;;;;;;;;18001:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18001:200:0;-1:-1:-1;;;;;18001:200:0;;;;;;;;;;;;4138:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4138:21:0;;;;;;;;;;;;;;;;;;;;;;;18207:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18207:94:0;-1:-1:-1;;;;;18207:94:0;;;;;;;2773:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:95:0;;;;7177:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7177:75:0;;;;;14134:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14134:593:0;;;;;18455:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18455:61:0;;;;2152:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2152:26:0;;;;13025:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13025:32:0;;;;;;;;-1:-1:-1;;;;;13025:32:0;;;;;;;;;;;;;;12927:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12927:28:0;;;;7753:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7753:18:0;;;;11619:440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11619:440:0;-1:-1:-1;;;;;11619:440:0;;;;;;;16465:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16465:19:0;;;;6757:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6757:101:0;-1:-1:-1;;;;;6757:101:0;;;;;1251:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1251:114:0;;;;15448:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15448:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2593:93:0;;;;633:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;633:20:0;;;;4113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4113:20:0;;;;16190:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16190:72:0;;;;17546:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17546:172:0;-1:-1:-1;;;;;17546:172:0;;;;;;;18307:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18307:81:0;;;;;;;13115:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13115:28:0;;;;10841:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10841:304:0;-1:-1:-1;;;;;10841:304:0;;;;;;;14787:599;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14787:599:0;-1:-1:-1;;;;;14787:599:0;;;;;10210:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10210:162:0;-1:-1:-1;;;;;10210:162:0;;;;;;;;;;1533:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1533:105:0;-1:-1:-1;;;;;1533:105:0;;;;;15922:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15922:163:0;-1:-1:-1;;;;;15922:163:0;;;;;16686:25;;;;;;;;;:::o;4090:18::-;;;;;;;;;;;;;;;-1:-1:-1;;4090:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9691:192::-;9779:10;9758:4;9771:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9771:29:0;;;;;;;;;;;:38;;;9821;;;;;;;9758:4;;9771:29;;9779:10;;9821:38;;;;;;;;-1:-1:-1;9873:4:0;9691:192;;;;:::o;5973:85::-;6040:12;;5973:85;;:::o;18001:200::-;2328:6;;18140:4;;-1:-1:-1;;;2328:6:0;;;;2327:7;2319:16;;;;;;16854:6;;;;;;;:15;;16853:39;;-1:-1:-1;16888:4:0;;-1:-1:-1;;;;;16888:4:0;16874:10;:18;16853:39;:62;;;-1:-1:-1;16910:5:0;;;;;-1:-1:-1;;;;;16910:5:0;16896:10;:19;16853:62;:73;;;-1:-1:-1;16920:6:0;;;;16919:7;16853:73;16845:82;;;;;;;;18157:38;18176:5;18183:3;18188:6;18157:18;:38::i;:::-;;18001:200;;;;;:::o;4138:21::-;;;;;;:::o;18207:94::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;18263:6;:13;;;-1:-1:-1;;18263:13:0;;;;-1:-1:-1;;18283:12:0;-1:-1:-1;;;;;18283:12:0;;;;;;;;;;18207:94::o;2773:95::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;2488:6;;-1:-1:-1;;;2488:6:0;;;;2480:15;;;;;;;;2827:6;:14;;-1:-1:-1;;2827:14:0;;;2853:9;;;;2836:5;;2853:9;2773:95::o;7177:75::-;7221:25;7227:10;7239:6;7221:5;:25::i;:::-;7177:75;:::o;14134:593::-;14250:18;14188:9;;;14180:18;;;;;;14222:10;14213:20;;;;:8;:20;;;;;;:29;-1:-1:-1;14213:29:0;14205:38;;;;;;14271:17;:15;:17::i;:::-;14250:38;-1:-1:-1;14312:27:0;14303:5;:36;;;;;;;;;:71;;;-1:-1:-1;14352:22:0;14343:5;:31;;;;;;;;;14303:71;14295:80;;;;;;;;14420:10;14411:20;;;;:8;:20;;;;;;:31;;14436:5;14411:31;:24;:31;:::i;:::-;14397:10;14388:20;;;;:8;:20;;;;;:54;14505:12;;:23;;14522:5;14505:23;:16;:23;:::i;:::-;14490:12;:38;14551:13;;:24;;14569:5;14551:24;:17;:24;:::i;:::-;14535:13;:40;14626:12;;:43;;;;;;14651:10;14626:43;;;;;;;;;;;;-1:-1:-1;;;;;14626:12:0;;;;:24;;:43;;;;;:12;;:43;;;;;;;;:12;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;14626:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14701:12:0;;14681:40;;;;;;;;-1:-1:-1;;;;;14701:12:0;;;;-1:-1:-1;14689:10:0;;-1:-1:-1;14681:40:0;;;;;;;;;;14134:593;;:::o;18455:61::-;17070:4;;-1:-1:-1;;;;;17070:4:0;17056:10;:18;;:41;;-1:-1:-1;17092:5:0;;;;;-1:-1:-1;;;;;17092:5:0;17078:10;:19;17056:41;17048:50;;;;;;;;18496:6;:14;;-1:-1:-1;;18496:14:0;;;18455:61::o;2152:26::-;;;-1:-1:-1;;;2152:26:0;;;;;:::o;13025:32::-;;;-1:-1:-1;;;;;13025:32:0;;:::o;12927:28::-;;;-1:-1:-1;;;;;12927:28:0;;:::o;7753:18::-;;;;;;:::o;11619:440::-;11767:10;11727:4;11759:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11759:29:0;;;;;;;;;;11799:27;;;11795:168;;;11845:10;11869:1;11837:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11837:29:0;;;;;;;;;:33;11795:168;;;11925:30;:8;11938:16;11925:30;:12;:30;:::i;:::-;11901:10;11893:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11893:29:0;;;;;;;;;:62;11795:168;11983:10;12005:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11974:61:0;;12005:29;;;;;;;;;;;11974:61;;;;;;;;;11983:10;11974:61;;;;;;;;;;;12049:4;12042:11;;11619:440;;;;;;:::o;16465:19::-;;;-1:-1:-1;;;;;16465:19:0;;:::o;6757:101::-;-1:-1:-1;;;;;6836:16:0;6813:7;6836:16;;;:8;:16;;;;;;;6757:101::o;1251:114::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;1328:5;;1309:25;;1328:5;;;;-1:-1:-1;;;;;1328:5:0;;1309:25;;;;;1341:5;:18;;-1:-1:-1;;1341:18:0;;;1251:114::o;15448:348::-;15495:12;15521;:10;:12::i;:::-;15520:13;15516:239;;;-1:-1:-1;15551:23:0;15544:30;;15516:239;15592:12;;-1:-1:-1;;;;;15592:12:0;:26;15588:167;;;-1:-1:-1;15637:28:0;15630:35;;15588:167;15684:13;;:18;15680:75;;;-1:-1:-1;15720:27:0;15713:34;;15680:75;-1:-1:-1;15768:22:0;15448:348;:::o;2593:93::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;2328:6;;-1:-1:-1;;;2328:6:0;;;;2327:7;2319:16;;;;;;2648:6;:13;;-1:-1:-1;;2648:13:0;-1:-1:-1;;;2648:13:0;;;2673:7;;;;2648:13;;2673:7;2593:93::o;633:20::-;;;;;;-1:-1:-1;;;;;633:20:0;;:::o;4113:::-;;;;;;;;;;;;;;;-1:-1:-1;;4113:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16190:72;16252:4;16190:72;:::o;17546:172::-;2328:6;;17668:4;;-1:-1:-1;;;2328:6:0;;;;2327:7;2319:16;;;;;;16854:6;;;;;;;:15;;16853:39;;-1:-1:-1;16888:4:0;;-1:-1:-1;;;;;16888:4:0;16874:10;:18;16853:39;:62;;;-1:-1:-1;16910:5:0;;;;;-1:-1:-1;;;;;16910:5:0;16896:10;:19;16853:62;:73;;;-1:-1:-1;16920:6:0;;;;16919:7;16853:73;16845:82;;;;;;;;17685:27;17700:3;17705:6;17685:14;:27::i;18307:81::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;18364:6;:18;;-1:-1:-1;;18364:18:0;;;;;;;;;;18307:81::o;13115:28::-;;;;:::o;10841:304::-;11009:10;10944:4;11001:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11001:29:0;;;;;;;;;;:46;;11035:11;11001:46;:33;:46;:::i;:::-;10968:10;10960:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;10960:29:0;;;;;;;;;;;;:88;;;11060:61;;;;;;10960:29;;11060:61;;;;;;;;;;;-1:-1:-1;11135:4:0;10841:304;;;;:::o;14787:599::-;-1:-1:-1;;;;;14851:19:0;;;;14843:28;;;;;;14886:12;:10;:12::i;:::-;14878:21;;;;;;;;14979:13;;-1:-1:-1;;;;;14979:13:0;14965:10;:27;14957:36;;;;;;15076:22;15055:17;:15;:17::i;:::-;:43;;;;;;;;;;15047:52;;;;;;15108:12;:34;;-1:-1:-1;;15108:34:0;-1:-1:-1;;;;;15108:34:0;;;;;;;;;;;15181:29;;;;;;;;:12;;;;;:27;;:29;;;;;;;;;;;;;;;-1:-1:-1;15181:12:0;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;15181:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15181:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15181:29:0;15173:38;;;;;;;;15324:12;;15291;;;;;;;;;-1:-1:-1;;;;;15291:12:0;-1:-1:-1;;;;;15291:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15291:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15291:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15291:29:0;:45;15283:54;;;;;;15367:12;;15351:29;;;-1:-1:-1;;;;;15367:12:0;;;15351:29;;;;;;;;;;;;14787:599;:::o;10210:162::-;-1:-1:-1;;;;;10341:15:0;;;10315:7;10341:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;10210:162::o;1533:105::-;1136:5;;;;;-1:-1:-1;;;;;1136:5:0;1122:10;:19;1114:28;;;;;;1603:29;1622:9;1603:18;:29::i;15922:163::-;-1:-1:-1;;;;;15986:20:0;;;;15978:29;;;;;;16036:13;;-1:-1:-1;;;;;16036:13:0;16022:10;:27;16014:36;;;;;;16057:13;:22;;-1:-1:-1;;16057:22:0;-1:-1:-1;;;;;16057:22:0;;;;;;;;;;15922:163::o;8569:487::-;8681:4;-1:-1:-1;;;;;8705:17:0;;;;8697:26;;;;;;-1:-1:-1;;;;;8748:15:0;;;;;;:8;:15;;;;;;8738:25;;;8730:34;;;;;;-1:-1:-1;;;;;8789:14:0;;;;;;:7;:14;;;;;;;;8804:10;8789:26;;;;;;;;8779:36;;;8771:45;;;;;;-1:-1:-1;;;;;8843:15:0;;;;;;:8;:15;;;;;;:27;;8863:6;8843:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;8825:15:0;;;;;;;:8;:15;;;;;;:45;;;;8893:13;;;;;;;:25;;8911:6;8893:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;8877:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;8954:14;;;;;:7;:14;;;;;8969:10;8954:26;;;;;;;:38;;8985:6;8954:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;8925:14:0;;;;;;;:7;:14;;;;;;;;8940:10;8925:26;;;;;;;;:67;;;;9004:28;;;;;;;;;;;8925:14;;9004:28;;;;;;;;;;;-1:-1:-1;9046:4:0;8569:487;;;;;:::o;7258:447::-;-1:-1:-1;;;;;7337:14:0;;;;;;:8;:14;;;;;;7327:24;;;7319:33;;;;;;-1:-1:-1;;;;;7551:14:0;;;;;;:8;:14;;;;;;:26;;7570:6;7551:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;7534:14:0;;;;;;:8;:14;;;;;:43;7599:12;;:24;;7616:6;7599:24;:16;:24;:::i;:::-;7584:12;:39;7635:18;;;;;;;;-1:-1:-1;;;;;7635:18:0;;;;;;;;;;;;;7665:34;;;;;;;;7688:1;;-1:-1:-1;;;;;7665:34:0;;;;;;;;;;;;7258:447;;:::o;5364:113::-;5422:7;5445:6;;;;5438:14;;;;-1:-1:-1;5466:5:0;;;5364:113::o;5544:127::-;5624:5;;;5643:6;;;;5636:14;;;;5544:127;;;;:::o;6219:329::-;6282:4;-1:-1:-1;;;;;6303:17:0;;;;6295:26;;;;;;6355:10;6346:20;;;;:8;:20;;;;;;6336:30;;;6328:39;;;;;;6408:10;6399:20;;;;:8;:20;;;;;;:32;;6424:6;6399:32;:24;:32;:::i;:::-;6385:10;6376:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;6454:13:0;;;;;;:25;;6472:6;6454:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;6438:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;6491:33;;;;;;;6438:13;;6500:10;;6491:33;;;;;;;;;;-1:-1:-1;6538:4:0;6219:329;;;;:::o;1779:175::-;-1:-1:-1;;;;;1850:23:0;;;;1842:32;;;;;;1907:5;;1886:38;;-1:-1:-1;;;;;1886:38:0;;;;1907:5;;;;;1886:38;;;;;1931:5;:17;;-1:-1:-1;;;;;1931:17:0;;;;;-1:-1:-1;;1931:17:0;;;;;;;;;1779:175::o

Swarm Source

bzzr://4ea7b8f5e013c673680af6ca5c9a0849594376dbe0a54400c3ef4b4d67aa7724
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.