Contract Overview
Balance: 1.900006 Ether
Transactions: 60 txns
Token Tracker: CustomPOAToken (CUS)
 Latest 25 txns From a total of 60 Transactions

TxHash Age From To Value [TxFee]
0x391d17a1ef63d0844c63774d56912ae6cbbfb0f665b7f786baf2c537eb418c2b208 days 4 mins ago0x6465ced390e08ef48eebbfaac739fc14d625a60f  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.004465034
0xdb17872c00c6bba31d7c93c63382c04cb019ad69bf6590363b6d1291a6269ebb208 days 27 mins ago0x005efb147e9505129e3f1bf76f4aa20704bd9ac2  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.001 Ether0.000047244
0x1367c19788c086e550176f2c34064ead0aac7b6f23a39615098178cdd7a26e03208 days 43 mins ago0x005efb147e9505129e3f1bf76f4aa20704bd9ac2  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.0002 Ether0.0000496062
0xbc9666fd072200b6dd7e66bcb5a3b2710d35c8963c906dfa97cf022a878ce4bb208 days 4 hrs ago0x6465ced390e08ef48eebbfaac739fc14d625a60f  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.004465034
0x345abe5c65fb709c0166acb09ae7d5cfd28397b98a339c8cb178f171b7597627208 days 4 hrs ago0x6465ced390e08ef48eebbfaac739fc14d625a60f  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.12888 Ether0.004465034
0xa58c5fdbbea3208ae266d75819df007c4f40d60e9242fb6dfd5ec75d9ce00b24208 days 4 hrs ago0x6465ced390e08ef48eebbfaac739fc14d625a60f  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.004472415
0x5bd3cb0c081040a3558f1ca3af5a577e406fa6e7323af18f82f71592b2eb0da8210 days 6 hrs ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000001 Ether0.000052699
0x72bb7e04b8cc4f047d940f6b1fcc81fe5c816a3fe2a1da4a044266259c25ceda212 days 14 hrs ago0xabf6957dbb1c98a70023ff10f14b36fca9203a56  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.499975 Ether0.000023622
0xc71c9be2025c57c1a397b9c115499842f43d2cefb6e57fe0eda8362a099de3a3214 days 23 hrs ago0x0016890172474fbf1a263796557a873d96b5d878  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0 Ether0.000044483
0x1d605449951f2ea8becc05173a18a00b6b165be01ba2d3f93a7ede0ffae093d8215 days 1 hr ago0xfadf1e2d703a4f00bec43ee46462fcfdae2466d3  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000002 Ether0.000052699
0x6793ca551d53bcb057a9b0120b926e82562bb44322065538e06bc29e56c998db215 days 1 hr ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000004 Ether0.000023622
0xccc3ef62bae7e4f1fff898fcba3a01e619e57f02690443de7a3348cdfd2e5771215 days 1 hr ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.00002 Ether0.000047244
0x6a601321cdf149117be0160a1a5423e3b8424e8b1bfcd6ef5d50e94a2fdb9168215 days 4 hrs ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000013 Ether0.000070866
0x97ba111d7f37fbed42fbe1333e99100215cb61677669db92820199838ced7d8a215 days 4 hrs ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000013 Ether0.000023622
0x24a4075ad4fe525a8ef35d8d50125b3458954a63af77c59e74c235206e18e30e216 days 6 hrs ago0xacdd8f26a96e60a31132dfff6ce4abe02be68f3d  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.001 Ether0.000023622
0xf4bbf2f5617979a9fec45ec905fdce5d3842a57f60a6204b21df53fc2cf07cc2216 days 6 hrs ago0x0016890172474fbf1a263796557a873d96b5d878  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0 Ether0.000044419
0xf897e43fea5d6468b8732e697aa78217e1a305aa28c8352003478b3c1bf8b55b216 days 19 hrs ago0x55310cee3543dac2ad1d52524ada2f6d1d94b6d5  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.000023622
0x13773ce63a5785e893f6c200ca59cc3ca776f863066e6b6b7e3495141a1e84f3217 days 43 mins ago0x9d2a6d86f71523ef2dd99382330a854f8d6dc471  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.2 Ether0.0031332
0xc344a11539be0f273acdcd1684aa518702107c866201900d1cf8e7177c3db1e3217 days 44 mins ago0x13d62d5a1963046a3caccc3097a4576d1f9b42e1  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.2 Ether0.00047244
0x9458b9d545ec02eb6855217ca8bede2b3472d6728fd82277b1973732a420d0c1217 days 3 hrs ago0x13d62d5a1963046a3caccc3097a4576d1f9b42e1  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.01 Ether0.000496062
0x310da0bf5ca296c170fa68c8d2983f06202b8d1beaa3c6f39f338fbb4ea3d480217 days 4 hrs ago0x1cd385a4e410a18695b7eb3c003ecfff41edcc26  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.01 Ether0.000023622
0x5ebeaac920ed967ee4cd76994964239a3782993f46985850fe46b31c62ea8520217 days 4 hrs ago0xce90fa96a6175ccb09e12b079ba62d961511c2b0  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.000002 Ether0.000037699
0x7dd42cd4773c45e2239d2bf78f374b8156ef58533f254f13bb58b53c53c679fc220 days 22 hrs ago0x55310cee3543dac2ad1d52524ada2f6d1d94b6d5  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.000023622
0xd4ba46bb79a91fcc8fef5fd5e230f1bc508adc3014f9ce80ae23ae5cf4b83818220 days 22 hrs ago0x55310cee3543dac2ad1d52524ada2f6d1d94b6d5  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.499995 Ether0.000023622
0xcb218cc8eb70f2996a5a8580afb01091b327d581b4255f21b0b390fa4a124842221 days 23 hrs ago0x1cd385a4e410a18695b7eb3c003ecfff41edcc26  IN   0x43ce9771f69f47b5f2de602642442ef73d5d3cce0.1 Ether0.000023622
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
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 (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0x26dc24359e373f9a5b2f8ae4c893620f746512d9(Excluding Constructor Arguments if_any)
Contract Name: CustomPOAToken
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.18;

// 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/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: 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: zeppelin-solidity/contracts/token/ERC20Basic.sol

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

// File: zeppelin-solidity/contracts/token/BasicToken.sol

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

  mapping(address => uint256) balances;

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

}

// File: zeppelin-solidity/contracts/token/ERC20.sol

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

// File: zeppelin-solidity/contracts/token/StandardToken.sol

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

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


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

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

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

}

// File: zeppelin-solidity/contracts/token/PausableToken.sol

/**
 * @title Pausable token
 *
 * @dev StandardToken modified with pausable transfers.
 **/

contract PausableToken is StandardToken, Pausable {

  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
    return super.approve(_spender, _value);
  }

  function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}

// File: contracts/CustomPOAToken.sol

contract CustomPOAToken is PausableToken {

  string public name;
  string public symbol;

  uint8 public constant decimals = 18;

  address public owner;
  address public broker;
  address public custodian;

  uint256 public creationBlock;
  uint256 public timeoutBlock;
  uint256 public totalTokenPayout;
  uint256 public tokenSaleRate;
  uint256 public fundingGoal;
  uint256 public initialSupply;
  // !!! rate is .5 percent
  uint256 public constant feeRate = 5; // ‰ permille

  mapping (address => bool) public whitelisted;
  mapping(address => uint256) public claimedPayouts;
  // fallback for when a transfer happens with payouts remaining
  mapping(address => uint256) public unclaimedPayouts;

  enum Stages {
    Funding,
    Pending,
    Failed,
    Active,
    Terminated
  }

  Stages public stage = Stages.Funding;

  event Stage(Stages stage);
  event Buy(address buyer, uint256 amount);
  event Payout(uint256 amount);
  event Claim(uint256 payout);
  event Terminated();

  modifier isWhitelisted() {
    require(whitelisted[msg.sender]);
    _;
  }

  modifier onlyCustodian() {
    require(msg.sender == custodian);
    _;
  }

  // start stage related modifiers
  modifier atStage(Stages _stage) {
    require(stage == _stage);
    _;
  }

  modifier atEitherStage(Stages _stage, Stages _orStage) {
    require(stage == _stage || stage == _orStage);
    _;
  }

  modifier checkTimeout() {
    if (stage == Stages.Funding && block.number >= creationBlock.add(timeoutBlock)) {
      uint256 _unsoldBalance = balances[this];
      balances[this] = 0;
      totalSupply = totalSupply.sub(_unsoldBalance);
      enterStage(Stages.Failed);
    }
    _;
  }
  // end stage related modifiers

  function CustomPOAToken
  (
    string _name,
    string _symbol,
    address _broker,
    address _custodian,
    uint256 _timeoutBlock,
    uint256 _totalSupply,
    uint256 _fundingGoal
  )
    public
  {
    owner = msg.sender;
    name = _name;
    symbol = _symbol;
    broker = _broker;
    custodian = _custodian;
    timeoutBlock = _timeoutBlock;
    creationBlock = block.number;
    // essentially sqm unit of building...
    totalSupply = _totalSupply;
    initialSupply = _totalSupply;
    fundingGoal = _fundingGoal;
    balances[this] = _totalSupply;
    paused = true;
  }

  // start token conversion functions

  /*******************
  * TKN      supply  *
  * ---  =  -------  *
  * ETH     funding  *
  *******************/

  function ethToTokens(uint256 _ethAmount)
    public
    view
    returns (uint256)
  {
    return _ethAmount.mul(1e18).mul(initialSupply).div(fundingGoal).div(1e18);
  }

  function tokensToEth(uint256 _tokenAmount)
    public
    view
    returns (uint256)
  {
    return _tokenAmount.mul(fundingGoal).mul(1e18).div(initialSupply).div(1e18);
  }

  // end token conversion functions

  // pause override
  function unpause()
    public
    onlyOwner
    whenPaused
  {
    require(stage == Stages.Active);
    return super.unpause();
  }

  // stage related functions
  function enterStage(Stages _stage)
    private
  {
    stage = _stage;
    Stage(_stage);
  }

  // start whitelist related functions
  function whitelistAddress(address _address)
    external
    onlyOwner
    atStage(Stages.Funding)
  {
    require(whitelisted[_address] != true);
    whitelisted[_address] = true;
  }

  function blacklistAddress(address _address)
    external
    onlyOwner
    atStage(Stages.Funding)
  {
    require(whitelisted[_address] != false);
    whitelisted[_address] = false;
  }

  function whitelisted(address _address)
    public
    view
    returns (bool)
  {
    return whitelisted[_address];
  }

  // end whitelist related functions

  // start fee handling functions
  function calculateFee(uint256 _value)
    public
    view
    returns (uint256)
  {
    return feeRate.mul(_value).div(1000);
  }

  // end fee handling functions

  // start lifecycle functions
  function buy()
    public
    payable
    checkTimeout
    atStage(Stages.Funding)
    isWhitelisted
    returns (bool)
  {
    uint256 _buyAmount = ethToTokens(msg.value);
    balances[this] = balances[this].sub(_buyAmount);
    if (this.balance >= fundingGoal) {
      uint256 _unsoldBalance = balances[this];
      balances[this] = 0;
      _buyAmount = _buyAmount.add(_unsoldBalance);
      enterStage(Stages.Pending);
    }

    balances[msg.sender] = balances[msg.sender].add(_buyAmount);
    Buy(msg.sender, _buyAmount);

    return true;
  }

  function activate()
    external
    checkTimeout
    onlyCustodian
    payable
    atStage(Stages.Pending)
    returns (bool)
  {
    uint256 _fee = calculateFee(fundingGoal);
    require(msg.value == _fee);
    enterStage(Stages.Active);
    // TODO: do we need to do checks on these transfers to make sure they go through?
    owner.transfer(_fee);
    // !!! custodian gets the ether
    custodian.transfer(fundingGoal);
    paused = false;
    Unpause();
    return true;
  }

  function terminate()
    external
    onlyCustodian
    atStage(Stages.Active)
    returns (bool)
  {
    enterStage(Stages.Terminated);
    paused = true;
    Terminated();
  }

  function kill()
    external
    onlyOwner
  {
    paused = true;
    enterStage(Stages.Terminated);
    owner.transfer(this.balance);
    Terminated();
  }

  // end lifecycle functions

  // start payout related functions
  function currentPayout(address _address, bool _includeUnclaimed)
    public
    view
    returns (uint256)
  {
    if (totalTokenPayout == 0) {
      return 0;
    }
    uint256 _balance = balances[_address];
    uint256 _claimedPayouts = claimedPayouts[_address];
    uint256 _totalUnclaimed = totalTokenPayout
      .sub(_claimedPayouts);

    return _includeUnclaimed
      ? _balance
      .mul(_totalUnclaimed)
      .div(1e18)
      .add(unclaimedPayouts[_address])
      : _balance
      .mul(_totalUnclaimed)
      .div(1e18);

  }

  function settleUnclaimedPayouts(address _from, address _to)
    private
    returns (bool)
  {
    unclaimedPayouts[_from] = unclaimedPayouts[_from].add(currentPayout(_from, false));
    claimedPayouts[_from] = totalTokenPayout;
    unclaimedPayouts[_to] = unclaimedPayouts[_to].add(currentPayout(_to, false));
    claimedPayouts[_to] = totalTokenPayout;
    return true;
  }

  function reclaim()
    external
    checkTimeout
    atStage(Stages.Failed)
    returns (bool)
  {
    uint256 _balance = balances[msg.sender];
    require(_balance > 0);
    balances[msg.sender] = 0;
    totalSupply = totalSupply.sub(_balance);
    msg.sender.transfer(tokensToEth(_balance));
    return true;
  }

  function payout()
    external
    payable
    atEitherStage(Stages.Active, Stages.Terminated)
    onlyCustodian
    returns (bool)
  {
    require(msg.value > 0);
    uint256 _fee = calculateFee(msg.value);
    uint256 _payoutAmount = msg.value.sub(_fee);
    totalTokenPayout = totalTokenPayout.add(_payoutAmount.mul(1e18).div(totalSupply));
    uint256 delta = (_payoutAmount.mul(1e18) % totalSupply).div(1e18);
    owner.transfer(_fee.add(delta));

    Payout(_payoutAmount);
    return true;
  }

  function claim()
    external
    atEitherStage(Stages.Active, Stages.Terminated)
    returns (uint256)
  {
    uint256 _payoutAmount = currentPayout(msg.sender, true);
    require(_payoutAmount > 0);
    claimedPayouts[msg.sender] = totalTokenPayout;
    unclaimedPayouts[msg.sender] = 0;

    Claim(_payoutAmount);
    msg.sender.transfer(_payoutAmount);
    return _payoutAmount;
  }

  // end payout related functions

  // start ERC20 overrides
  function transfer
  (
    address _to,
    uint256 _value
  )
    public
    whenNotPaused
    returns (bool)
  {
    require(settleUnclaimedPayouts(msg.sender, _to));
    return super.transfer(_to, _value);
  }

  function transferFrom
  (
    address _from,
    address _to,
    uint256 _value
  )
    public
    whenNotPaused
    returns (bool)
  {
    require(settleUnclaimedPayouts(_from, _to));
    return super.transferFrom(_from, _to, _value);
  }

  // end ERC20 overrides

  // fallback function defaulting to buy
  function()
    public
    payable
  {
    buy();
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenPayout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"terminate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activate","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"_includeUnclaimed","type":"bool"}],"name":"currentPayout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"custodian","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"whitelistAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[{"name":"","type":"uint256"}],"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":"payout","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timeoutBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenAmount","type":"uint256"}],"name":"tokensToEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaim","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"unclaimedPayouts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"calculateFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethAmount","type":"uint256"}],"name":"ethToTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"broker","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimedPayouts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"whitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"blacklistAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_broker","type":"address"},{"name":"_custodian","type":"address"},{"name":"_timeoutBlock","type":"uint256"},{"name":"_totalSupply","type":"uint256"},{"name":"_fundingGoal","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stage","type":"uint8"}],"name":"Stage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payout","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[],"name":"Terminated","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600360146101000a81548160ff0219169083151502179055506000601260006101000a81548160ff021916908360048111156200003f57fe5b021790555034156200005057600080fd5b60405162003a3f38038062003a3f8339810160405280805182019190602001805182019190602001805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660049080519060200190620001419291906200026c565b5085600590805190602001906200015a9291906200026c565b5084600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a81905550436009819055508160008190555081600e8190555080600d8190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360146101000a81548160ff021916908315150217905550505050505050506200031b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002af57805160ff1916838001178555620002e0565b82800160010185558215620002e0579182015b82811115620002df578251825591602001919060010190620002c2565b5b509050620002ef9190620002f3565b5090565b6200031891905b8082111562000314576000816000905550600101620002fa565b5090565b90565b613714806200032b6000396000f300606060405260043610610204576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461020f578063095ea7b31461029d5780630a59851a146102f75780630c08bf88146103205780630f15f4c01461034d57806310420bff1461036f57806317634514146103c757806318160ddd146103f057806323b872dd1461041957806328cc415014610492578063313ce567146104bb578063375b74c3146104ea578063378dc3dc1461053f5780633f4ba83a14610568578063415665851461057d57806341c0e1b5146105b65780634e71d92d146105cb5780635c975abb146105f457806363bd1d4a146106215780636618846314610643578063688511bb1461069d57806370a08231146106c657806379ca9ad4146107135780637a3a0e841461074a57806380e9071b146107735780638456cb59146107a05780638da5cb5b146107b557806393ddfb781461080a57806395d89b4114610857578063978bbdb9146108e557806399a5d7471461090e578063a4c8932214610945578063a6f2ae3a1461097c578063a9059cbb1461099e578063abff0110146109f8578063c040e6b814610a4d578063c2c4980414610a84578063d73dd62314610ad1578063d936547e14610b2b578063dd62ed3e14610b7c578063f2fde38b14610be8578063f3290d7514610c21575b61020c610c5a565b50005b341561021a57600080fd5b61022261105e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610262578082015181840152602081019050610247565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a857600080fd5b6102dd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110fc565b604051808215151515815260200191505060405180910390f35b341561030257600080fd5b61030a61112c565b6040518082815260200191505060405180910390f35b341561032b57600080fd5b610333611132565b604051808215151515815260200191505060405180910390f35b61035561121a565b604051808215151515815260200191505060405180910390f35b341561037a57600080fd5b6103b1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506114e8565b6040518082815260200191505060405180910390f35b34156103d257600080fd5b6103da61165f565b6040518082815260200191505060405180910390f35b34156103fb57600080fd5b610403611665565b6040518082815260200191505060405180910390f35b341561042457600080fd5b610478600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061166b565b604051808215151515815260200191505060405180910390f35b341561049d57600080fd5b6104a56116b2565b6040518082815260200191505060405180910390f35b34156104c657600080fd5b6104ce6116b8565b604051808260ff1660ff16815260200191505060405180910390f35b34156104f557600080fd5b6104fd6116bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054a57600080fd5b6105526116e3565b6040518082815260200191505060405180910390f35b341561057357600080fd5b61057b6116e9565b005b341561058857600080fd5b6105b4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061179e565b005b34156105c157600080fd5b6105c96118eb565b005b34156105d657600080fd5b6105de611a13565b6040518082815260200191505060405180910390f35b34156105ff57600080fd5b610607611ba3565b604051808215151515815260200191505060405180910390f35b610629611bb6565b604051808215151515815260200191505060405180910390f35b341561064e57600080fd5b610683600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611df1565b604051808215151515815260200191505060405180910390f35b34156106a857600080fd5b6106b0611e21565b6040518082815260200191505060405180910390f35b34156106d157600080fd5b6106fd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e27565b6040518082815260200191505060405180910390f35b341561071e57600080fd5b6107346004808035906020019091905050611e70565b6040518082815260200191505060405180910390f35b341561075557600080fd5b61075d611ed6565b6040518082815260200191505060405180910390f35b341561077e57600080fd5b610786611edc565b604051808215151515815260200191505060405180910390f35b34156107ab57600080fd5b6107b3612115565b005b34156107c057600080fd5b6107c86121d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561081557600080fd5b610841600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121fc565b6040518082815260200191505060405180910390f35b341561086257600080fd5b61086a612214565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108aa57808201518184015260208101905061088f565b50505050905090810190601f1680156108d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108f057600080fd5b6108f86122b2565b6040518082815260200191505060405180910390f35b341561091957600080fd5b61092f60048080359060200190919050506122b7565b6040518082815260200191505060405180910390f35b341561095057600080fd5b61096660048080359060200190919050506122e8565b6040518082815260200191505060405180910390f35b610984610c5a565b604051808215151515815260200191505060405180910390f35b34156109a957600080fd5b6109de600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061234e565b604051808215151515815260200191505060405180910390f35b3415610a0357600080fd5b610a0b612393565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a5857600080fd5b610a606123b9565b60405180826004811115610a7057fe5b60ff16815260200191505060405180910390f35b3415610a8f57600080fd5b610abb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506123cc565b6040518082815260200191505060405180910390f35b3415610adc57600080fd5b610b11600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506123e4565b604051808215151515815260200191505060405180910390f35b3415610b3657600080fd5b610b62600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612414565b604051808215151515815260200191505060405180910390f35b3415610b8757600080fd5b610bd2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061246a565b6040518082815260200191505060405180910390f35b3415610bf357600080fd5b610c1f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506124f1565b005b3415610c2c57600080fd5b610c58600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612649565b005b60008060008060006004811115610c6d57fe5b601260009054906101000a900460ff166004811115610c8857fe5b148015610cab5750610ca7600a5460095461279690919063ffffffff16565b4310155b15610d5d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4c816000546127b490919063ffffffff16565b600081905550610d5c60026127cd565b5b6000806004811115610d6b57fe5b601260009054906101000a900460ff166004811115610d8657fe5b141515610d9257600080fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610dea57600080fd5b610df3346122e8565b9350610e4784600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d543073ffffffffffffffffffffffffffffffffffffffff1631101515610f5357600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f46838561279690919063ffffffff16565b9350610f5260016127cd565b5b610fa584600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600194505050505090565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110f45780601f106110c9576101008083540402835291602001916110f4565b820191906000526020600020905b8154815290600101906020018083116110d757829003601f168201915b505050505081565b6000600360149054906101000a900460ff1615151561111a57600080fd5b6111248383612838565b905092915050565b600b5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119057600080fd5b600380600481111561119e57fe5b601260009054906101000a900460ff1660048111156111b957fe5b1415156111c557600080fd5b6111cf60046127cd565b6001600360146101000a81548160ff0219169083151502179055507f56a9f39a7e827c383642a56b2ca4614ea9e1e7553a99dac156511be09dd1449560405160405180910390a15090565b600080600080600481111561122b57fe5b601260009054906101000a900460ff16600481111561124657fe5b1480156112695750611265600a5460095461279690919063ffffffff16565b4310155b1561131b57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130a816000546127b490919063ffffffff16565b60008190555061131a60026127cd565b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137757600080fd5b600180600481111561138557fe5b601260009054906101000a900460ff1660048111156113a057fe5b1415156113ac57600080fd5b6113b7600d546122b7565b925082341415156113c757600080fd5b6113d160036127cd565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561143357600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600d549081150290604051600060405180830381858888f19350505050151561149757600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a16001935050505090565b6000806000806000600b5414156115025760009350611656565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915061159b82600b546127b490919063ffffffff16565b9050846115d4576115cf670de0b6b3a76400006115c1838661292a90919063ffffffff16565b61296590919063ffffffff16565b611653565b611652601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611644670de0b6b3a7640000611636858861292a90919063ffffffff16565b61296590919063ffffffff16565b61279690919063ffffffff16565b5b93505b50505092915050565b60095481565b60005481565b6000600360149054906101000a900460ff1615151561168957600080fd5b6116938484612980565b151561169e57600080fd5b6116a9848484612b56565b90509392505050565b600c5481565b601281565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174557600080fd5b600360149054906101000a900460ff16151561176057600080fd5b6003600481111561176d57fe5b601260009054906101000a900460ff16600481111561178857fe5b14151561179457600080fd5b61179c612b88565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117fa57600080fd5b600080600481111561180857fe5b601260009054906101000a900460ff16600481111561182357fe5b14151561182f57600080fd5b60011515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415151561188f57600080fd5b6001600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561194757600080fd5b6001600360146101000a81548160ff02191690831515021790555061196c60046127cd565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156119e557600080fd5b7f56a9f39a7e827c383642a56b2ca4614ea9e1e7553a99dac156511be09dd1449560405160405180910390a1565b60008060036004816004811115611a2657fe5b601260009054906101000a900460ff166004811115611a4157fe5b1480611a715750806004811115611a5457fe5b601260009054906101000a900460ff166004811115611a6f57fe5b145b1515611a7c57600080fd5b611a873360016114e8565b9250600083111515611a9857600080fd5b600b54601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f7836040518082815260200191505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611b9a57600080fd5b82935050505090565b600360149054906101000a900460ff1681565b60008060008060036004816004811115611bcc57fe5b601260009054906101000a900460ff166004811115611be757fe5b1480611c175750806004811115611bfa57fe5b601260009054906101000a900460ff166004811115611c1557fe5b145b1515611c2257600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7e57600080fd5b600034111515611c8d57600080fd5b611c96346122b7565b9450611cab85346127b490919063ffffffff16565b9350611cf0611cdf600054611cd1670de0b6b3a76400008861292a90919063ffffffff16565b61296590919063ffffffff16565b600b5461279690919063ffffffff16565b600b81905550611d38670de0b6b3a7640000600054611d20670de0b6b3a76400008861292a90919063ffffffff16565b811515611d2957fe5b0661296590919063ffffffff16565b9250600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d89858861279690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611dae57600080fd5b7f22427047e1a674a9aff59700a2c8d00ea96e017ddf9236690bdedf1f21f28d9d846040518082815260200191505060405180910390a160019550505050505090565b6000600360149054906101000a900460ff16151515611e0f57600080fd5b611e198383612c48565b905092915050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000611ecf670de0b6b3a7640000611ec1600e54611eb3670de0b6b3a7640000611ea5600d548961292a90919063ffffffff16565b61292a90919063ffffffff16565b61296590919063ffffffff16565b61296590919063ffffffff16565b9050919050565b600d5481565b6000806000806004811115611eed57fe5b601260009054906101000a900460ff166004811115611f0857fe5b148015611f2b5750611f27600a5460095461279690919063ffffffff16565b4310155b15611fdd57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fcc816000546127b490919063ffffffff16565b600081905550611fdc60026127cd565b5b6002806004811115611feb57fe5b601260009054906101000a900460ff16600481111561200657fe5b14151561201257600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925060008311151561206357600080fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120bd836000546127b490919063ffffffff16565b6000819055503373ffffffffffffffffffffffffffffffffffffffff166108fc6120e685611e70565b9081150290604051600060405180830381858888f19350505050151561210b57600080fd5b6001935050505090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217157600080fd5b600360149054906101000a900460ff1615151561218d57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090505481565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122aa5780601f1061227f576101008083540402835291602001916122aa565b820191906000526020600020905b81548152906001019060200180831161228d57829003601f168201915b505050505081565b600581565b60006122e16103e86122d384600561292a90919063ffffffff16565b61296590919063ffffffff16565b9050919050565b6000612347670de0b6b3a7640000612339600d5461232b600e5461231d670de0b6b3a76400008961292a90919063ffffffff16565b61292a90919063ffffffff16565b61296590919063ffffffff16565b61296590919063ffffffff16565b9050919050565b6000600360149054906101000a900460ff1615151561236c57600080fd5b6123763384612980565b151561238157600080fd5b61238b8383612ed9565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900460ff1681565b60106020528060005260406000206000915090505481565b6000600360149054906101000a900460ff1615151561240257600080fd5b61240c8383612f09565b905092915050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561254d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561258957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126a557600080fd5b60008060048111156126b357fe5b601260009054906101000a900460ff1660048111156126ce57fe5b1415156126da57600080fd5b60001515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415151561273a57600080fd5b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101515156127aa57fe5b8091505092915050565b60008282111515156127c257fe5b818303905092915050565b80601260006101000a81548160ff021916908360048111156127eb57fe5b02179055507fabbbf5866c6558973ab811ba4ed40d01d87629d9a064c4fb669762c4ead9fb48816040518082600481111561282257fe5b60ff16815260200191505060405180910390a150565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600084141561293f576000915061295e565b828402905082848281151561295057fe5b0414151561295a57fe5b8091505b5092915050565b600080828481151561297357fe5b0490508091505092915050565b60006129de6129908460006114e8565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b54601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ac3612a758360006114e8565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b54601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600360149054906101000a900460ff16151515612b7457600080fd5b612b7f848484613105565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612be457600080fd5b600360149054906101000a900460ff161515612bff57600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612d59576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ded565b612d6c83826127b490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360149054906101000a900460ff16151515612ef757600080fd5b612f0183836134c4565b905092915050565b6000612f9a82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561314257600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561319057600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561321b57600080fd5b61326d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061330282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133d482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561350157600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561354f57600080fd5b6135a182600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b490919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061363682600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820811c9df1668d3f04d8a96686aab4d6b18f2d9cc481a4a65b093136ab1ba3b360002900000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000009ff8410f3302219d71682f345aa817536b7bbe00000000000000000000000000ca29cb9663185e084d73451686b739c4098a4d00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000000000000e437573746f6d504f41546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034355530000000000000000000000000000000000000000000000000000000000

   Swarm Source:
bzzr://811c9df1668d3f04d8a96686aab4d6b18f2d9cc481a4a65b093136ab1ba3b360

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward