Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
 Latest 25 txns from a total Of 6551 transactions
View All

TxHash Age From To Value [TxFee]
0xed8c84db5fb34ef0f705a6448b1ab7a33e5a2c1ca645966ef8e8d27a7e09d23a2 hrs 21 mins ago0xd146ff7b2e9325d5f7e8603e8f3df8b336d87816  IN   Adshares.net0 Ether0.00064968
0xeeb57dd8a345e5c3b8fe2b0e2e06019361ffad51cfcafbea5118c6c43ac8dd532 hrs 39 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00154968
0xea6c660db97ffdc3f4324763fd3e0274133212e6b338ccb97365004acdc1fec27 hrs 36 mins ago0x8bf63f44e0cef61e958800a957a58d5039f44955  IN   Adshares.net0 Ether0.00073312
0x2b88f7266a6a3e23e577aedd2f567733dc71a4e7ab1960af717af6213380fbfa2 days 6 hrs ago0x5f936e26b6f24ac224da4a5cc2da547ea71476b8  IN   Adshares.net0 Ether0.000219552
0x81ab127741ef31ef93820cf5df1fdf3d20b9a473331b3443880e9ac6854704a24 days 4 hrs ago0x9a2f216ec053d81f93fffde40db2fecb3b29cd67  IN   Adshares.net0 Ether0.00005014
0x44c4fc3a88d56938d56eae0a5858cc4f9e153c5a009fa46f8009fb6efe2116196 days 5 hrs ago0x3dee4a4e076e8d82859d241db0baf46f112cfa23  IN   Adshares.net0 Ether0.000064968
0xf418f3926f09c373b49027104ca84895f0ad503e26cc97c8f93fdc90e3eee0d46 days 7 hrs ago0xc32e59baf47453a32aaf5531cc3e706d095394a7  IN   Adshares.net0 Ether0.00273942
0x68270a5a37270c54c906f6f9171780d0de15ade155a92e58091f15135662f74e8 days 1 hr ago0x5772f6ee9281de6187f58bf5730dec786480b9ad  IN   Adshares.net0 Ether0.00043312
0x5c00b958d2d9aed2f44ff87ca28bc6876e94efbc32ac7f2e5fe946274f57df1d8 days 6 hrs ago0x07ee5d7d73d09185bf194483397692dac37f4e9c  IN   Adshares.net0 Ether0.001502896
0xe4897077ea05d242ab534dbbe1e3bea79d44b5a57a6d897bb5b97539f975b2f88 days 12 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00109776
0x0e216993c089ba2f28ebb8757fe419a4e60eddea7cd5437727f2f68893817c778 days 14 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00109968
0x94fcee4eb67fc93ce5f0668b9095895f184e8801177f7c1962d5a9902d190f5d8 days 20 hrs ago0x153685a03c2025b6825ae164e2ff5681ee487667  IN   Adshares.net0 Ether0.000044996
0x3f2f80ea2bd58e7913df1d4a9ff14e3671dd48bdff38afa48c229464b53f19ff9 days 8 hrs ago0xa13c83c56e7b0a8a05ad0890cfdf7fdd48877b9d  IN   Adshares.net0 Ether0.000182884
0x72bcace7fdcdb15db9f3cad555e9782220f00b9899140318125c421a056577469 days 12 hrs ago0xa6854632cba10789d76c3dd402677455d7d971c8  IN   Adshares.net0 Ether0.000360696
0x07fdca3324249b6418997326568ea837fbf0808aa04d685a7e95d883b05bcd989 days 12 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00154776
0x9baa33bd4f9392c01923a8cd3e7b50a249e62acaedf90b84aba91c44822eeb7610 days 6 hrs ago0x1c04a9486a10eb7186ceb2104e0888138610dc2c  IN   Adshares.net0 Ether0.000437
0xff83bae3c2666b637360998f08927aec2db54c6e85a08a4500af2b0acedea4d010 days 11 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00154776
0xce0dc00bc991c42e6724ff0ee7f79325340a7d9bca6ea59c82ab683c2b56e80210 days 15 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00109968
0xaace83d555d1c3b0e46ddbe224922a449ad3b034e4c53b06b3b3de63b40517eb10 days 21 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00154776
0xff6ea3fcd591c43097b4fa3fcf9bdc9579a045f6a9d66380ee55fddcc748c89a12 days 2 hrs ago0x5772f6ee9281de6187f58bf5730dec786480b9ad  IN   Adshares.net0 Ether0.00103312
0x56ce222628d6ad0de175291b88757c430ad09c9c9cf36557cfe593868f3c53a612 days 7 hrs ago0xe1fb6903ed8c3382e52b9f50a01d111095b73b65  IN   Adshares.net0 Ether0.000411489
0x679e1533166f756abac268885d00e667df009b55aa6fdf0801b2c5b32d26550112 days 20 hrs ago0x7c8e8337da7e6c0b32eee0e27bf0b01892ca910b  IN   Adshares.net0 Ether0.001502896
0xa6860f32e91e8304b99af449c82158380477338fcb63875ff0356e390185ed0c13 days 17 hrs ago0xb0c969256d83560bbc18ddea526b9845b1109947  IN   Adshares.net0 Ether0.00202968
0x4aea3579cab2864e981160fa6e58100386f36b17f7abea1463168b0c65b009ec13 days 18 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   Adshares.net0 Ether0.00154968
0x73c483fc9a6a363502ed7bb25f243c4e07d3aea32297b63c9802be8c772dfd3f14 days 40 mins ago0xca1f6b51439f3bbf438dee7a74e28d24ba2b3f6a  IN   Adshares.net0 Ether0.000248072
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x34f13b48f46eed3cd2f1aa82c5adba8c226279b9a4d386be5477d2c04f4437544897942160 days 22 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xef82b51cd11b2cd198e7d9f7c75a486dd072194c8,940.165488039886634104 Ether
0x3ff18ef1013e2a951201a624fa48f62920119f1862477b54c3429e4e265fe6284897766160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x99f3387d25e81578df744925b04d438c8e323d7b0.00055316688 Ether
0x8d2da119eecebbf7d72f4843bf3dcd961e7c7f3a0588d592046eb16ba8a5045b4897765160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x24026c97c97c9db4daef5c692e29eaf2670d26a80.000320117 Ether
0x833f6f2216a6a1bea72b456f961a5b0d9f14e017ee64eacdcd36ef9202dfd3dc4897761160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x2725e5dfd1a210fbafdfd671c2315795200e2b710.00015992992 Ether
0xb161d6c47045fec5c88715a642673f9d97f726baa5f0de9391d39a347ebdff614897756160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xf75427dfe1052ba748492f30d8f591527dae95650.00026639708 Ether
0x0e5e175545869cb72e53abf8d846240efd20dd1d3efe0b34edf4fb401f27ed4b4897752160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x59b2a2b803b644de12d5559bf3993c054ac6d0210.00047314368 Ether
0xb3b2ec7613608aa0991ccd5f9bf02e770f7aea2468efeb671e7aa393f620cce94897749160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x184dd2d937360922369c85a68c5241cc696752610.00024963064 Ether
0x82af4fd7e476a53b90b95307a55e3166d5b31b91975d390375eff7d11155d5e04897746160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xe9052d7d437802c7759a8842d9f1a5f09a5d32760.00019461396 Ether
0x9c1aa835477d1f30f72e44a3f187dd12196747443122c390bd19839842256fe34897745160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xb1206619f933fb02c2930f4e29abcd9a10856b220.00047118724 Ether
0x7685c5589686f765b461036d0dd9c93132cfab482b427731fda94e219f94edcb4897743160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3691027703974c8903007f65a1ed48e094c635390.00035333948 Ether
0xcb2380b7725a0793acd480a2f23bb2c492d577efca800c31b18c05dfc20701b44897732160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xbe3e794053260eca6c44dd222d7e14bd9eb7e5790.00015748728 Ether
0x6a6d57ab64aebeef3ca6842b611503b2f2138cb04be0033e38d5ddd3183dcb2c4897727160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x84c8268f8c8f4fef2003e40d7b210141c0b0fce90.00076828512 Ether
0x9218a81a022920975db43d17b696cd9f0253d046a108b4d1278ae40eeae7f4d74897721160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xf89cbb1a22084bfc3f6c833dacd7d833f377c4470.000583595051686304 Ether
0x05feaf3dcfb577479bdf236d7ee4f95d963a0ace236b8f46a575d9d897d21d3b4897712160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x8009bfa8ea7c18be3a1d9c084610cf5983e2c7ad0.00052987656 Ether
0x7d1424900b58d0038fe025d6ebf7ab9ad10a9e0d61cba4071f7fef6d07c332714897711160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xda1ed835ad24fa87a7c77651699afbfb2c2e3ac90.00045282572 Ether
0xd64b59757422ef32cf327dc049c8486fb9a4f2838d703b87ae4088f9969f02014897705160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x64db4219fcf543a2333b3c683f8a3b326fd152460.00009889192 Ether
0x7c2911ab8827aedc1fa49d7b2c7edcfbdede3c4486ce4989603597d99e44634c4897704160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x81de3b06e89c4da3b4f782fb49c83001853de73a0.00024357316 Ether
0x88724f27d9fbeb562329931b8317f6747929c57d66a84a1ce53b68f66276b8434897699160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3ed53015fdb336d9c77c044164501161d9179b5c0.00027786064 Ether
0x79b273fbcb8312fca818fe5ddb1ea63164dd4d162393a49ded8064d4b1222a4c4897695160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x2e809c5decd52d5602d10833ba92294ccec720790.00049579500903086 Ether
0x0f81d10969481d61559030ed04edabfb637c94a3c1d205a6a4f54ec4b1f952b74897676160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x6d2ee64e8af65c226be171f5729c1d1fe45b72d30.00031432036 Ether
0x9e240dc21e2deff0f63bf28923f8daf3ca8e559e083d1a2d9d19032f73a26c1f4897673160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x39fc1e41fdb0b9619ed25be6c5f89faa7497de660.00024000084 Ether
0xe9a0d7b7d1e4ae0522bf671877c252664fab2c7176765bb67b467a9d9b5792694897673160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3691027703974c8903007f65a1ed48e094c635390.000385187 Ether
0x96173c464cc1af15e37dc4a4f34963901ebaf38b88552d1bb76e61a409ded9fc4897671160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xd3abc3bfd485078e32be8cc365b85ce4a280b9700.0002579424 Ether
0x7bcec10bd00364767c3d7a87f5f984a9cee868ae83423f763cbfd150ea3b71d34897663160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x98fed13044249e2f1b11e734a4665eb9e06a6f0a0.0004835688 Ether
0x082cc42fc0c6a4f99dd3734acece19e069799cbc652f147e08c2799825db95bf4897663160 days 23 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xb69afd253d105f54afe6d4251ff1c4fb26c5bf700.00005990676 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: AdsharesToken
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.11;

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

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

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

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

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

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

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

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

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }
  
  /**
   * Based on http://www.codecodex.com/wiki/Calculate_an_integer_square_root
   */
  function sqrt(uint num) internal returns (uint) {
    if (0 == num) { // Avoid zero divide 
      return 0; 
    }   
    uint n = (num / 2) + 1;      // Initial estimate, never low  
    uint n1 = (n + (num / n)) / 2;  
    while (n1 < n) {  
      n = n1;  
      n1 = (n + (num / n)) / 2;  
    }  
    return n;  
  }

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

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

  mapping(address => uint) balances;

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint size) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  /**
  * @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, uint _value) onlyPayloadSize(2 * 32) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }

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

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint);
  function transferFrom(address from, address to, uint value);
  function approve(address spender, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implemantation of the basic standart 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 BasicToken, ERC20 {

  mapping (address => mapping (address => uint)) 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 uint the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3 * 32) {
    var _allowance = allowed[_from][msg.sender];

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

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

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on beahlf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint _value) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

  /**
   * @dev Function to check the amount of tokens than 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 uint specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}

/**
 * @title Adshares ICO token
 * 
 * see https://github.com/adshares/ico
 *
 */
contract AdsharesToken is StandardToken {
    using SafeMath for uint;

    // metadata
    string public constant name = "Adshares Token";
    string public constant symbol = "ADST";
    uint public constant decimals = 0;
    
    // crowdsale parameters
    uint public constant tokenCreationMin = 10000000;
    uint public constant tokenPriceMin = 0.0004 ether;
    uint public constant tradeSpreadInvert = 50; // 2%
    uint public constant crowdsaleEndLockTime = 1 weeks;
    uint public constant fundingUnlockPeriod = 1 weeks;
    uint public constant fundingUnlockFractionInvert = 100; // 1 %
    
    // contructor parameters
    uint public crowdsaleStartBlock;
    address public owner1;
    address public owner2;
    address public withdrawAddress; // multi-sig wallet that will receive ether

    
    // contract state
    bool public minFundingReached;
    uint public crowdsaleEndDeclarationTime = 0;
    uint public fundingUnlockTime = 0;  
    uint public unlockedBalance = 0;  
    uint public withdrawnBalance = 0;
    bool public isHalted = false;

    // events
    event LogBuy(address indexed who, uint tokens, uint purchaseValue, uint supplyAfter);
    event LogSell(address indexed who, uint tokens, uint saleValue, uint supplyAfter);
    event LogWithdraw(uint amount);
    event LogCrowdsaleEnd(bool completed);    
    
    /**
     * @dev Checks if funding is active
     */
    modifier fundingActive() {
      // Not yet started
      if (block.number < crowdsaleStartBlock) {
        throw;
      }
      // Already ended
      if (crowdsaleEndDeclarationTime > 0 && block.timestamp > crowdsaleEndDeclarationTime + crowdsaleEndLockTime) {
          throw;
        }
      _;
    }
    
    /**
     * @dev Throws if called by any account other than one of the owners. 
     */
    modifier onlyOwner() {
      if (msg.sender != owner1 && msg.sender != owner2) {
        throw;
      }
      _;
    }
    
    // constructor
    function AdsharesToken (address _owner1, address _owner2, address _withdrawAddress, uint _crowdsaleStartBlock)
    {
        owner1 = _owner1;
        owner2 = _owner2;
        withdrawAddress = _withdrawAddress;
        crowdsaleStartBlock = _crowdsaleStartBlock;
    }
    
    /**
     * Returns not yet unlocked balance
     */
    function getLockedBalance() private constant returns (uint lockedBalance) {
        return this.balance.sub(unlockedBalance);
      }
    
    /**
     * @dev Calculates how many tokens one can buy for specified value
     * @return Amount of tokens one will receive and purchase value without remainder. 
     */
    function getBuyPrice(uint _bidValue) constant returns (uint tokenCount, uint purchaseValue) {

        // Token price formula is twofold. We have flat pricing below tokenCreationMin, 
        // and above that price linarly increases with supply. 

        uint flatTokenCount;
        uint startSupply;
        uint linearBidValue;
        
        if(totalSupply < tokenCreationMin) {
            uint maxFlatTokenCount = _bidValue.div(tokenPriceMin);
            // entire purchase in flat pricing
            if(totalSupply.add(maxFlatTokenCount) <= tokenCreationMin) {
                return (maxFlatTokenCount, maxFlatTokenCount.mul(tokenPriceMin));
            }
            flatTokenCount = tokenCreationMin.sub(totalSupply);
            linearBidValue = _bidValue.sub(flatTokenCount.mul(tokenPriceMin));
            startSupply = tokenCreationMin;
        } else {
            flatTokenCount = 0;
            linearBidValue = _bidValue;
            startSupply = totalSupply;
        }
        
        // Solves quadratic equation to calculate maximum token count that can be purchased
        uint currentPrice = tokenPriceMin.mul(startSupply).div(tokenCreationMin);
        uint delta = (2 * startSupply).mul(2 * startSupply).add(linearBidValue.mul(4 * 1 * 2 * startSupply).div(currentPrice));

        uint linearTokenCount = delta.sqrt().sub(2 * startSupply).div(2);
        uint linearAvgPrice = currentPrice.add((startSupply+linearTokenCount+1).mul(tokenPriceMin).div(tokenCreationMin)).div(2);
        
        // double check to eliminate rounding errors
        linearTokenCount = linearBidValue / linearAvgPrice;
        linearAvgPrice = currentPrice.add((startSupply+linearTokenCount+1).mul(tokenPriceMin).div(tokenCreationMin)).div(2);
        
        purchaseValue = linearTokenCount.mul(linearAvgPrice).add(flatTokenCount.mul(tokenPriceMin));
        return (
            flatTokenCount + linearTokenCount,
            purchaseValue
        );
     }
    
    /**
     * @dev Calculates average token price for sale of specified token count
     * @return Total value received for given sale size. 
     */
    function getSellPrice(uint _askSizeTokens) constant returns (uint saleValue) {
        
        uint flatTokenCount;
        uint linearTokenMin;
        
        if(totalSupply <= tokenCreationMin) {
            return tokenPriceMin * _askSizeTokens;
        }
        if(totalSupply.sub(_askSizeTokens) < tokenCreationMin) {
            flatTokenCount = tokenCreationMin - totalSupply.sub(_askSizeTokens);
            linearTokenMin = tokenCreationMin;
        } else {
            flatTokenCount = 0;
            linearTokenMin = totalSupply.sub(_askSizeTokens);
        }
        uint linearTokenCount = _askSizeTokens - flatTokenCount;
        
        uint minPrice = (linearTokenMin).mul(tokenPriceMin).div(tokenCreationMin);
        uint maxPrice = (totalSupply+1).mul(tokenPriceMin).div(tokenCreationMin);
        
        uint linearAveragePrice = minPrice.add(maxPrice).div(2);
        return linearAveragePrice.mul(linearTokenCount).add(flatTokenCount.mul(tokenPriceMin));
    }
    
    /**
     * Default function called by sending Ether to this address with no arguments.
     * @dev Buy tokens with market order
     */
    function() payable fundingActive
    {
        buyLimit(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
    }
    
    /**
     * @dev Buy tokens without price limit
     */
    function buy() payable external fundingActive {
        buyLimit(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);    
    }
    
    /**
     * @dev Buy tokens with limit maximum average price
     * @param _maxPrice Maximum price user want to pay for one token
     */
    function buyLimit(uint _maxPrice) payable public fundingActive {
        require(msg.value >= tokenPriceMin);
        assert(!isHalted);
        
        uint boughtTokens;
        uint averagePrice;
        uint purchaseValue;
        
        (boughtTokens, purchaseValue) = getBuyPrice(msg.value);
        if(boughtTokens == 0) { 
            // bid to small, return ether and abort
            msg.sender.transfer(msg.value);
            return; 
        }
        averagePrice = purchaseValue.div(boughtTokens);
        if(averagePrice > _maxPrice) { 
            // price too high, return ether and abort
            msg.sender.transfer(msg.value);
            return; 
        }
        assert(averagePrice >= tokenPriceMin);
        assert(purchaseValue <= msg.value);
        
        totalSupply = totalSupply.add(boughtTokens);
        balances[msg.sender] = balances[msg.sender].add(boughtTokens);
        
        if(!minFundingReached && totalSupply >= tokenCreationMin) {
            minFundingReached = true;
            fundingUnlockTime = block.timestamp;
            // this.balance contains ether sent in this message
            unlockedBalance += this.balance.sub(msg.value).div(tradeSpreadInvert);
        }
        if(minFundingReached) {
            unlockedBalance += purchaseValue.div(tradeSpreadInvert);
        }
        
        LogBuy(msg.sender, boughtTokens, purchaseValue, totalSupply);
        
        if(msg.value > purchaseValue) {
            msg.sender.transfer(msg.value.sub(purchaseValue));
        }
    }
    
    /**
     * @dev Sell tokens without limit on price
     * @param _tokenCount Amount of tokens user wants to sell
     */
    function sell(uint _tokenCount) external fundingActive {
        sellLimit(_tokenCount, 0);
    }
    
    /**
     * @dev Sell tokens with limit on minimum average priceprice
     * @param _tokenCount Amount of tokens user wants to sell
     * @param _minPrice Minimum price user wants to receive for one token
     */
    function sellLimit(uint _tokenCount, uint _minPrice) public fundingActive {
        require(_tokenCount > 0);

        assert(balances[msg.sender] >= _tokenCount);
        
        uint saleValue = getSellPrice(_tokenCount);
        uint averagePrice = saleValue.div(_tokenCount);
        assert(averagePrice >= tokenPriceMin);
        if(minFundingReached) {
            averagePrice -= averagePrice.div(tradeSpreadInvert);
            saleValue -= saleValue.div(tradeSpreadInvert);
        }
        
        if(averagePrice < _minPrice) {
            // price too high, abort
            return;
        }
        // not enough ether for buyback
        assert(saleValue <= this.balance);
          
        totalSupply = totalSupply.sub(_tokenCount);
        balances[msg.sender] = balances[msg.sender].sub(_tokenCount);
        
        LogSell(msg.sender, _tokenCount, saleValue, totalSupply);
        
        msg.sender.transfer(saleValue);
    }   
    
    /**
     * @dev Unlock funds for withdrawal. Only 1% can be unlocked weekly.
     */
    function unlockFunds() external onlyOwner fundingActive {
        assert(minFundingReached);
        assert(block.timestamp >= fundingUnlockTime);
        
        uint unlockedAmount = getLockedBalance().div(fundingUnlockFractionInvert);
        unlockedBalance += unlockedAmount;
        assert(getLockedBalance() > 0);
        
        fundingUnlockTime += fundingUnlockPeriod;
    }
    
    /**
     * @dev Withdraw funds. Only unlocked funds can be withdrawn.
     */
    function withdrawFunds(uint _value) external onlyOwner fundingActive onlyPayloadSize(32) {
        require(_value <= unlockedBalance);
        assert(minFundingReached);
             
        unlockedBalance -= _value;
        withdrawnBalance += _value;
        LogWithdraw(_value);
        
        withdrawAddress.transfer(_value);
    }
    
    /**
     * @dev Declares that crowdsale is about to end. Users have one week to decide if the want to keep token or sell them to contract.
     */
    function declareCrowdsaleEnd() external onlyOwner fundingActive {
        assert(minFundingReached);
        assert(crowdsaleEndDeclarationTime == 0);
        
        crowdsaleEndDeclarationTime = block.timestamp;
        LogCrowdsaleEnd(false);
    }
    
    /**
     * @dev Can be called one week after initial declaration. Withdraws ether and stops trading. Tokens remain in circulation.
     */
    function confirmCrowdsaleEnd() external onlyOwner {
        assert(crowdsaleEndDeclarationTime > 0 && block.timestamp > crowdsaleEndDeclarationTime + crowdsaleEndLockTime);
        
        LogCrowdsaleEnd(true);
        withdrawAddress.transfer(this.balance);
    }
    
    /**
     * @dev Halts crowdsale. Can only be called before minimumFunding is reached. 
     * @dev When contract is halted no one can buy new tokens, but can sell them back to contract.
     * @dev Function will be called if minimum funding target isn't reached for extended period of time
     */
    function haltCrowdsale() external onlyOwner fundingActive {
        assert(!minFundingReached);
        isHalted = !isHalted;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_bidValue","type":"uint256"}],"name":"getBuyPrice","outputs":[{"name":"tokenCount","type":"uint256"},{"name":"purchaseValue","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"withdrawnBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"withdrawAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tradeSpreadInvert","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleEndDeclarationTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner2","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundingUnlockFractionInvert","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"haltCrowdsale","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner1","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"confirmCrowdsaleEnd","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxPrice","type":"uint256"}],"name":"buyLimit","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"fundingUnlockPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"unlockedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenPriceMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unlockFunds","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_askSizeTokens","type":"uint256"}],"name":"getSellPrice","outputs":[{"name":"saleValue","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"declareCrowdsaleEnd","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundingUnlockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isHalted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenCount","type":"uint256"},{"name":"_minPrice","type":"uint256"}],"name":"sellLimit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minFundingReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleEndLockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenCount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_owner1","type":"address"},{"name":"_owner2","type":"address"},{"name":"_withdrawAddress","type":"address"},{"name":"_crowdsaleStartBlock","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"purchaseValue","type":"uint256"},{"indexed":false,"name":"supplyAfter","type":"uint256"}],"name":"LogBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"saleValue","type":"uint256"},{"indexed":false,"name":"supplyAfter","type":"uint256"}],"name":"LogSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"completed","type":"bool"}],"name":"LogCrowdsaleEnd","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"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600781905560088190556009819055600a55600b805460ff19169055341561002a57fe5b604051608080611a1983398101604090815281516020830151918301516060909301519092905b60048054600160a060020a03808716600160a060020a03199283161790925560058054868416908316179055600680549285169290911691909117905560038190555b505050505b611971806100a86000396000f300606060405236156101bf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461020757806308d4db1414610297578063095ea7b3146102c3578063154e8152146102e4578063155dd5ee146103065780631581b6001461031b57806318160ddd1461034757806323b872dd14610369578063313ce567146103905780633724fb24146103b25780633985a4ab146103d457806352709725146103f65780635949e525146104225780635d51b5501461044457806370a082311461045657806373688914146104845780638b322791146104b057806395d89b41146104c25780639b7edbdb146105525780639ea03ccb1461055f578063a6f2ae3a14610581578063a9059cbb1461058b578063ab6ad452146105ac578063b4c2aaee146105ce578063b4d1c485146105f0578063ba730e5314610602578063bd95758514610627578063c039daf614610639578063c12736761461065b578063c7ff15841461067d578063cab9c32a146106a1578063cdd3574a146106b9578063d34b1537146106db578063dd62ed3e146106ff578063deb83bcc1461055f578063e4849b3214610755575b6102055b6003544310156101d35760006000fd5b60006007541180156101eb575062093a806007540142115b156101f65760006000fd5b61020160001961076a565b5b5b565b005b341561020f57fe5b610217610a12565b60408051602080825283518183015283519192839290830191850190808383821561025d575b80518252602083111561025d57601f19909201916020918201910161023d565b505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561029f57fe5b6102aa600435610a49565b6040805192835260208301919091528051918290030190f35b34156102cb57fe5b610205600160a060020a0360043516602435610cb7565b005b34156102ec57fe5b6102f4610d57565b60408051918252519081900360200190f35b341561030e57fe5b610205600435610d5d565b005b341561032357fe5b61032b610e7c565b60408051600160a060020a039092168252519081900360200190f35b341561034f57fe5b6102f4610e8b565b60408051918252519081900360200190f35b341561037157fe5b610205600160a060020a0360043581169060243516604435610e91565b005b341561039857fe5b6102f4610fb5565b60408051918252519081900360200190f35b34156103ba57fe5b6102f4610fba565b60408051918252519081900360200190f35b34156103dc57fe5b6102f4610fbf565b60408051918252519081900360200190f35b34156103fe57fe5b61032b610fc5565b60408051600160a060020a039092168252519081900360200190f35b341561042a57fe5b6102f4610fd4565b60408051918252519081900360200190f35b341561044c57fe5b610205610fd9565b005b341561045e57fe5b6102f4600160a060020a0360043516611070565b60408051918252519081900360200190f35b341561048c57fe5b61032b61108f565b60408051600160a060020a039092168252519081900360200190f35b34156104b857fe5b61020561109e565b005b34156104ca57fe5b610217611161565b60408051602080825283518183015283519192839290830191850190808383821561025d575b80518252602083111561025d57601f19909201916020918201910161023d565b505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020560043561076a565b005b341561056757fe5b6102f4611198565b60408051918252519081900360200190f35b6102056101c3565b005b341561059357fe5b610205600160a060020a03600435166024356111e1565b005b34156105b457fe5b6102f46112af565b60408051918252519081900360200190f35b34156105d657fe5b6102f46112b5565b60408051918252519081900360200190f35b34156105f857fe5b6102056112c0565b005b341561060a57fe5b6102f4600435611395565b60408051918252519081900360200190f35b341561062f57fe5b6102056114eb565b005b341561064157fe5b6102f46115b3565b60408051918252519081900360200190f35b341561066357fe5b6102f46115ba565b60408051918252519081900360200190f35b341561068557fe5b61068d6115c0565b604080519115158252519081900360200190f35b34156106a957fe5b6102056004356024356115c9565b005b34156106c157fe5b6102f461178d565b60408051918252519081900360200190f35b34156106e357fe5b61068d611793565b604080519115158252519081900360200190f35b341561070757fe5b6102f4600160a060020a03600435811690602435166117a3565b60408051918252519081900360200190f35b341561056757fe5b6102f4611198565b60408051918252519081900360200190f35b341561075d57fe5b6102056004356117d7565b005b6000600060006003544310156107805760006000fd5b6000600754118015610798575062093a806007540142115b156107a35760006000fd5b66016bcc41e900003410156107b85760006000fd5b600b5460ff16156107c557fe5b6107ce34610a49565b909350905082151561080b57604051600160a060020a033316903480156108fc02916000818181858888f19350505050151561080657fe5b610a09565b61081b818463ffffffff61181a16565b91508382111561085657604051600160a060020a033316903480156108fc02916000818181858888f19350505050151561080657fe5b610a09565b66016bcc41e9000082101561086757fe5b3481111561087157fe5b600054610884908463ffffffff61183716565b6000908155600160a060020a0333168152600160205260409020546108af908463ffffffff61183716565b33600160a060020a031660009081526001602052604090205560065460a060020a900460ff161580156108e757506298968060005410155b15610949576006805474ff0000000000000000000000000000000000000000191660a060020a1790554260085561093f6032610933600160a060020a033016313463ffffffff61185316565b9063ffffffff61181a16565b6009805490910190555b60065460a060020a900460ff16156109765761096c81603263ffffffff61181a16565b6009805490910190555b60005460408051858152602081018490528082019290925251600160a060020a033316917fc5620ded95cbb91682a998bc6df1a310612e51388b47c88b6dfb3f00d8248ddb919081900360600190a280341115610a0957600160a060020a0333166108fc6109ea348463ffffffff61185316565b6040518115909202916000818181858888f193505050501515610a0957fe5b5b5b5b50505050565b60408051808201909152600e81527f416473686172657320546f6b656e000000000000000000000000000000000000602082015281565b6000600060006000600060006000600060006000629896806000541015610b0f57610a818b66016bcc41e9000063ffffffff61181a16565b945062989680610a9c8660005461183790919063ffffffff16565b11610ac25784610ab98166016bcc41e9000063ffffffff61186c16565b99509950610caa565b600054610ad990629896809063ffffffff61185316565b9750610b02610af58966016bcc41e9000063ffffffff61186c16565b8c9063ffffffff61185316565b9550629896809650610b1c565b600097508a955060005496505b610b466298968061093366016bcc41e900008a63ffffffff61186c16565b9063ffffffff61181a16565b9350610b8d610b6e856109338960088c0263ffffffff61186c16565b9063ffffffff61181a16565b610b8160028a028063ffffffff61186c16565b9063ffffffff61183716565b9250610bbc600261093389600202610ba48761189b565b9063ffffffff61185316565b9063ffffffff61181a16565b9150610c0c6002610933610bf3629896808260018d89010166016bcc41e9000063ffffffff61186c16565b9063ffffffff61181a16565b879063ffffffff61183716565b9063ffffffff61181a16565b90508086811515610c1957fe5b049150610c6a6002610933610bf3629896808260018d89010166016bcc41e9000063ffffffff61186c16565b9063ffffffff61181a16565b879063ffffffff61183716565b9063ffffffff61181a16565b9050610ca2610c868966016bcc41e9000063ffffffff61186c16565b610b81848463ffffffff61186c16565b9063ffffffff61183716565b8883019a5098505b5050505050505050915091565b8015801590610cea5750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b15610cf55760006000fd5b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b600a5481565b60045433600160a060020a03908116911614801590610d8b575060055433600160a060020a03908116911614155b15610d965760006000fd5b600354431015610da65760006000fd5b6000600754118015610dbe575062093a806007540142115b15610dc95760006000fd5b60206024361015610dda5760006000fd5b600954821115610dea5760006000fd5b60065460a060020a900460ff161515610dff57fe5b600980548390039055600a8054830190556040805183815290517f879a83fc17750905b8aef4ef85e6701b84a50e15d4463dc3c2e7fb0f9dbcf75d9181900360200190a1600654604051600160a060020a039091169083156108fc029084906000818181858888f193505050501515610d5357fe5b5b5b505b5b50565b600654600160a060020a031681565b60005481565b600060606064361015610ea45760006000fd5b600160a060020a038086166000908152600260209081526040808320338516845282528083205493881683526001909152902054909250610eeb908463ffffffff61183716565b600160a060020a038086166000908152600160205260408082209390935590871681522054610f20908463ffffffff61185316565b600160a060020a038616600090815260016020526040902055610f49828463ffffffff61185316565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5b5050505050565b600081565b603281565b60075481565b600554600160a060020a031681565b606481565b60045433600160a060020a03908116911614801590611007575060055433600160a060020a03908116911614155b156110125760006000fd5b6003544310156110225760006000fd5b600060075411801561103a575062093a806007540142115b156110455760006000fd5b60065460a060020a900460ff161561105957fe5b600b805460ff19811660ff909116151790555b5b5b565b600160a060020a0381166000908152600160205260409020545b919050565b600454600160a060020a031681565b60045433600160a060020a039081169116148015906110cc575060055433600160a060020a03908116911614155b156110d75760006000fd5b60006007541180156110ef575062093a806007540142115b15156110f757fe5b604080516001815290517fba57225df0fc3a1a33e9e3d3b2c5393bb165aecc4a9e348fb7e8c5b0f45dd99b9181900360200190a1600654604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561020157fe5b5b5b565b60408051808201909152600481527f4144535400000000000000000000000000000000000000000000000000000000602082015281565b62093a8081565b6003544310156101d35760006000fd5b60006007541180156101eb575062093a806007540142115b156101f65760006000fd5b61020160001961076a565b5b5b565b604060443610156111f25760006000fd5b600160a060020a03331660009081526001602052604090205461121b908363ffffffff61185316565b600160a060020a033381166000908152600160205260408082209390935590851681522054611250908363ffffffff61183716565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5b505050565b60095481565b66016bcc41e9000081565b60045460009033600160a060020a039081169116148015906112f1575060055433600160a060020a03908116911614155b156112fc5760006000fd5b60035443101561130c5760006000fd5b6000600754118015611324575062093a806007540142115b1561132f5760006000fd5b60065460a060020a900460ff16151561134457fe5b60085442101561135057fe5b611369606461093361190d565b9063ffffffff61181a16565b60098054820190559050600061137d61190d565b1161138457fe5b6008805462093a800190555b5b5b50565b6000600060006000600060006000629896806000541115156113c2578766016bcc41e900000296506114e0565b60005462989680906113da908a63ffffffff61185316565b1015611405576000546113f3908963ffffffff61185316565b6298968003955062989680945061141f565b6000805490965061141c908963ffffffff61185316565b94505b858803935061144e629896806109338766016bcc41e9000063ffffffff61186c16565b9063ffffffff61181a16565b92506114826298968061093366016bcc41e9000060005460010161186c90919063ffffffff16565b9063ffffffff61181a16565b91506114a56002610933858563ffffffff61183716565b9063ffffffff61181a16565b90506114dd6114c18766016bcc41e9000063ffffffff61186c16565b610b81838763ffffffff61186c16565b9063ffffffff61183716565b96505b505050505050919050565b60045433600160a060020a03908116911614801590611519575060055433600160a060020a03908116911614155b156115245760006000fd5b6003544310156115345760006000fd5b600060075411801561154c575062093a806007540142115b156115575760006000fd5b60065460a060020a900460ff16151561156c57fe5b6007541561157657fe5b42600755604080516000815290517fba57225df0fc3a1a33e9e3d3b2c5393bb165aecc4a9e348fb7e8c5b0f45dd99b9181900360200190a15b5b5b565b6298968081565b60085481565b600b5460ff1681565b600060006003544310156115dd5760006000fd5b60006007541180156115f5575062093a806007540142115b156116005760006000fd5b6000841161160e5760006000fd5b600160a060020a0333166000908152600160205260409020548490101561163157fe5b61163a84611395565b915061164c828563ffffffff61181a16565b905066016bcc41e9000081101561165f57fe5b60065460a060020a900460ff161561169a5761168281603263ffffffff61181a16565b900361169582603263ffffffff61181a16565b820391505b828110156116a757610a09565b600160a060020a033016318211156116bb57fe5b6000546116ce908563ffffffff61185316565b6000908155600160a060020a0333168152600160205260409020546116f9908563ffffffff61185316565b600160a060020a0333166000818152600160209081526040808320949094559054835188815291820186905281840152915190917f3871b69498aaad3449bcd3d955642c834792b1e823c5e12a8de3130f139937ff919081900360600190a2604051600160a060020a0333169083156108fc029084906000818181858888f193505050501515610a0957fe5b5b5b50505050565b60035481565b60065460a060020a900460ff1681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b62093a8081565b6003544310156117e75760006000fd5b60006007541180156117ff575062093a806007540142115b1561180a5760006000fd5b610e788160006115c9565b5b5b50565b60006000828481151561182957fe5b0490508091505b5092915050565b600082820161184884821015611934565b8091505b5092915050565b600061186183831115611934565b508082035b92915050565b600082820261184884158061188b575083858381151561188857fe5b04145b611934565b8091505b5092915050565b600080808315156118af5760009250611906565b6002845b046001019150600282858115156118c657fe5b0483018115156118d257fe5b0490505b8181101561190257809150600282858115156118ee57fe5b0483018115156118fa57fe5b0490506118d6565b8192505b5050919050565b600061192e60095430600160a060020a03163161185390919063ffffffff16565b90505b90565b801515610e785760006000fd5b5b505600a165627a7a72305820af9623b560cc5be9532279843d39a290d62fb8422ed5d6f9eba3d7a8909bc8bf00290000000000000000000000004ffadb8bc4d364af060a46d041592bc98acb1c15000000000000000000000000dbc78ef6d1b3e8ef8567b3b773c276dc225f42b5000000000000000000000000ef82b51cd11b2cd198e7d9f7c75a486dd072194c00000000000000000000000000000000000000000000000000000000003cd700

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

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 0000000000000000000000004ffadb8bc4d364af060a46d041592bc98acb1c15
Arg [1] : 000000000000000000000000dbc78ef6d1b3e8ef8567b3b773c276dc225f42b5
Arg [2] : 000000000000000000000000ef82b51cd11b2cd198e7d9f7c75a486dd072194c
Arg [3] : 00000000000000000000000000000000000000000000000000000000003cd700


   Swarm Source:
bzzr://af9623b560cc5be9532279843d39a290d62fb8422ed5d6f9eba3d7a8909bc8bf

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.