ETH Price: $3,287.07 (-5.42%)

Contract

0x2da22Bea3C346038626Bb1775C8f1e7d98d20607
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer123260032021-04-28 1:40:451361 days ago1619574045IN
Jincor: Old Token
0 ETH0.001038639.00000112
Transfer59897712018-07-19 2:37:242375 days ago1531967844IN
Jincor: Old Token
0 ETH0.000122595
Transfer52432122018-03-12 17:16:112504 days ago1520874971IN
Jincor: Old Token
0 ETH0.00098441
Transfer52232202018-03-09 7:52:482507 days ago1520581968IN
Jincor: Old Token
0 ETH0.0002451910
Transfer52231942018-03-09 7:45:272507 days ago1520581527IN
Jincor: Old Token
0 ETH0.000171637
Transfer51728222018-02-28 18:39:002516 days ago1519843140IN
Jincor: Old Token
0 ETH0.0003423714
Transfer51662652018-02-27 16:02:262517 days ago1519747346IN
Jincor: Old Token
0 ETH0.0003423714
Transfer50293282018-02-04 12:58:272540 days ago1517749107IN
Jincor: Old Token
0 ETH0.001467360
Transfer48453442018-01-03 4:06:232572 days ago1514952383IN
Jincor: Old Token
0 ETH0.001467360
Transfer48165982017-12-29 5:43:242577 days ago1514526204IN
Jincor: Old Token
0 ETH0.001467360
Transfer47960862017-12-25 18:51:472581 days ago1514227907IN
Jincor: Old Token
0 ETH0.000002440.1
Transfer47903512017-12-24 20:08:052582 days ago1514146085IN
Jincor: Old Token
0 ETH0.0002451910
Transfer47540082017-12-18 11:03:132588 days ago1513594993IN
Jincor: Old Token
0 ETH0.0002445510
Transfer47444672017-12-16 20:07:342590 days ago1513454854IN
Jincor: Old Token
0 ETH0.000489120
Transfer47430512017-12-16 14:10:152590 days ago1513433415IN
Jincor: Old Token
0 ETH0.000489120
Transfer46705342017-12-03 21:30:322603 days ago1512336632IN
Jincor: Old Token
0 ETH0.0005135521
Transfer45510292017-11-14 12:21:222622 days ago1510662082IN
Jincor: Old Token
0 ETH0.0005624623
Transfer45444092017-11-13 10:37:442623 days ago1510569464IN
Jincor: Old Token
0 ETH0.000024451
Transfer45442762017-11-13 10:06:452623 days ago1510567605IN
Jincor: Old Token
0 ETH0.000024451
Transfer45103382017-11-07 23:42:182628 days ago1510098138IN
Jincor: Old Token
0 ETH0.0000241
Transfer44881482017-11-04 10:21:092632 days ago1509790869IN
Jincor: Old Token
0 ETH0.0014711460
Transfer44813672017-11-03 8:06:102633 days ago1509696370IN
Jincor: Old Token
0 ETH0.0005135521
Transfer44788592017-11-02 22:16:492634 days ago1509661009IN
Jincor: Old Token
0 ETH0.0005135521
Transfer43933452017-10-20 3:41:272647 days ago1508470887IN
Jincor: Old Token
0 ETH0.0005135521
Transfer43333862017-10-03 13:45:252664 days ago1507038325IN
Jincor: Old Token
0 ETH0.0034131
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JincorToken

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-21
*/

pragma solidity ^0.4.11;


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

  function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/*
 * Haltable
 *
 * Abstract contract that allows children to implement an
 * emergency stop mechanism. Differs from Pausable by requiring a state.
 *
 *
 * Originally envisioned in FirstBlood ICO contract.
 */
 contract Haltable is Ownable {
   bool public halted;

   modifier inNormalState {
     assert(!halted);
     _;
   }

   modifier inEmergencyState {
     assert(halted);
     _;
   }

   // called by the owner on emergency, triggers stopped state
   function halt() external onlyOwner inNormalState {
     halted = true;
   }

   // called by the owner on end of emergency, returns to normal state
   function unhalt() external onlyOwner inEmergencyState {
     halted = false;
   }

 }
/**
 * @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) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}


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

/**
 * @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) returns (bool) {
    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) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

/**
 * @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)) 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 amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
    var _allowance = allowed[_from][msg.sender];

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

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

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

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

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

}

/**
 * @title Burnable
 *
 * @dev Standard ERC20 token
 */
contract Burnable is StandardToken {
  using SafeMath for uint;

  /* This notifies clients about the amount burnt */
  event Burn(address indexed from, uint256 value);

  function burn(uint256 _value) returns (bool success) {
    require(balances[msg.sender] >= _value);                // Check if the sender has enough
    balances[msg.sender] = balances[msg.sender].sub(_value);// Subtract from the sender
    totalSupply = totalSupply.sub(_value);                                  // Updates totalSupply
    Burn(msg.sender, _value);
    return true;
  }

  function burnFrom(address _from, uint256 _value) returns (bool success) {
    require(balances[_from] >= _value);               // Check if the sender has enough
    require(_value <= allowed[_from][msg.sender]);    // Check allowance
    balances[_from] = balances[_from].sub(_value);    // Subtract from the sender
    totalSupply = totalSupply.sub(_value);            // Updates totalSupply
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Burn(_from, _value);
    return true;
  }

  function transfer(address _to, uint _value) returns (bool success) {
    require(_to != 0x0); //use burn

    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint _value) returns (bool success) {
    require(_to != 0x0); //use burn

    return super.transferFrom(_from, _to, _value);
  }
}

/**
 * @title JincorToken
 *
 * @dev Burnable Ownable ERC20 token
 */
 contract JincorToken is Burnable, Ownable {

   string public name = "Jincor Token";
   string public symbol = "JCR";
   uint256 public decimals = 18;
   uint256 public INITIAL_SUPPLY = 35000000 * 1 ether;

   /* The finalizer contract that allows unlift the transfer limits on this token */
   address public releaseAgent;

   /** A crowdsale contract can release us to the wild if ICO success. If false we are are in transfer lock up period.*/
   bool public released = false;

   /** Map of agents that are allowed to transfer tokens regardless of the lock down period. These are crowdsale contracts and possible the team multisig itself. */
   mapping (address => bool) public transferAgents;

   /**
    * Limit token transfer until the crowdsale is over.
    *
    */
   modifier canTransfer(address _sender) {
     require(transferAgents[_sender] || released);
     _;
   }

   /** The function can be called only before or after the tokens have been releasesd */
   modifier inReleaseState(bool releaseState) {
     require(releaseState == released);
     _;
   }

   /** The function can be called only by a whitelisted release agent. */
   modifier onlyReleaseAgent() {
     require(msg.sender == releaseAgent);
     _;
   }


   /**
    * @dev Contructor that gives msg.sender all of existing tokens.
    */
   function JincorToken() {
     totalSupply = INITIAL_SUPPLY;
     balances[msg.sender] = INITIAL_SUPPLY;
   }


   /**
    * Set the contract that can call release and make the token transferable.
    *
    * Design choice. Allow reset the release agent to fix fat finger mistakes.
    */
   function setReleaseAgent(address addr) onlyOwner inReleaseState(false) public {

     // We don't do interface check here as we might want to a normal wallet address to act as a release agent
     releaseAgent = addr;
   }

   function release() onlyReleaseAgent inReleaseState(false) public {
     released = true;
   }

   /**
    * Owner can allow a particular address (a crowdsale contract) to transfer tokens despite the lock up period.
    */
   function setTransferAgent(address addr, bool state) onlyOwner inReleaseState(false) public {
     transferAgents[addr] = state;
   }

   function transfer(address _to, uint _value) canTransfer(msg.sender) returns (bool success) {
     // Call Burnable.transfer()
     return super.transfer(_to, _value);
   }

   function transferFrom(address _from, address _to, uint _value) canTransfer(_from) returns (bool success) {
     // Call Burnable.transferForm()
     return super.transferFrom(_from, _to, _value);
   }

   function burn(uint256 _value) onlyOwner returns (bool success) {
     return super.burn(_value);
   }

   function burnFrom(address _from, uint256 _value) onlyOwner returns (bool success) {
     return super.burnFrom(_from, _value);
   }
 }



contract JincorTokenPreSale is Ownable, Haltable {
  using SafeMath for uint;

  string public name = "Jincor Token PreSale";

  JincorToken public token;

  address public beneficiary;

  uint public hardCap;

  uint public softCap;

  uint public price;

  uint public purchaseLimit;

  uint public collected = 0;

  uint public tokensSold = 0;

  uint public investorCount = 0;

  uint public weiRefunded = 0;

  uint public startBlock;

  uint public endBlock;

  bool public softCapReached = false;

  bool public crowdsaleFinished = false;

  mapping (address => bool) refunded;

  event GoalReached(uint amountRaised);

  event SoftCapReached(uint softCap);

  event NewContribution(address indexed holder, uint256 tokenAmount, uint256 etherAmount);

  event Refunded(address indexed holder, uint256 amount);

  modifier preSaleActive() {
    require(block.number >= startBlock && block.number < endBlock);
    _;
  }

  modifier preSaleEnded() {
    require(block.number >= endBlock);
    _;
  }

  function JincorTokenPreSale(
  uint _hardCapUSD,
  uint _softCapUSD,
  address _token,
  address _beneficiary,
  uint _totalTokens,
  uint _priceETH,
  uint _purchaseLimitUSD,

  uint _startBlock,
  uint _endBlock
  ) {
    hardCap = _hardCapUSD.mul(1 ether).div(_priceETH);
    softCap = _softCapUSD.mul(1 ether).div(_priceETH);
    price = _totalTokens.mul(1 ether).div(hardCap);

    purchaseLimit = _purchaseLimitUSD.mul(1 ether).div(_priceETH).mul(price);
    token = JincorToken(_token);
    beneficiary = _beneficiary;

    startBlock = _startBlock;
    endBlock = _endBlock;
  }

  function() payable {
    require(msg.value >= 0.1 * 1 ether);
    doPurchase(msg.sender);
  }

  function refund() external preSaleEnded inNormalState {
    require(softCapReached == false);
    require(refunded[msg.sender] == false);

    uint balance = token.balanceOf(msg.sender);
    require(balance > 0);

    uint refund = balance.div(price);
    if (refund > this.balance) {
      refund = this.balance;
    }

    assert(msg.sender.send(refund));
    refunded[msg.sender] = true;
    weiRefunded = weiRefunded.add(refund);
    Refunded(msg.sender, refund);
  }

  function withdraw() onlyOwner {
    require(softCapReached);
    assert(beneficiary.send(collected));
    token.transfer(beneficiary, token.balanceOf(this));
    crowdsaleFinished = true;
  }

  function doPurchase(address _owner) private preSaleActive inNormalState {

    require(!crowdsaleFinished);
    require(collected.add(msg.value) <= hardCap);

    if (!softCapReached && collected < softCap && collected.add(msg.value) >= softCap) {
      softCapReached = true;
      SoftCapReached(softCap);
    }
    uint tokens = msg.value * price;
    require(token.balanceOf(msg.sender).add(tokens) <= purchaseLimit);

    if (token.balanceOf(msg.sender) == 0) investorCount++;

    collected = collected.add(msg.value);

    token.transfer(msg.sender, tokens);

    tokensSold = tokensSold.add(tokens);

    NewContribution(_owner, tokens, msg.value);

    if (collected == hardCap) {
      GoalReached(hardCap);
    }
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"state","type":"bool"}],"name":"setTransferAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setReleaseAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"transferAgents","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"released","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"releaseAgent","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"}]

6060604052604060405190810160405280600c81526020017f4a696e636f7220546f6b656e0000000000000000000000000000000000000000815250600490805190602001906200005292919062000174565b50604060405190810160405280600381526020017f4a4352000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000a192919062000174565b5060126006556a1cf389cd46047d030000006007556000600860146101000a81548160ff0219169083151502179055503415620000da57fe5b5b5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600754600081905550600754600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b62000223565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b757805160ff1916838001178555620001e8565b82800160010185558215620001e8579182015b82811115620001e7578251825591602001919060010190620001ca565b5b509050620001f79190620001fb565b5090565b6200022091905b808211156200021c57600081600090555060010162000202565b5090565b90565b6119b780620002336000396000f30060606040523615610110576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302f652a31461011257806306fdde0314610153578063095ea7b3146101ec57806318160ddd1461024357806323b872dd1461026957806329ff4f53146102df5780632ff2e9dc14610315578063313ce5671461033b57806342966c681461036157806370a082311461039957806379cc6790146103e3578063867c28571461043a57806386d1a69f146104885780638da5cb5b1461049a57806395d89b41146104ec5780639613252114610585578063a9059cbb146105af578063d1f276d314610606578063dd62ed3e14610658578063f2fde38b146106c1575bfe5b341561011a57fe5b610151600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506106f7565b005b341561015b57fe5b6101636107d7565b60405180806020018281038252838181518152602001915080519060200190808383600083146101b2575b8051825260208311156101b25760208201915060208101905060208303925061018e565b505050905090810190601f1680156101de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101f457fe5b610229600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610875565b604051808215151515815260200191505060405180910390f35b341561024b57fe5b6102536109ff565b6040518082815260200191505060405180910390f35b341561027157fe5b6102c5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a05565b604051808215151515815260200191505060405180910390f35b34156102e757fe5b610313600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a8f565b005b341561031d57fe5b610325610b58565b6040518082815260200191505060405180910390f35b341561034357fe5b61034b610b5e565b6040518082815260200191505060405180910390f35b341561036957fe5b61037f6004808035906020019091905050610b64565b604051808215151515815260200191505060405180910390f35b34156103a157fe5b6103cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd5565b6040518082815260200191505060405180910390f35b34156103eb57fe5b610420600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c1f565b604051808215151515815260200191505060405180910390f35b341561044257fe5b61046e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c92565b604051808215151515815260200191505060405180910390f35b341561049057fe5b610498610cb2565b005b34156104a257fe5b6104aa610d54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104f457fe5b6104fc610d7a565b604051808060200182810382528381815181526020019150805190602001908083836000831461054b575b80518252602083111561054b57602082019150602081019050602083039250610527565b505050905090810190601f1680156105775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561058d57fe5b610595610e18565b604051808215151515815260200191505060405180910390f35b34156105b757fe5b6105ec600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e2b565b604051808215151515815260200191505060405180910390f35b341561060e57fe5b610616610eb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066057fe5b6106ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed9565b6040518082815260200191505060405180910390f35b34156106c957fe5b6106f5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f61565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107545760006000fd5b6000600860149054906101000a900460ff1615158115151415156107785760006000fd5b81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b505b5050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b505050505081565b6000600082148061090257506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561090e5760006000fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b60005481565b600083600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610a6c5750600860149054906101000a900460ff165b1515610a785760006000fd5b610a8385858561103b565b91505b5b509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aec5760006000fd5b6000600860149054906101000a900460ff161515811515141515610b105760006000fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b60075481565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc35760006000fd5b610bcc82611079565b90505b5b919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7e5760006000fd5b610c8883836111d2565b90505b5b92915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d0f5760006000fd5b6000600860149054906101000a900460ff161515811515141515610d335760006000fd5b6001600860146101000a81548160ff0219169083151502179055505b5b505b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e105780601f10610de557610100808354040283529160200191610e10565b820191906000526020600020905b815481529060010190602001808311610df357829003601f168201915b505050505081565b600860149054906101000a900460ff1681565b600033600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e925750600860149054906101000a900460ff165b1515610e9e5760006000fd5b610ea884846114c7565b91505b5b5092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fbe5760006000fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156110365780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b50565b600060008373ffffffffffffffffffffffffffffffffffffffff16141515156110645760006000fd5b61106f848484611503565b90505b9392505050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110ca5760006000fd5b61111c82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611174826000546117b590919063ffffffff16565b6000819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b919050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156112235760006000fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112af5760006000fd5b61130182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611359826000546117b590919063ffffffff16565b6000819055506113ee82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b92915050565b600060008373ffffffffffffffffffffffffffffffffffffffff16141515156114f05760006000fd5b6114fa83836117cf565b90505b92915050565b60006000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506115d883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166d83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116c383826117b590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505b509392505050565b60008282111515156117c357fe5b81830390505b92915050565b600061182382600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60006000828401905083811015151561198057fe5b8091505b50929150505600a165627a7a72305820ef81bb99ebe5e5d0662c28320acb759c2a61bf438be9c1a3a0b9fc3906decc0a0029

Deployed Bytecode

0x60606040523615610110576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302f652a31461011257806306fdde0314610153578063095ea7b3146101ec57806318160ddd1461024357806323b872dd1461026957806329ff4f53146102df5780632ff2e9dc14610315578063313ce5671461033b57806342966c681461036157806370a082311461039957806379cc6790146103e3578063867c28571461043a57806386d1a69f146104885780638da5cb5b1461049a57806395d89b41146104ec5780639613252114610585578063a9059cbb146105af578063d1f276d314610606578063dd62ed3e14610658578063f2fde38b146106c1575bfe5b341561011a57fe5b610151600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506106f7565b005b341561015b57fe5b6101636107d7565b60405180806020018281038252838181518152602001915080519060200190808383600083146101b2575b8051825260208311156101b25760208201915060208101905060208303925061018e565b505050905090810190601f1680156101de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101f457fe5b610229600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610875565b604051808215151515815260200191505060405180910390f35b341561024b57fe5b6102536109ff565b6040518082815260200191505060405180910390f35b341561027157fe5b6102c5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a05565b604051808215151515815260200191505060405180910390f35b34156102e757fe5b610313600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a8f565b005b341561031d57fe5b610325610b58565b6040518082815260200191505060405180910390f35b341561034357fe5b61034b610b5e565b6040518082815260200191505060405180910390f35b341561036957fe5b61037f6004808035906020019091905050610b64565b604051808215151515815260200191505060405180910390f35b34156103a157fe5b6103cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bd5565b6040518082815260200191505060405180910390f35b34156103eb57fe5b610420600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c1f565b604051808215151515815260200191505060405180910390f35b341561044257fe5b61046e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c92565b604051808215151515815260200191505060405180910390f35b341561049057fe5b610498610cb2565b005b34156104a257fe5b6104aa610d54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104f457fe5b6104fc610d7a565b604051808060200182810382528381815181526020019150805190602001908083836000831461054b575b80518252602083111561054b57602082019150602081019050602083039250610527565b505050905090810190601f1680156105775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561058d57fe5b610595610e18565b604051808215151515815260200191505060405180910390f35b34156105b757fe5b6105ec600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e2b565b604051808215151515815260200191505060405180910390f35b341561060e57fe5b610616610eb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066057fe5b6106ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ed9565b6040518082815260200191505060405180910390f35b34156106c957fe5b6106f5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f61565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107545760006000fd5b6000600860149054906101000a900460ff1615158115151415156107785760006000fd5b81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b505b5050565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561086d5780601f106108425761010080835404028352916020019161086d565b820191906000526020600020905b81548152906001019060200180831161085057829003601f168201915b505050505081565b6000600082148061090257506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561090e5760006000fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b60005481565b600083600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610a6c5750600860149054906101000a900460ff165b1515610a785760006000fd5b610a8385858561103b565b91505b5b509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aec5760006000fd5b6000600860149054906101000a900460ff161515811515141515610b105760006000fd5b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b60075481565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc35760006000fd5b610bcc82611079565b90505b5b919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7e5760006000fd5b610c8883836111d2565b90505b5b92915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d0f5760006000fd5b6000600860149054906101000a900460ff161515811515141515610d335760006000fd5b6001600860146101000a81548160ff0219169083151502179055505b5b505b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e105780601f10610de557610100808354040283529160200191610e10565b820191906000526020600020905b815481529060010190602001808311610df357829003601f168201915b505050505081565b600860149054906101000a900460ff1681565b600033600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e925750600860149054906101000a900460ff165b1515610e9e5760006000fd5b610ea884846114c7565b91505b5b5092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fbe5760006000fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156110365780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b50565b600060008373ffffffffffffffffffffffffffffffffffffffff16141515156110645760006000fd5b61106f848484611503565b90505b9392505050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110ca5760006000fd5b61111c82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611174826000546117b590919063ffffffff16565b6000819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b919050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156112235760006000fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112af5760006000fd5b61130182600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611359826000546117b590919063ffffffff16565b6000819055506113ee82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b92915050565b600060008373ffffffffffffffffffffffffffffffffffffffff16141515156114f05760006000fd5b6114fa83836117cf565b90505b92915050565b60006000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506115d883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166d83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116c383826117b590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505b509392505050565b60008282111515156117c357fe5b81830390505b92915050565b600061182382600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b590919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b60006000828401905083811015151561198057fe5b8091505b50929150505600a165627a7a72305820ef81bb99ebe5e5d0662c28320acb759c2a61bf438be9c1a3a0b9fc3906decc0a0029

Swarm Source

bzzr://ef81bb99ebe5e5d0662c28320acb759c2a61bf438be9c1a3a0b9fc3906decc0a

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  ]

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.