Latest 25 transactions from a total of 1235 transactions

TxHash Age From To Value [TxFee]
0x5ff2e91cc1e04932463d6d1bea2ea83fd0d9d949c13296ebd8c7beca0b53071d1 day 20 hrs ago0x1450b50beaa98befca3dbd0cd21fb88d1196df5e  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.0016873
0x4e82b41c613b3570f16af7a1e2312c182d048de9f7d3f7cb103ce039d5a9a00e15 days 10 hrs ago0x9e06bd3d9318dd0efe39e8e500b292f4e6add1ab  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.00388079
0x9c8f0676ec406a66a95024197646878c9a1736be3b4f5dc1546e2f4be4728b2128 days 15 hrs ago0xe0f48873734b1983358e0059f1a6f8c4bc307331  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000421825
0x68683505393e7e6368dfd1ec5606563640f8d992581de687e1b9c36502959b9828 days 21 hrs ago0x1723a88158118ad1ae03a873b2df1e8de4fb921e  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000070617
0x604daf1b1e1b67dbae29ab836ce5eae0ae6a6220b19fdf33c6bf5dfd9751a6ec28 days 22 hrs ago0x1723a88158118ad1ae03a873b2df1e8de4fb921e  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000117695
0x5d5d6d457cd2e694a183e7a9ddb33a4065b0e042e96942223ddc951f605b766128 days 23 hrs ago0x1723a88158118ad1ae03a873b2df1e8de4fb921e  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000253095
0xec2dc7443dc7c45625818a61c474753a097d3de6950d9572f13d0d064390e52d33 days 13 hrs ago0xdbbd49638a753b1cf61d52c8f244d5798e5a21a5  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000346825
0x9221317c8d2b04c6a4c1b880c211fa99f2df3e333db3313c8cfa58605cc84d6033 days 13 hrs ago0x07a5e64166eb0411d7496bdafd0f022cd2a3a901  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580.0946029 Ether0.000231506
0x0087cfc5ad4201fb04c233bb4cea96ff5f9cf57a3800ce1178c21852c2f7470e36 days 21 hrs ago0xc5db100ffaeb77ffcf8faad1c6272f029fd068da  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.001734125
0x543b1aabb608272608345baa0759843ad040f8fc183a11f960bb4e0f891474fa36 days 21 hrs ago0xc5db100ffaeb77ffcf8faad1c6272f029fd068da  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.0009997
0xc611f355c53a5131ee4b21725e41d634857c880b61b83b306602ab7ae27327f437 days 14 hrs ago0x1d27ce177b3356ea3df1e4da887717a0f9d1ed74  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.001771665
0x0baf0ecd88b76d0fa56bc6df78b8525eeb8d61991d76c84b0c37d9c0f32a8b4c46 days 7 hrs ago0x80bec0987de77ec3bb228cfcd6d27b7a5a38272b  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000047078
0xed20c3f0c6749f9d55e3df7ed1f0557bd4c3c42d4b424ec22ff711b2b44c281546 days 8 hrs ago0x80bec0987de77ec3bb228cfcd6d27b7a5a38272b  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.00016873
0x847ba005094ac5a779da61243b6a05d1382184d3acda175d75c9816d932f8f2947 days 10 hrs ago0x079f4d582fac8c9d03e0f63d055a2f543364fba8  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000421825
0x87b5ea6f3fe22716eb51aca7ac6bd243dff18190b44eaa3a590a84f93868fb3448 days 11 hrs ago0x079f4d582fac8c9d03e0f63d055a2f543364fba8  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
0x70e6b14c106bebf320bfc6f901753d47ea22ef13abcf991b51a88c1c913560b448 days 13 hrs ago0x079f4d582fac8c9d03e0f63d055a2f543364fba8  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
0xd14626426420a5635b0103f9c0180b26e63f00232b618a0bfb7fa811d8a5d3e448 days 13 hrs ago0x079f4d582fac8c9d03e0f63d055a2f543364fba8  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
0x21060de57c8f390f94be11139d360b140b4cf6544e899e12e472161ef9453a9848 days 14 hrs ago0x0c498ba71b8e620e998b7cd020a86c1e3c6e3e32  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580.132366313777777 Ether0.000862886
0xbdb7b562079536f1827f9fcadd5a77f6bf1ca68c8d305ed77813e5e4ee6beeb050 days 13 hrs ago0x7ffd47ecfb3a521ead2daf22c81d1f95a3218ebc  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
0x4d53e8650a721010774b822d18a646d4fe042bbddca5c60b5bf66075c0f96b6950 days 13 hrs ago0x7ffd47ecfb3a521ead2daf22c81d1f95a3218ebc  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000208095
0x06268b372b4002ed07316a67b9676f18e5c7d0117eb8cf6218451471f0b2df8153 days 17 hrs ago0x6872b4282e868f10dd7739a4cba0d28a678152c2  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000164773
0x177d7b5307293d62c036bb0a6d3f0fd368b055eb63b24681f155e3e295ac1ed553 days 17 hrs ago0x0f8af92f89a99dcf4e89d614ccd18093e82604e6  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.003121505
0x4912ad4dfd641db10977022f5ca6a49f7273d4398bbb62b5192b03074a68f31a53 days 18 hrs ago0x6872b4282e868f10dd7739a4cba0d28a678152c2  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
0xb1f4c79e23137a2cffb6fc6802303ace55c3198cfd6a10bd84cae3cdd2f5267064 days 3 hrs ago0x5a7e191227ce01ad591e021824d3b45f045606f3  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.00016873
0x2cb9799e823f01da3fa7d1151406f675705d35df49e12eb31801185f77c553d574 days 8 hrs ago0x0f8af92f89a99dcf4e89d614ccd18093e82604e6  IN   0x105b2b74fe6de95b68d435f3a3bc8ace03cf16580 Ether0.000188312
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x80942a699888c537f21722ad1a6c52c28fd1d2df5cf1f00c0a83aaee2bdccfb44994844316 days 14 hrs ago0x105b2b74fe6de95b68d435f3a3bc8ace03cf1658  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: PolyDistribution
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
  function balanceOf(address _owner) public view returns (uint256);
  function allowance(address _owner, address _spender) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  function approve(address _spender, uint256 _value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/*
Copyright (c) 2016 Smart Contract Solutions, Inc.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

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

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

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

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 */
contract PolyToken is IERC20 {
  using SafeMath for uint256;

  // Poly Token parameters
  string public name = 'Polymath';
  string public symbol = 'POLY';
  uint8 public constant decimals = 18;
  uint256 public constant decimalFactor = 10 ** uint256(decimals);
  uint256 public constant totalSupply = 1000000000 * decimalFactor;
  mapping (address => uint256) balances;
  mapping (address => mapping (address => uint256)) internal allowed;

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);

  /**
  * @dev Constructor for Poly creation
  * @dev Assigns the totalSupply to the PolyDistribution contract
  */
  function PolyToken(address _polyDistributionContractAddress) public {
    require(_polyDistributionContractAddress != address(0));
    balances[_polyDistributionContractAddress] = totalSupply;
    Transfer(address(0), _polyDistributionContractAddress, totalSupply);
  }

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

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

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

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

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

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

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

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

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

}

/*
Copyright (c) 2016 Smart Contract Solutions, Inc.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;

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

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

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

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title POLY token initial distribution
 *
 * @dev Distribute purchasers, airdrop, reserve, and founder tokens
 */
contract PolyDistribution is Ownable {
  using SafeMath for uint256;

  PolyToken public POLY;

  uint256 private constant decimalFactor = 10**uint256(18);
  enum AllocationType { PRESALE, FOUNDER, AIRDROP, ADVISOR, RESERVE, BONUS1, BONUS2, BONUS3 }
  uint256 public constant INITIAL_SUPPLY   = 1000000000 * decimalFactor;
  uint256 public AVAILABLE_TOTAL_SUPPLY    = 1000000000 * decimalFactor;
  uint256 public AVAILABLE_PRESALE_SUPPLY  =  230000000 * decimalFactor; // 100% Released at Token Distribution (TD)
  uint256 public AVAILABLE_FOUNDER_SUPPLY  =  150000000 * decimalFactor; // 33% Released at TD +1 year -> 100% at TD +3 years
  uint256 public AVAILABLE_AIRDROP_SUPPLY  =   10000000 * decimalFactor; // 100% Released at TD
  uint256 public AVAILABLE_ADVISOR_SUPPLY  =   20000000 * decimalFactor; // 100% Released at TD +7 months
  uint256 public AVAILABLE_RESERVE_SUPPLY  =  513116658 * decimalFactor; // 6.8% Released at TD +100 days -> 100% at TD +4 years
  uint256 public AVAILABLE_BONUS1_SUPPLY  =    39053330 * decimalFactor; // 100% Released at TD +1 year
  uint256 public AVAILABLE_BONUS2_SUPPLY  =     9354408 * decimalFactor; // 100% Released at TD +2 years
  uint256 public AVAILABLE_BONUS3_SUPPLY  =    28475604 * decimalFactor; // 100% Released at TD +3 years

  uint256 public grandTotalClaimed = 0;
  uint256 public startTime;

  // Allocation with vesting information
  struct Allocation {
    uint8 AllocationSupply; // Type of allocation
    uint256 endCliff;       // Tokens are locked until
    uint256 endVesting;     // This is when the tokens are fully unvested
    uint256 totalAllocated; // Total tokens allocated
    uint256 amountClaimed;  // Total tokens claimed
  }
  mapping (address => Allocation) public allocations;

  // List of admins
  mapping (address => bool) public airdropAdmins;

  // Keeps track of whether or not a 250 POLY airdrop has been made to a particular address
  mapping (address => bool) public airdrops;

  modifier onlyOwnerOrAdmin() {
    require(msg.sender == owner || airdropAdmins[msg.sender]);
    _;
  }

  event LogNewAllocation(address indexed _recipient, AllocationType indexed _fromSupply, uint256 _totalAllocated, uint256 _grandTotalAllocated);
  event LogPolyClaimed(address indexed _recipient, uint8 indexed _fromSupply, uint256 _amountClaimed, uint256 _totalAllocated, uint256 _grandTotalClaimed);

  /**
    * @dev Constructor function - Set the poly token address
    * @param _startTime The time when PolyDistribution goes live
    */
  function PolyDistribution(uint256 _startTime) public {
    require(_startTime >= now);
    require(AVAILABLE_TOTAL_SUPPLY == AVAILABLE_PRESALE_SUPPLY.add(AVAILABLE_FOUNDER_SUPPLY).add(AVAILABLE_AIRDROP_SUPPLY).add(AVAILABLE_ADVISOR_SUPPLY).add(AVAILABLE_BONUS1_SUPPLY).add(AVAILABLE_BONUS2_SUPPLY).add(AVAILABLE_BONUS3_SUPPLY).add(AVAILABLE_RESERVE_SUPPLY));
    startTime = _startTime;
    POLY = new PolyToken(this);
  }

  /**
    * @dev Allow the owner of the contract to assign a new allocation
    * @param _recipient The recipient of the allocation
    * @param _totalAllocated The total amount of POLY available to the receipient (after vesting)
    * @param _supply The POLY supply the allocation will be taken from
    */
  function setAllocation (address _recipient, uint256 _totalAllocated, AllocationType _supply) onlyOwner public {
    require(allocations[_recipient].totalAllocated == 0 && _totalAllocated > 0);
    require(_supply >= AllocationType.PRESALE && _supply <= AllocationType.BONUS3);
    require(_recipient != address(0));
    if (_supply == AllocationType.PRESALE) {
      AVAILABLE_PRESALE_SUPPLY = AVAILABLE_PRESALE_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.PRESALE), 0, 0, _totalAllocated, 0);
    } else if (_supply == AllocationType.FOUNDER) {
      AVAILABLE_FOUNDER_SUPPLY = AVAILABLE_FOUNDER_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.FOUNDER), startTime + 1 years, startTime + 3 years, _totalAllocated, 0);
    } else if (_supply == AllocationType.ADVISOR) {
      AVAILABLE_ADVISOR_SUPPLY = AVAILABLE_ADVISOR_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.ADVISOR), startTime + 209 days, 0, _totalAllocated, 0);
    } else if (_supply == AllocationType.RESERVE) {
      AVAILABLE_RESERVE_SUPPLY = AVAILABLE_RESERVE_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.RESERVE), startTime + 100 days, startTime + 4 years, _totalAllocated, 0);
    } else if (_supply == AllocationType.BONUS1) {
      AVAILABLE_BONUS1_SUPPLY = AVAILABLE_BONUS1_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.BONUS1), startTime + 1 years, startTime + 1 years, _totalAllocated, 0);
    } else if (_supply == AllocationType.BONUS2) {
      AVAILABLE_BONUS2_SUPPLY = AVAILABLE_BONUS2_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.BONUS2), startTime + 2 years, startTime + 2 years, _totalAllocated, 0);
    } else if (_supply == AllocationType.BONUS3) {
      AVAILABLE_BONUS3_SUPPLY = AVAILABLE_BONUS3_SUPPLY.sub(_totalAllocated);
      allocations[_recipient] = Allocation(uint8(AllocationType.BONUS3), startTime + 3 years, startTime + 3 years, _totalAllocated, 0);
    }
    AVAILABLE_TOTAL_SUPPLY = AVAILABLE_TOTAL_SUPPLY.sub(_totalAllocated);
    LogNewAllocation(_recipient, _supply, _totalAllocated, grandTotalAllocated());
  }

  /**
    * @dev Add an airdrop admin
    */
  function setAirdropAdmin(address _admin, bool _isAdmin) public onlyOwner {
    airdropAdmins[_admin] = _isAdmin;
  }

  /**
    * @dev perform a transfer of allocations
    * @param _recipient is a list of recipients
    */
  function airdropTokens(address[] _recipient) public onlyOwnerOrAdmin {
    require(now >= startTime);
    uint airdropped;
    for(uint256 i = 0; i< _recipient.length; i++)
    {
        if (!airdrops[_recipient[i]]) {
          airdrops[_recipient[i]] = true;
          require(POLY.transfer(_recipient[i], 250 * decimalFactor));
          airdropped = airdropped.add(250 * decimalFactor);
        }
    }
    AVAILABLE_AIRDROP_SUPPLY = AVAILABLE_AIRDROP_SUPPLY.sub(airdropped);
    AVAILABLE_TOTAL_SUPPLY = AVAILABLE_TOTAL_SUPPLY.sub(airdropped);
    grandTotalClaimed = grandTotalClaimed.add(airdropped);
  }

  /**
    * @dev Transfer a recipients available allocation to their address
    * @param _recipient The address to withdraw tokens for
    */
  function transferTokens (address _recipient) public {
    require(allocations[_recipient].amountClaimed < allocations[_recipient].totalAllocated);
    require(now >= allocations[_recipient].endCliff);
    require(now >= startTime);
    uint256 newAmountClaimed;
    if (allocations[_recipient].endVesting > now) {
      // Transfer available amount based on vesting schedule and allocation
      newAmountClaimed = allocations[_recipient].totalAllocated.mul(now.sub(startTime)).div(allocations[_recipient].endVesting.sub(startTime));
    } else {
      // Transfer total allocated (minus previously claimed tokens)
      newAmountClaimed = allocations[_recipient].totalAllocated;
    }
    uint256 tokensToTransfer = newAmountClaimed.sub(allocations[_recipient].amountClaimed);
    allocations[_recipient].amountClaimed = newAmountClaimed;
    require(POLY.transfer(_recipient, tokensToTransfer));
    grandTotalClaimed = grandTotalClaimed.add(tokensToTransfer);
    LogPolyClaimed(_recipient, allocations[_recipient].AllocationSupply, tokensToTransfer, newAmountClaimed, grandTotalClaimed);
  }

  // Returns the amount of POLY allocated
  function grandTotalAllocated() public view returns (uint256) {
    return INITIAL_SUPPLY - AVAILABLE_TOTAL_SUPPLY;
  }

  // Allow transfer of accidentally sent ERC20 tokens
  function refundTokens(address _recipient, address _token) public onlyOwner {
    require(_token != address(POLY));
    IERC20 token = IERC20(_token);
    uint256 balance = token.balanceOf(this);
    require(token.transfer(_recipient, balance));
  }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"transferTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"airdropAdmins","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_PRESALE_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_totalAllocated","type":"uint256"},{"name":"_supply","type":"uint8"}],"name":"setAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_AIRDROP_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_BONUS3_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"grandTotalAllocated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_BONUS1_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_FOUNDER_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address[]"}],"name":"airdropTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allocations","outputs":[{"name":"AllocationSupply","type":"uint8"},{"name":"endCliff","type":"uint256"},{"name":"endVesting","type":"uint256"},{"name":"totalAllocated","type":"uint256"},{"name":"amountClaimed","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_token","type":"address"}],"name":"refundTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_admin","type":"address"},{"name":"_isAdmin","type":"bool"}],"name":"setAirdropAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"airdrops","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"grandTotalClaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_TOTAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_BONUS2_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"POLY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_ADVISOR_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AVAILABLE_RESERVE_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":true,"name":"_fromSupply","type":"uint8"},{"indexed":false,"name":"_totalAllocated","type":"uint256"},{"indexed":false,"name":"_grandTotalAllocated","type":"uint256"}],"name":"LogNewAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":true,"name":"_fromSupply","type":"uint8"},{"indexed":false,"name":"_amountClaimed","type":"uint256"},{"indexed":false,"name":"_totalAllocated","type":"uint256"},{"indexed":false,"name":"_grandTotalClaimed","type":"uint256"}],"name":"LogPolyClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526b033b2e3c9fd0803ce80000006002556abe4064fbcc1d7ea60000006003556a7c13bc4b2c133c560000006004556a084595161401484a0000006005556a108b2a2c280290940000006006556b01a870adc460ff9cc08800006007556a204ddd42edb5c0650800006008556a07bcdf794aae4b49a000006009556a178df19602e8009ed00000600a556000600b5534156200009e57600080fd5b60405160208062001ee08339810160405280805160008054600160a060020a03191633600160a060020a031617905591505042811015620000de57600080fd5b620001446007546200012f600a546200012f6009546200012f6008546200012f6006546200012f6005546200012f600454600354620001b064010000000002620011d9179091906401000000009004565b90640100000000620011d9620001b082021704565b600254146200015257600080fd5b600c8190553062000162620001c7565b600160a060020a039091168152602001604051809103906000f08015156200018957600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905550620001d8565b600082820183811015620001c057fe5b9392505050565b604051610ae480620013fc83390190565b61121480620001e86000396000f3006060604052600436106101245763ffffffff60e060020a6000350416630c89a0df811461012957806310e823841461014a57806312e43d921461017d5780631435e397146101a2578063162cbefe146101ca578063204b21d1146101dd5780632b41a901146101f05780632ceae552146102035780632ff2e9dc1461021657806334ac6f5e146102295780634ee51a271461023c57806352a9039c1461028b57806357f1935f146102df57806378e979251461030457806379aa024e146103175780638c86f0a71461033b5780638da5cb5b1461035a5780639377530f14610389578063a92259fc1461039c578063dc39537a146103af578063e4bbb4b0146103c2578063ed0e4665146103d5578063f2fde38b146103e8578063fefc708914610407575b600080fd5b341561013457600080fd5b610148600160a060020a036004351661041a565b005b341561015557600080fd5b610169600160a060020a036004351661069e565b604051901515815260200160405180910390f35b341561018857600080fd5b6101906106b3565b60405190815260200160405180910390f35b34156101ad57600080fd5b610148600160a060020a036004351660243560ff604435166106b9565b34156101d557600080fd5b610190610cb2565b34156101e857600080fd5b610190610cb8565b34156101fb57600080fd5b610190610cbe565b341561020e57600080fd5b610190610cd2565b341561022157600080fd5b610190610cd8565b341561023457600080fd5b610190610ce8565b341561024757600080fd5b6101486004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610cee95505050505050565b341561029657600080fd5b6102aa600160a060020a0360043516610ed7565b60405160ff909516855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156102ea57600080fd5b610148600160a060020a0360043581169060243516610f0a565b341561030f57600080fd5b610190611042565b341561032257600080fd5b610148600160a060020a03600435166024351515611048565b341561034657600080fd5b610169600160a060020a036004351661108e565b341561036557600080fd5b61036d6110a3565b604051600160a060020a03909116815260200160405180910390f35b341561039457600080fd5b6101906110b2565b34156103a757600080fd5b6101906110b8565b34156103ba57600080fd5b6101906110be565b34156103cd57600080fd5b61036d6110c4565b34156103e057600080fd5b6101906110d3565b34156103f357600080fd5b610148600160a060020a03600435166110d9565b341561041257600080fd5b610190611174565b600160a060020a0381166000908152600d6020526040812060038101546004909101548291901061044a57600080fd5b600160a060020a0383166000908152600d602052604090206001015442101561047257600080fd5b600c5442101561048157600080fd5b600160a060020a0383166000908152600d60205260409020600201544290111561052b57600c54600160a060020a0384166000908152600d6020526040902060020154610524916104d8919063ffffffff61117a16565b6105186104f0600c544261117a90919063ffffffff16565b600160a060020a0387166000908152600d60205260409020600301549063ffffffff61118c16565b9063ffffffff6111c216565b915061054a565b600160a060020a0383166000908152600d602052604090206003015491505b600160a060020a0383166000908152600d602052604090206004015461057790839063ffffffff61117a16565b600160a060020a038085166000908152600d6020526040808220600401869055600154939450929091169163a9059cbb918691859190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105f557600080fd5b6102c65a03f1151561060657600080fd5b50505060405180519050151561061b57600080fd5b600b5461062e908263ffffffff6111d916565b600b819055600160a060020a0384166000818152600d6020526040908190205460ff16927fc1b0dc2f9da98fa1aa634f1f6a39f6a2452952767c99e132640cb03af693c94591859187915180848152602001838152602001828152602001935050505060405180910390a3505050565b600e6020526000908152604090205460ff1681565b60035481565b60005433600160a060020a039081169116146106d457600080fd5b600160a060020a0383166000908152600d60205260409020600301541580156106fd5750600082115b151561070857600080fd5b600081600781111561071657fe5b101580156107305750600781600781111561072d57fe5b11155b151561073b57600080fd5b600160a060020a038316151561075057600080fd5b600081600781111561075e57fe5b14156107f957600354610777908363ffffffff61117a16565b60035560a06040519081016040908152600080835260208084018290528284018290526060840186905260808401829052600160a060020a0387168252600d9052208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b600181600781111561080757fe5b14156108b557600454610820908363ffffffff61117a16565b60045560a0604051908101604090815260018252600c546301e1338081016020808501919091526305a39a809091018284015260608301859052600060808401819052600160a060020a0387168152600d909152208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b60038160078111156108c357fe5b141561096a576006546108dc908363ffffffff61117a16565b60065560a0604051908101604090815260038252600c5463011389800160208084019190915260008284018190526060840186905260808401819052600160a060020a0387168152600d909152208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b600481600781111561097857fe5b1415610a2557600754610991908363ffffffff61117a16565b60075560a0604051908101604090815260048252600c546283d6008101602080850191909152630784ce009091018284015260608301859052600060808401819052600160a060020a0387168152600d909152208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b6005816007811115610a3357fe5b1415610ada57600854610a4c908363ffffffff61117a16565b60085560a0604051908101604090815260058252600c546301e133800160208084018290528284019190915260608301859052600060808401819052600160a060020a0387168152600d909152208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b6006816007811115610ae857fe5b1415610b8f57600954610b01908363ffffffff61117a16565b60095560a0604051908101604090815260068252600c546303c267000160208084018290528284019190915260608301859052600060808401819052600160a060020a0387168152600d909152208151815460ff191660ff91909116178155602082015181600101556040820151816002015560608201518160030155608082015160049091015550610c40565b6007816007811115610b9d57fe5b1415610c4057600a54610bb6908363ffffffff61117a16565b600a5560a0604051908101604090815260078252600c546305a39a800160208084018290528284019190915260608301859052600060808401819052600160a060020a0387168152600d909152208151815460ff191660ff919091161781556020820151816001015560408201518160020155606082015181600301556080820151600490910155505b600254610c53908363ffffffff61117a16565b600255806007811115610c6257fe5b83600160a060020a03167f1ee7c4bce4c301d0c55622a01f860f1b71b72f582250922fa662d173c32164ff84610c96610cbe565b60405191825260208201526040908101905180910390a3505050565b60055481565b600a5481565b6002546b033b2e3c9fd0803ce80000000390565b60085481565b6b033b2e3c9fd0803ce800000081565b60045481565b60008054819033600160a060020a0390811691161480610d265750600160a060020a0333166000908152600e602052604090205460ff165b1515610d3157600080fd5b600c54421015610d4057600080fd5b5060005b8251811015610e9057600f6000848381518110610d5d57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff161515610e88576001600f6000858481518110610d9c57fe5b90602001906020020151600160a060020a0390811682526020820192909252604001600020805460ff1916921515929092179091556001541663a9059cbb848381518110610de657fe5b90602001906020020151680d8d726b7177a8000060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e4657600080fd5b6102c65a03f11515610e5757600080fd5b505050604051805190501515610e6c57600080fd5b610e8582680d8d726b7177a8000063ffffffff6111d916565b91505b600101610d44565b600554610ea3908363ffffffff61117a16565b600555600254610eb9908363ffffffff61117a16565b600255600b54610ecf908363ffffffff6111d916565b600b55505050565b600d602052600090815260409020805460018201546002830154600384015460049094015460ff90931693919290919085565b60008054819033600160a060020a03908116911614610f2857600080fd5b600154600160a060020a0384811691161415610f4357600080fd5b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9d57600080fd5b6102c65a03f11515610fae57600080fd5b5050506040518051915050600160a060020a03821663a9059cbb858360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561101657600080fd5b6102c65a03f1151561102757600080fd5b50505060405180519050151561103c57600080fd5b50505050565b600c5481565b60005433600160a060020a0390811691161461106357600080fd5b600160a060020a03919091166000908152600e60205260409020805460ff1916911515919091179055565b600f6020526000908152604090205460ff1681565b600054600160a060020a031681565b600b5481565b60025481565b60095481565b600154600160a060020a031681565b60065481565b60005433600160a060020a039081169116146110f457600080fd5b600160a060020a038116151561110957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075481565b60008282111561118657fe5b50900390565b60008083151561119f57600091506111bb565b508282028284828115156111af57fe5b04146111b757fe5b8091505b5092915050565b60008082848115156111d057fe5b04949350505050565b6000828201838110156111b757fe00a165627a7a72305820e8bf77844267549222dc800cd8efa89d2113ddec31358902d1eb2a33f94f12080029606060405260408051908101604052600881527f506f6c796d6174680000000000000000000000000000000000000000000000006020820152600090805161004b92916020019061012b565b5060408051908101604052600481527f504f4c59000000000000000000000000000000000000000000000000000000006020820152600190805161009392916020019061012b565b50341561009f57600080fd5b604051602080610ae483398101604052808051915050600160a060020a03811615156100ca57600080fd5b600160a060020a0381166000818152600260205260408082206b033b2e3c9fd0803ce8000000908190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a3506101c6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061016c57805160ff1916838001178555610199565b82800160010185558215610199579182015b8281111561019957825182559160200191906001019061017e565b506101a59291506101a9565b5090565b6101c391905b808211156101a557600081556001016101af565b90565b61090f806101d56000396000f3006060604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd1461017e57806323b872dd146101a3578063313ce567146101cb57806366188463146101f45780636d6a6a4d1461021657806370a082311461022957806395d89b4114610248578063a9059cbb1461025b578063d73dd6231461027d578063dd62ed3e1461029f575b600080fd5b34156100c957600080fd5b6100d16102c4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561010d5780820151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015357600080fd5b61016a600160a060020a0360043516602435610362565b604051901515815260200160405180910390f35b341561018957600080fd5b6101916103ce565b60405190815260200160405180910390f35b34156101ae57600080fd5b61016a600160a060020a03600435811690602435166044356103de565b34156101d657600080fd5b6101de610560565b60405160ff909116815260200160405180910390f35b34156101ff57600080fd5b61016a600160a060020a0360043516602435610565565b341561022157600080fd5b61019161065f565b341561023457600080fd5b610191600160a060020a036004351661066b565b341561025357600080fd5b6100d1610686565b341561026657600080fd5b61016a600160a060020a03600435166024356106f1565b341561028857600080fd5b61016a600160a060020a03600435166024356107ec565b34156102aa57600080fd5b610191600160a060020a0360043581169060243516610890565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561035a5780601f1061032f5761010080835404028352916020019161035a565b820191906000526020600020905b81548152906001019060200180831161033d57829003601f168201915b505050505081565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6b033b2e3c9fd0803ce800000081565b6000600160a060020a03831615156103f557600080fd5b600160a060020a03841660009081526002602052604090205482111561041a57600080fd5b600160a060020a038085166000908152600360209081526040808320339094168352929052205482111561044d57600080fd5b600160a060020a038416600090815260026020526040902054610476908363ffffffff6108bb16565b600160a060020a0380861660009081526002602052604080822093909355908516815220546104ab908363ffffffff6108cd16565b600160a060020a038085166000908152600260209081526040808320949094558783168252600381528382203390931682529190915220546104f3908363ffffffff6108bb16565b600160a060020a03808616600081815260036020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b601281565b600160a060020a033381166000908152600360209081526040808320938616835292905290812054808311156105c257600160a060020a0333811660009081526003602090815260408083209388168352929052908120556105f9565b6105d2818463ffffffff6108bb16565b600160a060020a033381166000908152600360209081526040808320938916835292905220555b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b670de0b6b3a764000081565b600160a060020a031660009081526002602052604090205490565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561035a5780601f1061032f5761010080835404028352916020019161035a565b6000600160a060020a038316151561070857600080fd5b600160a060020a03331660009081526002602052604090205482111561072d57600080fd5b600160a060020a033316600090815260026020526040902054610756908363ffffffff6108bb16565b600160a060020a03338116600090815260026020526040808220939093559085168152205461078b908363ffffffff6108cd16565b600160a060020a0380851660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a033381166000908152600360209081526040808320938616835292905290812054610824908363ffffffff6108cd16565b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6000828211156108c757fe5b50900390565b6000828201838110156108dc57fe5b93925050505600a165627a7a7230582066d6bfd4160d6f7960286626b40454fca2af2fdb811c33b18c3989cf0e43ca670029000000000000000000000000000000000000000000000000000000005a714736

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a714736


   Swarm Source:
bzzr://66d6bfd4160d6f7960286626b40454fca2af2fdb811c33b18c3989cf0e43ca67

 

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.