Contract Overview |  Adshares
Balance: 0 Ether
Ether Value: $0
Transactions: 7222 txns
Token Tracker: Adshares (ADST)
 Latest 25 transactions from a total of 7222 transactions

TxHash Age From To Value [TxFee]
0x800bf34bf90de02b5bf871ec35e81c103383481e702e827e25d964322a93be1811 hrs 40 mins ago0x9264d2b27bdcd2f1275c621006a1293c422f54e7  IN   Adshares0 Ether0.000073312
0x55982025f8673ed40f94f5e3437f8a68bb8c1d2b9d0d53a6bd0832253f51adf01 day 17 hrs ago0xd52fbd2744cc1eb6e60461b5593acf668701b61e  IN   Adshares0 Ether0.000515937025
0x5b13ac44b09063dd20069e6b59d6df8b545c89e6d885dad4bd2eefa48211ceae1 day 20 hrs ago0xbac33e156360c072bbd1215c33a4f28f26675a63  IN   Adshares0 Ether0.001705728
0xb3de1edc17839555c05c3345a365e3921ab6ae54e8d727c43d38f752f081c1662 days 11 hrs ago0x6af1c0a6e4a9d51852415554225dc4981c963bc7  IN   Adshares0 Ether0.000073312
0x54dd4557929e32d05f84759868215329f6b343b38595aa9e0a882a303e68bac32 days 14 hrs ago0xa326ab263e43e87ecacb3981a8244e76d7c733d1  IN   Adshares0 Ether0.000439104
0xae84372369445a83000f50000eb916a7819fcc5b17a7e80c9cb953afde58194f2 days 15 hrs ago0x4af6b0babfb3ae0233389a8105befda173826325  IN   Adshares0 Ether0.0000618
0xe3ab097a64022253f7dafe48811cbee8ef7a2461c1ec00043c3dab7d46c84e7d2 days 20 hrs agoCoinExchange.io  IN   Adshares0 Ether0.000567512
0xfd346d6e92a2105965f2e8e0612986f03d452e5e09e0de46205ac510231516dd3 days 18 hrs agoMercatox  IN   Adshares0 Ether0.001083432
0x51a0f81a26e4ee9a2d817c3b8d0af722a2a41e001ab4cd491aa5aa73809807eb4 days 3 hrs agoCryptopia_2  IN   Adshares0 Ether0.0013032
0xcc24e921dee19412b81ccb882b038c0509e14edd0ff39627c623e14183ad3fde4 days 3 hrs agoCryptopia_2  IN   Adshares0 Ether0.00144726
0x856d71331cfbaf369fc805f8faeec1b69bafa6be9ea6163e49ed3c5eb05b39f14 days 3 hrs agoCryptopia_2  IN   Adshares0 Ether0.0022032
0xcb8f4e2b034511425fee2ecd4d3594edeaa00a0af631e39a19c2db3704cdb2e34 days 4 hrs ago0xa636464bffc1a5e9b2087387bd7be3a8bf10362c  IN   Adshares0 Ether0.0001126112
0x8edd396ad2c8b22a73d28315230b30c8b883fe0eef499b2949b589f68919103a4 days 4 hrs ago0x42dbb106f4e99dfbad10e01b217141316a5a8bb1  IN   Adshares0 Ether0.0001126112
0x6fd9f29f437fc43ae2fcff131fd4016c48874a76e129e11fdb2d25dae10236e64 days 4 hrs ago0x4044d724379dbdda5eaa29e83f857ce10d805fa9  IN   Adshares0 Ether0.0001126112
0x19c016636becb0bec4521c255c6b944e8d6dc4a3465c156d52133f9aa2b255434 days 4 hrs ago0xf0268dca8b84ce43a157c4f27b77ec18fffe34a0  IN   Adshares0 Ether0.0001126112
0xeedc19acac55cb6cda872619ddfe4d7a83d697d5a354171791442a9113b86a834 days 4 hrs ago0x9a0b31295029a10cb35c945bbb87e8e18ac8586c  IN   Adshares0 Ether0.0001126112
0x29d26a705a3ec97d057ddcf4cae47505a474ce559526574dffda3619d5bbd6be4 days 4 hrs ago0x88c915d1315df4944f9ef5d1e406f083f7652cb6  IN   Adshares0 Ether0.0001122784
0x859f7689c1301db06b887cd305d97bddd3468c58ea5b5f696498b68de8cc34914 days 4 hrs ago0xd41154492e6130deb0311ffb3b47aa4a057fc25c  IN   Adshares0 Ether0.0001122784
0xa415fa160c223fd00572c0709a3533ee607e5d6687de4078ef5534a51e3f78c04 days 4 hrs ago0x23950674ff20737c17dc7c1c2947cfc745462a97  IN   Adshares0 Ether0.0001126112
0xe963d043eadce1fc5e55bdd97f30157981982b10d062796d7e433630b0c842ca4 days 4 hrs ago0xa8d0709e1511141a142453e64c26f91462dac5c3  IN   Adshares0 Ether0.0001126112
0x5418033333c557731d80e2a528fd208dcfcca7403df92abc73e87ebf7f6a8cf84 days 4 hrs ago0x3f7e8d36145b61d2a7ec67d3dceac4d0aba2b337  IN   Adshares0 Ether0.0001126112
0xb5075b261630b23e4e2f35357c4258b04261f7f6e6d7c9839bd346c762db4a5d4 days 4 hrs ago0x54237f453648a49a080cf9dfe785a9a88a887fc9  IN   Adshares0 Ether0.0001126112
0x66a0936296ba1b0e29290631116d5b9ae77c866ec3088bf5e99c490e2b1d1f424 days 4 hrs ago0x530881afe424dc89ef6dfdc6e6565c3fec1f5388  IN   Adshares0 Ether0.0001126112
0xa1ad8de908f59128d9e57c58c4855ac1526a270de6cb7c81186dcd0c4e3a43a34 days 4 hrs ago0x0f72bb3c68d6afdc4b3e7fc5f0fd5323762c8517  IN   Adshares0 Ether0.0001126112
0xd21c79c30037d3be063a2d61e5933b47cff9516761e7e88169c5b272d848a2014 days 4 hrs ago0xf4f0f721326ce1c4e782b34b1cadecbbf2ec6fc1  IN   Adshares0 Ether0.0001126112
[ 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
0x34f13b48f46eed3cd2f1aa82c5adba8c226279b9a4d386be5477d2c04f4437544897942370 days 12 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xef82b51cd11b2cd198e7d9f7c75a486dd072194c8,940.165488039886634104 Ether
0x3ff18ef1013e2a951201a624fa48f62920119f1862477b54c3429e4e265fe6284897766370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x99f3387d25e81578df744925b04d438c8e323d7b0.00055316688 Ether
0x8d2da119eecebbf7d72f4843bf3dcd961e7c7f3a0588d592046eb16ba8a5045b4897765370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x24026c97c97c9db4daef5c692e29eaf2670d26a80.000320117 Ether
0x833f6f2216a6a1bea72b456f961a5b0d9f14e017ee64eacdcd36ef9202dfd3dc4897761370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x2725e5dfd1a210fbafdfd671c2315795200e2b710.00015992992 Ether
0xb161d6c47045fec5c88715a642673f9d97f726baa5f0de9391d39a347ebdff614897756370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xf75427dfe1052ba748492f30d8f591527dae95650.00026639708 Ether
0x0e5e175545869cb72e53abf8d846240efd20dd1d3efe0b34edf4fb401f27ed4b4897752370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x59b2a2b803b644de12d5559bf3993c054ac6d0210.00047314368 Ether
0xb3b2ec7613608aa0991ccd5f9bf02e770f7aea2468efeb671e7aa393f620cce94897749370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x184dd2d937360922369c85a68c5241cc696752610.00024963064 Ether
0x82af4fd7e476a53b90b95307a55e3166d5b31b91975d390375eff7d11155d5e04897746370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xe9052d7d437802c7759a8842d9f1a5f09a5d32760.00019461396 Ether
0x9c1aa835477d1f30f72e44a3f187dd12196747443122c390bd19839842256fe34897745370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xb1206619f933fb02c2930f4e29abcd9a10856b220.00047118724 Ether
0x7685c5589686f765b461036d0dd9c93132cfab482b427731fda94e219f94edcb4897743370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3691027703974c8903007f65a1ed48e094c635390.00035333948 Ether
0xcb2380b7725a0793acd480a2f23bb2c492d577efca800c31b18c05dfc20701b44897732370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xbe3e794053260eca6c44dd222d7e14bd9eb7e5790.00015748728 Ether
0x6a6d57ab64aebeef3ca6842b611503b2f2138cb04be0033e38d5ddd3183dcb2c4897727370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x84c8268f8c8f4fef2003e40d7b210141c0b0fce90.00076828512 Ether
0x9218a81a022920975db43d17b696cd9f0253d046a108b4d1278ae40eeae7f4d74897721370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xf89cbb1a22084bfc3f6c833dacd7d833f377c4470.000583595051686304 Ether
0x05feaf3dcfb577479bdf236d7ee4f95d963a0ace236b8f46a575d9d897d21d3b4897712370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x8009bfa8ea7c18be3a1d9c084610cf5983e2c7ad0.00052987656 Ether
0x7d1424900b58d0038fe025d6ebf7ab9ad10a9e0d61cba4071f7fef6d07c332714897711370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xda1ed835ad24fa87a7c77651699afbfb2c2e3ac90.00045282572 Ether
0xd64b59757422ef32cf327dc049c8486fb9a4f2838d703b87ae4088f9969f02014897705370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x64db4219fcf543a2333b3c683f8a3b326fd152460.00009889192 Ether
0x7c2911ab8827aedc1fa49d7b2c7edcfbdede3c4486ce4989603597d99e44634c4897704370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x81de3b06e89c4da3b4f782fb49c83001853de73a0.00024357316 Ether
0x88724f27d9fbeb562329931b8317f6747929c57d66a84a1ce53b68f66276b8434897699370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3ed53015fdb336d9c77c044164501161d9179b5c0.00027786064 Ether
0x79b273fbcb8312fca818fe5ddb1ea63164dd4d162393a49ded8064d4b1222a4c4897695370 days 13 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x2e809c5decd52d5602d10833ba92294ccec720790.00049579500903086 Ether
0x0f81d10969481d61559030ed04edabfb637c94a3c1d205a6a4f54ec4b1f952b74897676370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x6d2ee64e8af65c226be171f5729c1d1fe45b72d30.00031432036 Ether
0x9e240dc21e2deff0f63bf28923f8daf3ca8e559e083d1a2d9d19032f73a26c1f4897673370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x39fc1e41fdb0b9619ed25be6c5f89faa7497de660.00024000084 Ether
0xe9a0d7b7d1e4ae0522bf671877c252664fab2c7176765bb67b467a9d9b5792694897673370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x3691027703974c8903007f65a1ed48e094c635390.000385187 Ether
0x96173c464cc1af15e37dc4a4f34963901ebaf38b88552d1bb76e61a409ded9fc4897671370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xd3abc3bfd485078e32be8cc365b85ce4a280b9700.0002579424 Ether
0x7bcec10bd00364767c3d7a87f5f984a9cee868ae83423f763cbfd150ea3b71d34897663370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00x98fed13044249e2f1b11e734a4665eb9e06a6f0a0.0004835688 Ether
0x082cc42fc0c6a4f99dd3734acece19e069799cbc652f147e08c2799825db95bf4897663370 days 14 hrs ago0x422866a8f0b032c5cf1dfbdef31a20f4509562b00xb69afd253d105f54afe6d4251ff1c4fb26c5bf700.00005990676 Ether
[ Download CSV Export  ] 
Contract Name: AdsharesToken
Compiler Text: 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

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ffadb8bc4d364af060a46d041592bc98acb1c15
Arg [1] : 000000000000000000000000dbc78ef6d1b3e8ef8567b3b773c276dc225f42b5
Arg [2] : 000000000000000000000000ef82b51cd11b2cd198e7d9f7c75a486dd072194c
Arg [3] : 00000000000000000000000000000000000000000000000000000000003cd700


   Swarm Source:
bzzr://af9623b560cc5be9532279843d39a290d62fb8422ed5d6f9eba3d7a8909bc8bf

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.