ETH Price: $3,404.07 (+1.02%)
Gas: 6.01 Gwei

Contract

0x398aCB6594866BC7aC3A23e925b2fc3727C19828
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer50200202018-02-02 23:49:302519 days ago1517615370IN
0x398aCB65...727C19828
0.04990259 ETH0.0008783441
Transfer50200132018-02-02 23:48:072519 days ago1517615287IN
0x398aCB65...727C19828
0.05898093 ETH0.0008783441
Transfer50199912018-02-02 23:42:322519 days ago1517614952IN
0x398aCB65...727C19828
0.06805927 ETH0.0008783441
Transfer50199832018-02-02 23:41:042519 days ago1517614864IN
0x398aCB65...727C19828
0.06893762 ETH0.0008783441
Transfer50199732018-02-02 23:38:452519 days ago1517614725IN
0x398aCB65...727C19828
0.08123762 ETH0.00086141
Withdraw49830322018-01-27 17:00:262525 days ago1517072426IN
0x398aCB65...727C19828
0 ETH0.0029604999
Transfer49552892018-01-23 0:59:542530 days ago1516669194IN
0x398aCB65...727C19828
0.1 ETH0.000211594
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
2.32 ETH0.003640
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
0.09 ETH0.003640
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
9.99 ETH0.003640
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
0.12324 ETH0.003640
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
10.49 ETH0.003640
Transfer49474622018-01-21 17:00:382531 days ago1516554038IN
0x398aCB65...727C19828
3.5156 ETH0.003640
Transfer49454972018-01-21 8:58:212532 days ago1516525101IN
0x398aCB65...727C19828
0.8 ETH00.0000001
Claim Ownership49422242018-01-20 19:19:452532 days ago1516475985IN
0x398aCB65...727C19828
0 ETH0.0008957641
Ownable49422072018-01-20 19:16:072532 days ago1516475767IN
0x398aCB65...727C19828
0 ETH0.0009057741
Transfer49397172018-01-20 9:23:172533 days ago1516440197IN
0x398aCB65...727C19828
3.5156 ETH0.00529258.8
Transfer49397162018-01-20 9:22:362533 days ago1516440156IN
0x398aCB65...727C19828
0.09 ETH0.00529258.8
Transfer49397152018-01-20 9:22:192533 days ago1516440139IN
0x398aCB65...727C19828
0.12324 ETH0.00529258.8
Transfer49397152018-01-20 9:22:192533 days ago1516440139IN
0x398aCB65...727C19828
10.49 ETH0.00529258.8
Transfer49397152018-01-20 9:22:192533 days ago1516440139IN
0x398aCB65...727C19828
9.99 ETH0.00529258.8
Transfer49397142018-01-20 9:22:132533 days ago1516440133IN
0x398aCB65...727C19828
2.32 ETH0.00529258.8
Transfer49385192018-01-20 4:17:062533 days ago1516421826IN
0x398aCB65...727C19828
0.19184586 ETH0.000041440.5
Transfer49379132018-01-20 1:48:192533 days ago1516412899IN
0x398aCB65...727C19828
0.1 ETH0.0004498821
Transfer49377752018-01-20 1:10:222533 days ago1516410622IN
0x398aCB65...727C19828
0.05 ETH0.0033159640
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
49830322018-01-27 17:00:262525 days ago1517072426
0x398aCB65...727C19828
2,000 ETH
49552892018-01-23 0:59:542530 days ago1516669194
0x398aCB65...727C19828
0.1 ETH
49454972018-01-21 8:58:212532 days ago1516525101
0x398aCB65...727C19828
0.8 ETH
49385192018-01-20 4:17:062533 days ago1516421826
0x398aCB65...727C19828
0.19184586 ETH
49377752018-01-20 1:10:222533 days ago1516410622
0x398aCB65...727C19828
0.05 ETH
49375792018-01-20 0:21:082533 days ago1516407668
0x398aCB65...727C19828
0.21914614 ETH
49375672018-01-20 0:17:522533 days ago1516407472
0x398aCB65...727C19828
1 ETH
49375582018-01-20 0:16:102533 days ago1516407370
0x398aCB65...727C19828
0.095 ETH
49375512018-01-20 0:15:052533 days ago1516407305
0x398aCB65...727C19828
0.15 ETH
49375492018-01-20 0:14:522533 days ago1516407292
0x398aCB65...727C19828
0.01100668 ETH
49374572018-01-19 23:54:012533 days ago1516406041
0x398aCB65...727C19828
5.2 ETH
49374182018-01-19 23:43:442533 days ago1516405424
0x398aCB65...727C19828
23 ETH
49373872018-01-19 23:35:502533 days ago1516404950
0x398aCB65...727C19828
23.5 ETH
49368002018-01-19 21:09:382533 days ago1516396178
0x398aCB65...727C19828
3 ETH
49367802018-01-19 21:03:472533 days ago1516395827
0x398aCB65...727C19828
1.993 ETH
49367592018-01-19 20:58:322533 days ago1516395512
0x398aCB65...727C19828
2.5 ETH
49366602018-01-19 20:32:382533 days ago1516393958
0x398aCB65...727C19828
0.59999999 ETH
49366462018-01-19 20:28:372533 days ago1516393717
0x398aCB65...727C19828
10 ETH
49366382018-01-19 20:27:192533 days ago1516393639
0x398aCB65...727C19828
5 ETH
49366142018-01-19 20:22:032533 days ago1516393323
0x398aCB65...727C19828
1.38999999 ETH
49365852018-01-19 20:15:152533 days ago1516392915
0x398aCB65...727C19828
13 ETH
49365452018-01-19 20:06:102533 days ago1516392370
0x398aCB65...727C19828
10 ETH
49365292018-01-19 20:01:312533 days ago1516392091
0x398aCB65...727C19828
7.5 ETH
49365262018-01-19 20:00:512533 days ago1516392051
0x398aCB65...727C19828
17.5 ETH
49365262018-01-19 20:00:512533 days ago1516392051
0x398aCB65...727C19828
5 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-19
*/

pragma solidity ^0.4.18;

// File: zeppelin-solidity/contracts/math/SafeMath.sol

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

// File: contracts/Discounts.sol

library Discounts {
  using SafeMath for uint256;

  /**************************************************************************
   * TYPES
   *************************************************************************/

  /*
   * Top-level struct for grouping of tiers with a base purchase rate
   */
  struct Collection {
    Tier[] tiers;

    // number of tokens per wei
    uint256 baseRate;
  }

  /*
   * Struct for a given tier - discount and availability
   */
  struct Tier {
    // discount the set purchase price, expressed in basis points (‱)
    // range (0‱ .. 10,000‱) corresponds to (0.00% .. 100.00%)
    uint256 discount;

    // number of remaining available tokens in tier
    uint256 available;
  }

  // upper-bound of basis point scale
  uint256 public constant MAX_DISCOUNT = 10000;


  /**************************************************************************
   * CREATE
   *************************************************************************/

  /*
   * @dev Add a new tier at the end of the list
   * @param _discount - Discount in basis points
   * @param _available - Available supply at tier
   */
  function addTier(
    Collection storage self,
    uint256 _discount,
    uint256 _available
  )
    internal
  {
    self.tiers.push(Tier({
      discount: _discount,
      available: _available
    }));
  }


  /**************************************************************************
   * PURCHASE
   *************************************************************************/

  /*
   * @dev Subtracts supply from tiers starting at a minimum, using up funds
   * @param _amount - Maximum number of tokens to purchase
   * @param _funds - Allowance in Wei
   * @param _minimumTier - Minimum tier to start purchasing from
   * @return Total tokens purchased and remaining funds in wei
   */
  function purchaseTokens(
    Collection storage self,
    uint256 _amount,
    uint256 _funds,
    uint256 _minimumTier
  )
    internal
    returns (
      uint256 purchased,
      uint256 remaining
    )
  {
    uint256 issue = 0; // tracks total tokens to issue
    remaining = _funds;

    uint256 available;  // var for available tokens at tier
    uint256 spend; // amount spent at tier
    uint256 affordable;  // var for # funds can pay for at tier
    uint256 purchase; // var for # to purchase at tier

    // for each tier starting at minimum
    // draw from the sent funds and count tokens to issue
    for (var i = _minimumTier; i < self.tiers.length && issue < _amount; i++) {
      // get the available tokens left at each tier
      available = self.tiers[i].available;

      // compute the maximum tokens that the funds can pay for
      affordable = _computeTokensPurchasedAtTier(self, i, remaining);

      // either purchase what the funds can afford, or the whole supply
      // at the tier
      if (affordable < available) {
        purchase = affordable;
      } else {
        purchase = available;
      }

      // limit the amount purchased up to specified amount
      // use safemath here in case of unknown overflow risk
      if (purchase.add(issue) > _amount) {
        purchase = _amount.sub(issue);
      }

      spend = _computeCostForTokensAtTier(self, i, purchase);

      // decrease available supply at tier
      self.tiers[i].available -= purchase;

      // increase tokens to issue
      issue += purchase;

      // decrement funds to proceed
      remaining -= spend;
    }

    return (issue, remaining);
  }


  /**************************************************************************
   * PRICE MATH
   *************************************************************************/

  // @return total number of tokens for an amount of wei, discount-adjusted
  function _computeTokensPurchasedAtTier(
    Collection storage self,
    uint256 _tier,
    uint256 _wei
  )
    private
    view
    returns (uint256)
  {
    var paidBasis = MAX_DISCOUNT.sub(self.tiers[_tier].discount);

    return _wei.mul(self.baseRate).mul(MAX_DISCOUNT) / paidBasis;
  }

  // @return cost in wei for that many tokens
  function _computeCostForTokensAtTier(
    Collection storage self,
    uint256 _tier,
    uint256 _tokens
  )
    private
    view
    returns (uint256)
  {
    var paidBasis = MAX_DISCOUNT.sub(self.tiers[_tier].discount);

    var numerator = _tokens.mul(paidBasis);
    var denominator = MAX_DISCOUNT.mul(self.baseRate);

    var floor = _tokens.mul(paidBasis).div(
      MAX_DISCOUNT.mul(self.baseRate)
    );

    // must round up cost to next wei (cause token computation rounds down)
    if (numerator % denominator != 0) {
      floor = floor + 1;
    }

    return floor;
  }
}

// File: contracts/Limits.sol

library Limits {
  using SafeMath for uint256;

  struct PurchaseRecord {
    uint256 blockNumber;
    uint256 amount;
  }

  struct Window {
    uint256 amount;  // # of tokens
    uint256 duration;  // # of blocks

    mapping (address => PurchaseRecord) purchases;
  }

  /*
   * Record a purchase towards a purchaser's cap limit
   * @dev resets the purchaser's cap if the window duration has been met
   * @param _participant - purchaser
   * @param _amount - token amount of new purchase
   */
  function recordPurchase(
    Window storage self,
    address _participant,
    uint256 _amount
  )
    internal
  {
    var blocksLeft = getBlocksUntilReset(self, _participant);
    var record = self.purchases[_participant];

    if (blocksLeft == 0) {
      record.amount = _amount;
      record.blockNumber = block.number;
    } else {
      record.amount = record.amount.add(_amount);
    }
  }

  /*
   * Retrieve the current limit for a given participant, based on previous
   * purchase history
   * @param _participant - Purchaser
   * @return amount of tokens left for participant with cap
   */
  function getLimit(Window storage self, address _participant)
    public
    view
    returns (uint256 _amount)
  {
    var blocksLeft = getBlocksUntilReset(self, _participant);

    if (blocksLeft == 0) {
      return self.amount;
    } else {
      return self.amount.sub(self.purchases[_participant].amount);
    }
  }

  function getBlocksUntilReset(Window storage self, address _participant)
    public
    view
    returns (uint256 _blocks)
  {
    var expires = self.purchases[_participant].blockNumber + self.duration;
    if (block.number > expires) {
      return 0;
    } else {
      return expires - block.number;
    }
  }
}

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

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

}

// File: zeppelin-solidity/contracts/ownership/Claimable.sol

/**
 * @title Claimable
 * @dev Extension for the Ownable contract, where the ownership needs to be claimed.
 * This allows the new owner to accept the transfer.
 */
contract Claimable is Ownable {
  address public pendingOwner;

  /**
   * @dev Modifier throws if called by any account other than the pendingOwner.
   */
  modifier onlyPendingOwner() {
    require(msg.sender == pendingOwner);
    _;
  }

  /**
   * @dev Allows the current owner to set the pendingOwner address.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    pendingOwner = newOwner;
  }

  /**
   * @dev Allows the pendingOwner address to finalize the transfer.
   */
  function claimOwnership() onlyPendingOwner public {
    OwnershipTransferred(owner, pendingOwner);
    owner = pendingOwner;
    pendingOwner = address(0);
  }
}

// File: contracts/SeeToken.sol

/**
 * @title SEE Token
 * Not a full ERC20 token - prohibits transferring. Serves as a record of
 * account, to redeem for real tokens after launch.
 */
contract SeeToken is Claimable {
  using SafeMath for uint256;

  string public constant name = "See Presale Token";
  string public constant symbol = "SEE";
  uint8 public constant decimals = 18;

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

  event Issue(address to, uint256 amount);

  /**
   * @dev Issue new tokens
   * @param _to The address that will receive the minted tokens
   * @param _amount the amount of new tokens to issue
   */
  function issue(address _to, uint256 _amount) onlyOwner public {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);

    Issue(_to, _amount);
  }

  /**
   * @dev Get the balance for a particular token holder
   * @param _holder The token holder's address
   * @return The holder's balance
   */
  function balanceOf(address _holder) public view returns (uint256 balance) {
    balance = balances[_holder];
  }
}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

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

  bool public paused = false;


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

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

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

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

// File: contracts/Presale.sol

contract Presale is Claimable, Pausable {
  using Discounts for Discounts.Collection;
  using Limits for Limits.Window;

  struct Participant {
    bool authorized;

    uint256 minimumTier;
  }


  /**************************************************************************
   * STORAGE / EVENTS
   *************************************************************************/

  SeeToken token;
  Discounts.Collection discounts;
  Limits.Window cap;

  mapping (address => Participant) participants;


  event Tier(uint256 discount, uint256 available);


  /**************************************************************************
   * CONSTRUCTOR / LIFECYCLE
   *************************************************************************/

  function Presale(address _token)
    public
  {
    token = SeeToken(_token);

    paused = true;
  }

  /*
   * @dev (Done as part of migration) Claims ownership of token contract
   */
  function claimToken() public {
    token.claimOwnership();
  }

  /*
   * Allow purchase
   * @dev while paused
   */
  function unpause()
    onlyOwner
    whenPaused
    whenRateSet
    whenCapped
    whenOwnsToken
    public
  {
    super.unpause();
  }


  /**************************************************************************
   * ADMIN INTERFACE
   *************************************************************************/

  /*
   * Set the base purchase rate for the token
   * @param _purchaseRate - number of tokens granted per wei
   */
  function setRate(uint256 _purchaseRate)
    onlyOwner
    whenPaused
    public
  {
    discounts.baseRate = _purchaseRate;
  }

  /*
   * Specify purchasing limits for a single account: the limit of tokens
   * that a participant may purchase in a set amount of time (blocks)
   * @param _amount - Number of tokens
   * @param _duration - Number of blocks
   */
  function limitPurchasing(uint256 _amount, uint256 _duration)
    onlyOwner
    whenPaused
    public
  {
    cap.amount = _amount;
    cap.duration = _duration;
  }

  /*
   * Add a tier with a given discount and available supply
   * @param _discount - Discount in basis points
   * @param _available - Available supply at tier
   */
  function addTier(uint256 _discount, uint256 _available)
    onlyOwner
    whenPaused
    public
  {
    discounts.addTier(_discount, _available);

    Tier(_discount, _available);
  }

  /*
   * Authorize a group of participants for a tier
   * @param _minimumTier - minimum tier for list of participants
   * @param _participants - array of authorized addresses
   */
  function authorizeForTier(uint256 _minimumTier, address[] _authorized)
    onlyOwner
    public
  {
    for (uint256 i = 0; i < _authorized.length; i++) {
      participants[_authorized[i]] = Participant({
        authorized: true,
        minimumTier: _minimumTier
      });
    }
  }

  /*
   * Withdraw balance from presale
   */
  function withdraw()
    onlyOwner
    public
  {
    owner.transfer(this.balance);
  }


  /**************************************************************************
   * PURCHASE INTERFACE
   *************************************************************************/

  /*
   * Fallback (default) function.
   * @dev Forwards to `purchaseTokens()`
   */
  function ()
    public
    payable
  {
    purchaseTokens();
  }

  /*
   * Public purchase interface for authorized Dragon Holders
   * @dev Purchases tokens starting in authorized minimum tier
   */
  function purchaseTokens()
    onlyAuthorized
    whenNotPaused
    public
    payable
  {
    var limit = cap.getLimit(msg.sender);

    var (purchased, refund) = discounts.purchaseTokens(
      limit,
      msg.value,
      participants[msg.sender].minimumTier
    );

    cap.recordPurchase(msg.sender, purchased);

    // issue new tokens
    token.issue(msg.sender, purchased);

    // if there are funds left, send refund
    if (refund > 0) {
      msg.sender.transfer(refund);
    }
  }


  /**************************************************************************
   * PRICING / AVAILABILITY - VIEW INTERFACE
   *************************************************************************/

  /*
   * Get terms for purchasing limit window
   * @return number of tokens and duration in blocks
   */
  function getPurchaseLimit()
    public
    view
    returns (uint256 _amount, uint256 _duration)
  {
    _amount = cap.amount;
    _duration = cap.duration;
  }

  /*
   * Get tiers currently set up, with discounts and available supplies
   * @return array of tuples (discount, available)
   */
  function getTiers()
    public
    view
    returns (uint256[2][])
  {
    var records = discounts.tiers;
    uint256[2][] memory tiers = new uint256[2][](records.length);

    for (uint256 i = 0; i < records.length; i++) {
      tiers[i][0] = records[i].discount;
      tiers[i][1] = records[i].available;
    }

    return tiers;
  }

  /*
   * Get available supply for each tier for a given participant
   * @dev starts at minimum tier for participant (requiring auth)
   * @return available supply by tier index, zeroes for non-auth
   */
  function getAvailability(address _participant)
    public
    view
    returns (uint256[])
  {
    var participant = participants[_participant];
    uint256 minimumTier = participant.minimumTier;

    // minor HACK - if the participant isn't authorized, just set the
    // minimum tier above the bounds
    if (!participant.authorized) {
      minimumTier = discounts.tiers.length;
    }

    uint256[] memory tiers = new uint256[](discounts.tiers.length);

    for (uint256 i = minimumTier; i < tiers.length; i++) {
      tiers[i] = discounts.tiers[i].available;
    }

    return tiers;
  }


  /**************************************************************************
   * MODIFIERS
   *************************************************************************/

  /*
   * @dev require participant is whitelist-authorized
   */
  modifier onlyAuthorized() {
    require(participants[msg.sender].authorized);
    _;
  }

  /*
   * @dev baseRate will default to 0
   */
  modifier whenRateSet() {
    require(discounts.baseRate != 0);
    _;
  }

  /*
   * @dev to prevent accidentally capping at 0
   */
  modifier whenCapped() {
    require(cap.amount != 0);
    _;
  }

  /*
   * @dev asserts zeppelin Claimable workflow is finalized
   */
  modifier whenOwnsToken() {
    require(token.owner() == address(this));
    _;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"getPurchaseLimit","outputs":[{"name":"_amount","type":"uint256"},{"name":"_duration","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_participant","type":"address"}],"name":"getAvailability","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_purchaseRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_discount","type":"uint256"},{"name":"_available","type":"uint256"}],"name":"addTier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"limitPurchasing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTiers","outputs":[{"name":"","type":"uint256[2][]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minimumTier","type":"uint256"},{"name":"_authorized","type":"address[]"}],"name":"authorizeForTier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"discount","type":"uint256"},{"indexed":false,"name":"available","type":"uint256"}],"name":"Tier","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60606040526000600160146101000a81548160ff021916908315150217905550341561002a57600080fd5b604051602080611a0883398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060146101000a81548160ff02191690831515021790555050611917806100f16000396000f3006060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630adde487146100fb5780632b1c511f1461012b5780633290ce29146101b957806334fcf437146101c35780633ccfd60b146101e65780633f4ba83a146101fb5780634451d89f1461021057806345350759146102255780634e71e0c8146102515780635c975abb146102665780638456cb59146102935780638da5cb5b146102a8578063ce233452146102fd578063de17057014610329578063e303e81e146103b6578063e30c397814610419578063f2fde38b1461046e575b6100f96104a7565b005b341561010657600080fd5b61010e610785565b604051808381526020018281526020019250505060405180910390f35b341561013657600080fd5b610162600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061079c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101a557808201518184015260208101905061018a565b505050509050019250505060405180910390f35b6101c16104a7565b005b34156101ce57600080fd5b6101e460048080359060200190919050506108ac565b005b34156101f157600080fd5b6101f961092f565b005b341561020657600080fd5b61020e610a04565b005b341561021b57600080fd5b610223610b90565b005b341561023057600080fd5b61024f6004808035906020019091908035906020019091905050610c2b565b005b341561025c57600080fd5b610264610cfa565b005b341561027157600080fd5b610279610e99565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102a6610eac565b005b34156102b357600080fd5b6102bb610f6b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030857600080fd5b6103276004808035906020019091908035906020019091905050610f90565b005b341561033457600080fd5b61033c61101e565b60405180806020018281038252838181518152602001915080516000925b818410156103a557828490602001906020020151600260200280838360005b83811015610394578082015181840152602081019050610379565b50505050905001926001019261035a565b925050509250505060405180910390f35b34156103c157600080fd5b610417600480803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611149565b005b341561042457600080fd5b61042c611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611287565b005b6000806000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151561050757600080fd5b600160149054906101000a900460ff1615151561052357600080fd5b600573f446b831f4ebcc8777375592ba9f03124401f2e863ea3657949091336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15156105cd57600080fd5b6102c65a03f415156105de57600080fd5b5050506040518051905092506106448334600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003611326909392919063ffffffff16565b9150915061065e338360056114369092919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663867904b433846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561072257600080fd5b6102c65a03f1151561073357600080fd5b5050506000811115610780573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561077f57600080fd5b5b505050565b600080600560000154915060056001015490509091565b6107a461183b565b6000806107af61183b565b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350836001015492508360000160009054906101000a900460ff16151561081d5760036000018054905092505b6003600001805490506040518059106108335750595b908082528060200260200182016040525091508290505b81518110156108a05760036000018181548110151561086557fe5b906000526020600020906002020160010154828281518110151561088557fe5b9060200190602002018181525050808060010191505061084a565b81945050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090757600080fd5b600160149054906101000a900460ff16151561092257600080fd5b8060036001018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610a0257600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5f57600080fd5b600160149054906101000a900460ff161515610a7a57600080fd5b600060036001015414151515610a8f57600080fd5b600060056000015414151515610aa457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610b4957600080fd5b6102c65a03f11515610b5a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8e6114cf565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e71e0c86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c1557600080fd5b6102c65a03f11515610c2657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c8657600080fd5b600160149054906101000a900460ff161515610ca157600080fd5b610cb78282600361158e9092919063ffffffff16565b7fd4fd4ec04c705d8ac37c0c8d4e820002cfa95e7474c1b2c4bf7aa3d747db41d38282604051808381526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0757600080fd5b600160149054906101000a900460ff16151515610f2357600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610feb57600080fd5b600160149054906101000a900460ff16151561100657600080fd5b81600560000181905550806005600101819055505050565b61102661184f565b600061103061184f565b600060036000019250828054905060405180591061104b5750595b90808252806020026020018201604052801561108157816020015b61106e611863565b8152602001906001900390816110665790505b509150600090505b82805490508110156111405782818154811015156110a357fe5b90600052602060002090600202016000015482828151811015156110c357fe5b9060200190602002015160006002811015156110db57fe5b60200201818152505082818154811015156110f257fe5b906000526020600020906002020160010154828281518110151561111257fe5b90602001906020020151600160028110151561112a57fe5b6020020181815250508080600101915050611089565b81935050505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a657600080fd5b600090505b815181101561125c576040805190810160405280600115158152602001848152506008600084848151811015156111de57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505080806001019150506111ab565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600095508996508890505b8b600001805490508110801561135257508a86105b15611421578b6000018181548110151561136857fe5b90600052602060002090600202016001015494506113878c82896115ea565b9250848310156113995782915061139d565b8491505b8a6113b1878461166690919063ffffffff16565b11156113cd576113ca868c61168490919063ffffffff16565b91505b6113d88c828461169d565b9350818c600001828154811015156113ec57fe5b90600052602060002090600202016001016000828254039250508190555081860195508387039650808060010191505061133d565b85879750975050505050505094509492505050565b6000806114438585611777565b91508460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008214156114a8578281600101819055504381600001819055506114c8565b6114bf83826001015461166690919063ffffffff16565b81600101819055505b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152a57600080fd5b600160149054906101000a900460ff16151561154557600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b8260000180548060010182816115a4919061188a565b9160005260206000209060020201600060408051908101604052808681526020018581525090919091506000820151816000015560208201518160010155505050505050565b600080611624856000018581548110151561160157fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b9050806116526127106116448860010154876117e590919063ffffffff16565b6117e590919063ffffffff16565b81151561165b57fe5b049150509392505050565b600080828401905083811015151561167a57fe5b8091505092915050565b600082821115151561169257fe5b818303905092915050565b60008060008060006116dc88600001888154811015156116b957fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b93506116f184876117e590919063ffffffff16565b925061170c88600101546127106117e590919063ffffffff16565b915061174b61172a89600101546127106117e590919063ffffffff16565b61173d86896117e590919063ffffffff16565b61182090919063ffffffff16565b90506000828481151561175a57fe5b06141515611769576001810190505b809450505050509392505050565b60008083600101548460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154019050804311156117d857600091506117de565b43810391505b5092915050565b60008060008414156117fa5760009150611819565b828402905082848281151561180b57fe5b0414151561181557fe5b8091505b5092915050565b600080828481151561182e57fe5b0490508091505092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b60408051908101604052806002905b60008152602001906001900390816118725790505090565b8154818355818115116118b7576002028160020283600052602060002091820191016118b691906118bc565b5b505050565b6118e891905b808211156118e4576000808201600090556001820160009055506002016118c2565b5090565b905600a165627a7a723058208fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f00290000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d

Deployed Bytecode

0x6060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630adde487146100fb5780632b1c511f1461012b5780633290ce29146101b957806334fcf437146101c35780633ccfd60b146101e65780633f4ba83a146101fb5780634451d89f1461021057806345350759146102255780634e71e0c8146102515780635c975abb146102665780638456cb59146102935780638da5cb5b146102a8578063ce233452146102fd578063de17057014610329578063e303e81e146103b6578063e30c397814610419578063f2fde38b1461046e575b6100f96104a7565b005b341561010657600080fd5b61010e610785565b604051808381526020018281526020019250505060405180910390f35b341561013657600080fd5b610162600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061079c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101a557808201518184015260208101905061018a565b505050509050019250505060405180910390f35b6101c16104a7565b005b34156101ce57600080fd5b6101e460048080359060200190919050506108ac565b005b34156101f157600080fd5b6101f961092f565b005b341561020657600080fd5b61020e610a04565b005b341561021b57600080fd5b610223610b90565b005b341561023057600080fd5b61024f6004808035906020019091908035906020019091905050610c2b565b005b341561025c57600080fd5b610264610cfa565b005b341561027157600080fd5b610279610e99565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102a6610eac565b005b34156102b357600080fd5b6102bb610f6b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030857600080fd5b6103276004808035906020019091908035906020019091905050610f90565b005b341561033457600080fd5b61033c61101e565b60405180806020018281038252838181518152602001915080516000925b818410156103a557828490602001906020020151600260200280838360005b83811015610394578082015181840152602081019050610379565b50505050905001926001019261035a565b925050509250505060405180910390f35b34156103c157600080fd5b610417600480803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611149565b005b341561042457600080fd5b61042c611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611287565b005b6000806000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151561050757600080fd5b600160149054906101000a900460ff1615151561052357600080fd5b600573f446b831f4ebcc8777375592ba9f03124401f2e863ea3657949091336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15156105cd57600080fd5b6102c65a03f415156105de57600080fd5b5050506040518051905092506106448334600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003611326909392919063ffffffff16565b9150915061065e338360056114369092919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663867904b433846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561072257600080fd5b6102c65a03f1151561073357600080fd5b5050506000811115610780573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561077f57600080fd5b5b505050565b600080600560000154915060056001015490509091565b6107a461183b565b6000806107af61183b565b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350836001015492508360000160009054906101000a900460ff16151561081d5760036000018054905092505b6003600001805490506040518059106108335750595b908082528060200260200182016040525091508290505b81518110156108a05760036000018181548110151561086557fe5b906000526020600020906002020160010154828281518110151561088557fe5b9060200190602002018181525050808060010191505061084a565b81945050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090757600080fd5b600160149054906101000a900460ff16151561092257600080fd5b8060036001018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610a0257600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5f57600080fd5b600160149054906101000a900460ff161515610a7a57600080fd5b600060036001015414151515610a8f57600080fd5b600060056000015414151515610aa457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610b4957600080fd5b6102c65a03f11515610b5a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8e6114cf565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e71e0c86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c1557600080fd5b6102c65a03f11515610c2657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c8657600080fd5b600160149054906101000a900460ff161515610ca157600080fd5b610cb78282600361158e9092919063ffffffff16565b7fd4fd4ec04c705d8ac37c0c8d4e820002cfa95e7474c1b2c4bf7aa3d747db41d38282604051808381526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0757600080fd5b600160149054906101000a900460ff16151515610f2357600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610feb57600080fd5b600160149054906101000a900460ff16151561100657600080fd5b81600560000181905550806005600101819055505050565b61102661184f565b600061103061184f565b600060036000019250828054905060405180591061104b5750595b90808252806020026020018201604052801561108157816020015b61106e611863565b8152602001906001900390816110665790505b509150600090505b82805490508110156111405782818154811015156110a357fe5b90600052602060002090600202016000015482828151811015156110c357fe5b9060200190602002015160006002811015156110db57fe5b60200201818152505082818154811015156110f257fe5b906000526020600020906002020160010154828281518110151561111257fe5b90602001906020020151600160028110151561112a57fe5b6020020181815250508080600101915050611089565b81935050505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a657600080fd5b600090505b815181101561125c576040805190810160405280600115158152602001848152506008600084848151811015156111de57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505080806001019150506111ab565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600095508996508890505b8b600001805490508110801561135257508a86105b15611421578b6000018181548110151561136857fe5b90600052602060002090600202016001015494506113878c82896115ea565b9250848310156113995782915061139d565b8491505b8a6113b1878461166690919063ffffffff16565b11156113cd576113ca868c61168490919063ffffffff16565b91505b6113d88c828461169d565b9350818c600001828154811015156113ec57fe5b90600052602060002090600202016001016000828254039250508190555081860195508387039650808060010191505061133d565b85879750975050505050505094509492505050565b6000806114438585611777565b91508460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008214156114a8578281600101819055504381600001819055506114c8565b6114bf83826001015461166690919063ffffffff16565b81600101819055505b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152a57600080fd5b600160149054906101000a900460ff16151561154557600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b8260000180548060010182816115a4919061188a565b9160005260206000209060020201600060408051908101604052808681526020018581525090919091506000820151816000015560208201518160010155505050505050565b600080611624856000018581548110151561160157fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b9050806116526127106116448860010154876117e590919063ffffffff16565b6117e590919063ffffffff16565b81151561165b57fe5b049150509392505050565b600080828401905083811015151561167a57fe5b8091505092915050565b600082821115151561169257fe5b818303905092915050565b60008060008060006116dc88600001888154811015156116b957fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b93506116f184876117e590919063ffffffff16565b925061170c88600101546127106117e590919063ffffffff16565b915061174b61172a89600101546127106117e590919063ffffffff16565b61173d86896117e590919063ffffffff16565b61182090919063ffffffff16565b90506000828481151561175a57fe5b06141515611769576001810190505b809450505050509392505050565b60008083600101548460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154019050804311156117d857600091506117de565b43810391505b5092915050565b60008060008414156117fa5760009150611819565b828402905082848281151561180b57fe5b0414151561181557fe5b8091505b5092915050565b600080828481151561182e57fe5b0490508091505092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b60408051908101604052806002905b60008152602001906001900390816118725790505090565b8154818355818115116118b7576002028160020283600052602060002091820191016118b691906118bc565b5b505050565b6118e891905b808211156118e4576000808201600090556001820160009055506002016118c2565b5090565b905600a165627a7a723058208fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f0029

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

0000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d

-----Decoded View---------------
Arg [0] : _token (address): 0x6c78A953b5aAd0bc991B234970D599E5101c6E5d

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d


Libraries Used


Swarm Source

bzzr://8fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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