ETH Price: $2,747.61 (+0.56%)

Contract

0xD1894d59fB85913b26862fB6d188923D72f75d07
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Factory

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-28
*/

pragma solidity ^0.4.24;

contract Factory {
  address developer = 0x007C67F0CDBea74592240d492Aef2a712DAFa094c3;
  
  event ContractCreated(address creator, address newcontract, uint timestamp, string contract_type);
    
  function setDeveloper (address _dev) public {
    if(developer==address(0) || developer==msg.sender){
       developer = _dev;
    }
  }
  
  function createContract (bool isbroker, string contract_type, bool _brokerrequired) 
  public {
    address newContract = new Broker(isbroker, developer, msg.sender, _brokerrequired);
    emit ContractCreated(msg.sender, newContract, block.timestamp, contract_type);
  } 
}

contract Broker {
  enum State { Created, Validated, Locked, Finished }
  State public state;

  enum FileState { 
    Created, 
    Invalidated
    // , Confirmed 
  }

  struct File{
    // The purpose of this file. Like, picture, license info., etc.
    // to save the space, we better use short name.
    // Dapps should match proper long name for this.
    bytes32 purpose;
    // name of the file
    string name;
    // ipfs id for this file
    string ipfshash;
    FileState state;
  }

  struct Item{
    string name;
    // At least 0.1 Finney, because it's the fee to the developer
    uint   price;
    // this could be a link to an Web page explaining about this item
    string detail;
    File[] documents;
  }
  
  struct BuyInfo{
    address buyer;
    bool completed;
  }

  Item public item;
  address public seller = address(0);
  address public broker = address(0);
  uint    public brokerFee;
  // Minimum 0.1 Finney (0.0001 eth ~ 25Cent) to 0.01% of the price.
  uint    public developerfee = 0.1 finney;
  uint    minimumdeveloperfee = 0.1 finney;
  address developer = 0x007C67F0CDBea74592240d492Aef2a712DAFa094c3;
  // bool public validated;
  address creator = 0x0;
  address factory = 0x0;
  
  bool bBrokerRequired = true;
  BuyInfo[] public buyinfo;


  modifier onlySeller() {
    require(msg.sender == seller);
    _;
  }

  modifier onlyCreator() {
    require(msg.sender == creator);
    _;
  }

  modifier onlyBroker() {
    require(msg.sender == broker);
    _;
  }

  modifier inState(State _state) {
      require(state == _state);
      _;
  }

  modifier condition(bool _condition) {
      require(_condition);
      _;
  }

  event AbortedBySeller();
  event AbortedByBroker();
  event PurchaseConfirmed(address buyer);
  event ItemReceived();
  event IndividualItemReceived(address buyer);
  event Validated();
  event ItemInfoChanged(string name, uint price, string detail, uint developerfee);
  event SellerChanged(address seller);
  event BrokerChanged(address broker);
  event BrokerFeeChanged(uint fee);

  // The constructor
  constructor(bool isbroker, address _dev, address _creator, bool _brokerrequired) 
    public 
  {
    bBrokerRequired = _brokerrequired;
    if(creator==address(0)){
      //storedData = initialValue;
      if(isbroker)
        broker = _creator;
      else
        seller = _creator;
      creator = _creator;
      // value = msg.value / 2;
      // require((2 * value) == msg.value);
      state = State.Created;

      // validated = false;
      brokerFee = 50;
    }
    if(developer==address(0) || developer==msg.sender){
       developer = _dev;
    }
    if(factory==address(0)){
       factory = msg.sender;
    }
  }

  function joinAsBroker() public {
    if(broker==address(0)){
      broker = msg.sender;
    }
  }

  function createOrSet(string name, uint price, string detail)
    public 
    inState(State.Created)
    onlyCreator
  {
    require(price > minimumdeveloperfee);
    item.name = name;
    item.price = price;
    item.detail = detail;
    developerfee = (price/1000)<minimumdeveloperfee ? minimumdeveloperfee : (price/1000);
    emit ItemInfoChanged(name, price, detail, developerfee);
  }

  function getBroker()
    public 
    constant returns(address, uint)
  {
    return (broker, brokerFee);
  }

  function getSeller()
    public 
    constant returns(address)
  {
    return (seller);
  }
  
  function getBuyers()
    public 
    constant returns(address[])
  {
    address[] memory buyers = new address[](buyinfo.length);
    //uint val = address(this).balance / buyinfo.length;
    for (uint256 x = 0; x < buyinfo.length; x++) {
      buyers[x] = buyinfo[x].buyer;
    }
    return (buyers);
  }
  
  function getBuyerInfoAt(uint256 x)
    public 
    constant returns(address, bool)
  {
    return (buyinfo[x].buyer, buyinfo[x].completed);
  }

  function setBroker(address _address)
    public 
    onlySeller
    inState(State.Created)
  {
    broker = _address;
    emit BrokerChanged(broker);
  }

  function setBrokerFee(uint fee)
    public 
    onlyCreator
    inState(State.Created)
  {
    brokerFee = fee;
    emit BrokerFeeChanged(fee);
  }

  function setSeller(address _address)
    public 
    onlyBroker
    inState(State.Created)
  {
    seller = _address;
    emit SellerChanged(seller);
  }

  // We will have some 'peculiar' list of documents
  // for each deals. 
  // For ex, for House we will require
  // proof of documents about the basic information of the House,
  // and some insurance information.
  // So we can make a template for each differene kind of deals.
  // Deals for a house, deals for a Car, etc.
  function addDocument(bytes32 _purpose, string _name, string _ipfshash)
    public 
  {
    require(state != State.Finished);
    require(state != State.Locked);
    item.documents.push( File({
      purpose:_purpose, name:_name, ipfshash:_ipfshash, state:FileState.Created}
      ) 
    );
  }

  // deleting actual file on the IPFS network is very hard.
  function deleteDocument(uint index)
    public 
  {
    require(state != State.Finished);
    require(state != State.Locked);
    if(index<item.documents.length){
      item.documents[index].state = FileState.Invalidated;
    }
  }

  function validate()
    public 
    onlyBroker
    inState(State.Created)
  {
    // if(index<item.documents.length){
    //   item.documents[index].state = FileState.Confirmed;
    // }
    emit Validated();
    // validated = true;
    state = State.Validated;
  }
  
  function returnMoneyToBuyers()
    private
  {
      require(state != State.Finished);
      if(buyinfo.length>0){
          uint val = address(this).balance / buyinfo.length;
          for (uint256 x = 0; x < buyinfo.length; x++) {
              if(buyinfo[x].completed==false){
                buyinfo[x].buyer.transfer(val);
              }
          }
      }
      state = State.Finished;
  }

  /// Abort the purchase and reclaim the ether.
  /// Can only be called by the seller before
  /// the contract is locked.
  function abort()
    public 
    onlySeller
  {
    returnMoneyToBuyers();
    emit AbortedBySeller();
    // validated = false;
    seller.transfer(address(this).balance);
  }

  function abortByBroker()
    public 
    onlyBroker
  {
    if(!bBrokerRequired)
      return;
    returnMoneyToBuyers();
    emit AbortedByBroker();
  }

  /// Confirm the purchase as buyer.
  /// The ether will be locked until confirmReceived
  /// is called.
  function confirmPurchase()
    public 
    condition(msg.value == item.price)
    payable
  {
      if(bBrokerRequired){
        if(state != State.Validated || state != State.Locked){
          return;
        }
      }
      
      if(state == State.Finished){
        return;
      }
      
      state = State.Locked;
      emit PurchaseConfirmed(msg.sender);
      bool complete = false;
      if(!bBrokerRequired){
    // send money right away
        complete = true;
        seller.transfer(item.price-developerfee);
        developer.transfer(developerfee);
      }
      buyinfo.push(BuyInfo(msg.sender, complete));
  }

  /// Confirm that you (the buyer) received the item.
  /// This will release the locked ether.
  function confirmReceived()
    public 
    onlyBroker
    inState(State.Locked)
  {
      // It is important to change the state first because
      // otherwise, the contracts called using `send` below
      // can call in again here.
      state = State.Finished;

      // NOTE: This actually allows both the buyer and the seller to
      // block the refund - the withdraw pattern should be used.
      seller.transfer(address(this).balance-brokerFee-developerfee);
      broker.transfer(brokerFee);
      developer.transfer(developerfee);

      emit ItemReceived();
  }
  
  //
  function confirmReceivedAt(uint index)
    public 
    onlyBroker
    inState(State.Locked)
  {
      // In this case the broker is confirming one by one,
      // the other purchase should go on. So we don't change the status.
      if(index>=buyinfo.length)
        return;
      if(buyinfo[index].completed)
        return;

      // NOTE: This actually allows both the buyer and the seller to
      // block the refund - the withdraw pattern should be used.
      seller.transfer(item.price-brokerFee-developerfee);
      broker.transfer(brokerFee);
      developer.transfer(developerfee);
      
      buyinfo[index].completed = true;

      emit IndividualItemReceived(buyinfo[index].buyer);
  }

  function getInfo() constant 
    public 
    returns (State, string, uint, string, uint, uint, address, address, bool)
  {
    return (state, item.name, item.price, item.detail, item.documents.length, 
        developerfee, seller, broker, bBrokerRequired);
  }
  
  function getBalance() constant
    public
    returns (uint256)
  {
    return address(this).balance;
  }

  function getFileAt(uint index) 
    public 
    constant returns(uint, bytes32, string, string, FileState)
  {
    return (index,
      item.documents[index].purpose,
      item.documents[index].name,
      item.documents[index].ipfshash,
      item.documents[index].state);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"isbroker","type":"bool"},{"name":"contract_type","type":"string"},{"name":"_brokerrequired","type":"bool"}],"name":"createContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dev","type":"address"}],"name":"setDeveloper","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"creator","type":"address"},{"indexed":false,"name":"newcontract","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"contract_type","type":"string"}],"name":"ContractCreated","type":"event"}]

6080604052737c67f0cdbea74592240d492aef2a712dafa094c36000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006457600080fd5b50613275806100746000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680639cf9342e14610051578063ff70fa49146100d2575b600080fd5b34801561005d57600080fd5b506100d0600480360381019080803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803515159060200190929190505050610115565b005b3480156100de57600080fd5b50610113600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102f4565b005b6000836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846101446103e5565b80851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182151515158152602001945050505050604051809103906000f0801580156101df573d6000803e3d6000fd5b5090507f0de9c1a487b0b8d32ae985845249f33f22f7c4a93285a9d4675bd34ff8e5cd5033824286604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102b1578082015181840152602081019050610296565b50505050905090810190601f1680156102de5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a150505050565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061039c57503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156103e257806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b604051612e54806103f683390190560060806040526000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550655af3107a4000600855655af3107a4000600955737c67f0cdbea74592240d492aef2a712dafa094c3600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055503480156200019d57600080fd5b5060405160808062002e548339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505080600c60146101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200034f5783156200029f5781600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002e1565b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548160ff021916908360038111156200034157fe5b021790555060326007819055505b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480620003fa57503373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15620004425782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415620004dc5733600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050505061296480620004f06000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308551a53146101645780630da5b5e3146101bb57806312065fe01461023357806335a063b41461025e578063423a7954146102755780635a9b0b89146102a0578063628e50b51461043757806362d93527146104625780636901f6681461048f5780636a6e88ba146104a65780636c5dee171461051e57806373fac6f01461065b57806385be8fe6146106725780638d69121d1461069f578063980fb0aa1461075c578063a0fb149714610773578063abff0110146107a0578063b2774b17146107f7578063bf0d0213146108b0578063c19d93fb146108f3578063d1314ee01461092c578063d69606971461098a578063dbd0e1b614610994578063e94087d6146109eb578063e99d286614610a02578063f2a4a82e14610a45578063f64bfaba14610b48575b600080fd5b34801561017057600080fd5b50610179610bb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101e660048036038101908080359060200190929190505050610bda565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b34801561023f57600080fd5b50610248610c36565b6040518082815260200191505060405180910390f35b34801561026a57600080fd5b50610273610c55565b005b34801561028157600080fd5b5061028a610d67565b6040518082815260200191505060405180910390f35b3480156102ac57600080fd5b506102b5610d6d565b604051808a60038111156102c557fe5b60ff16815260200180602001898152602001806020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528b818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156103f35780820151818401526020810190506103d8565b50505050905090810190601f1680156104205780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561044357600080fd5b5061044c610f52565b6040518082815260200191505060405180910390f35b34801561046e57600080fd5b5061048d60048036038101908080359060200190929190505050610f58565b005b34801561049b57600080fd5b506104a461102a565b005b3480156104b257600080fd5b506104d16004803603810190808035906020019092919050505061110c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b34801561052a57600080fd5b506105496004803603810190808035906020019092919050505061117f565b604051808681526020018560001916600019168152602001806020018060200184600181111561057557fe5b60ff168152602001838103835286818151815260200191508051906020019080838360005b838110156105b557808201518184015260208101905061059a565b50505050905090810190601f1680156105e25780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561061b578082015181840152602081019050610600565b50505050905090810190601f1680156106485780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561066757600080fd5b5061067061136e565b005b34801561067e57600080fd5b5061069d600480360381019080803590602001909291905050506115ae565b005b3480156106ab57600080fd5b5061075a6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506118a9565b005b34801561076857600080fd5b506107716119ed565b005b34801561077f57600080fd5b5061079e60048036038101908080359060200190929190505050611a9b565b005b3480156107ac57600080fd5b506107b5611b5a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080357600080fd5b506108ae600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611b80565b005b3480156108bc57600080fd5b506108f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611db1565b005b3480156108ff57600080fd5b50610908611f0b565b6040518082600381111561091857fe5b60ff16815260200191505060405180910390f35b34801561093857600080fd5b50610941611f1d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b610992611f4e565b005b3480156109a057600080fd5b506109a9612253565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109f757600080fd5b50610a0061227d565b005b348015610a0e57600080fd5b50610a43600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612318565b005b348015610a5157600080fd5b50610a5a612472565b604051808060200184815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610aa4578082015181840152602081019050610a89565b50505050905090810190601f168015610ad15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610b0a578082015181840152602081019050610aef565b50505050905090810190601f168015610b375780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b348015610b5457600080fd5b50610b5d6125ba565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ba0578082015181840152602081019050610b85565b505050509050019250505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d81815481101515610be957fe5b906000526020600020016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cb157600080fd5b610cb96126a4565b7f2e59d174afd41f9394b228b6d712c9b94b57d035e8e654713937c2ed1805d31960405160405180910390a1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b50565b60085481565b600060606000606060008060008060008060009054906101000a900460ff16600160000160018001546001600201600160030180549050600854600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60149054906101000a900460ff16878054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e925780601f10610e6757610100808354040283529160200191610e92565b820191906000526020600020905b815481529060010190602001808311610e7557829003601f168201915b50505050509750858054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f2e5780601f10610f0357610100808354040283529160200191610f2e565b820191906000526020600020905b815481529060010190602001808311610f1157829003601f168201915b50505050509550985098509850985098509850985098509850909192939495969798565b60075481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb457600080fd5b6000806003811115610fc257fe5b6000809054906101000a900460ff166003811115610fdc57fe5b141515610fe857600080fd5b816007819055507feddf6a5d82f8c9f95f788c0e19a85a523cbb07c55552e3bb8d6f8a5854a21e8d826040518082815260200191505060405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108657600080fd5b600080600381111561109457fe5b6000809054906101000a900460ff1660038111156110ae57fe5b1415156110ba57600080fd5b7f8fce3301e80cf917ce4c6e2b16b8323799f73469be2157dcbb210a93539c22c560405160405180910390a160016000806101000a81548160ff0219169083600381111561110457fe5b021790555050565b600080600d8381548110151561111e57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d8481548110151561115b57fe5b9060005260206000200160000160149054906101000a900460ff1691509150915091565b60008060608060008560016003018781548110151561119a57fe5b9060005260206000209060040201600001546001600301888154811015156111be57fe5b90600052602060002090600402016001016001600301898154811015156111e157fe5b906000526020600020906004020160020160016003018a81548110151561120457fe5b906000526020600020906004020160030160009054906101000a900460ff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113545780601f1061132957610100808354040283529160200191611354565b820191906000526020600020905b81548152906001019060200180831161133757829003601f168201915b505050505091509450945094509450945091939590929450565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ca57600080fd5b60028060038111156113d857fe5b6000809054906101000a900460ff1660038111156113f257fe5b1415156113fe57600080fd5b60036000806101000a81548160ff0219169083600381111561141c57fe5b0217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008546007543073ffffffffffffffffffffffffffffffffffffffff163103039081150290604051600060405180830381858888f193505050501580156114a8573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6007549081150290604051600060405180830381858888f19350505050158015611513573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f1935050505015801561157e573d6000803e3d6000fd5b507fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf760405160405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160a57600080fd5b600280600381111561161857fe5b6000809054906101000a900460ff16600381111561163257fe5b14151561163e57600080fd5b600d8054905082101515611651576118a5565b600d8281548110151561166057fe5b9060005260206000200160000160149054906101000a900460ff1615611685576118a5565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600854600754600180015403039081150290604051600060405180830381858888f193505050501580156116f9573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6007549081150290604051600060405180830381858888f19350505050158015611764573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f193505050501580156117cf573d6000803e3d6000fd5b506001600d838154811015156117e157fe5b9060005260206000200160000160146101000a81548160ff0219169083151502179055507fa98aaaa10623abf440af32fc7b0787b98272a5d05e687450a6c445698f55683f600d8381548110151561183557fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6003808111156118b557fe5b6000809054906101000a900460ff1660038111156118cf57fe5b141515156118dc57600080fd5b600260038111156118e957fe5b6000809054906101000a900460ff16600381111561190357fe5b1415151561191057600080fd5b6001600301608060405190810160405280856000191681526020018481526020018381526020016000600181111561194457fe5b8152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000190600019169055602082015181600101908051906020019061199e929190612813565b5060408201518160020190805190602001906119bb929190612813565b5060608201518160030160006101000a81548160ff021916908360018111156119e057fe5b0217905550505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4957600080fd5b600c60149054906101000a900460ff161515611a6457611a99565b611a6c6126a4565b7f69dbd123ab068cca278e2b306a6c70755e68a9f42177efdff8d82f538afff86d60405160405180910390a15b565b600380811115611aa757fe5b6000809054906101000a900460ff166003811115611ac157fe5b14151515611ace57600080fd5b60026003811115611adb57fe5b6000809054906101000a900460ff166003811115611af557fe5b14151515611b0257600080fd5b600160030180549050811015611b575760018060030182815481101515611b2557fe5b906000526020600020906004020160030160006101000a81548160ff02191690836001811115611b5157fe5b02179055505b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806003811115611b8e57fe5b6000809054906101000a900460ff166003811115611ba857fe5b141515611bb457600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c1057600080fd5b60095483111515611c2057600080fd5b8360016000019080519060200190611c39929190612893565b508260018001819055508160016002019080519060200190611c5c929190612893565b506009546103e884811515611c6d57fe5b0410611c86576103e883811515611c8057fe5b04611c8a565b6009545b6008819055507fb2e22e97fe2a63979c4686c61caf76f7184161b2e09fc886ee321717ca69a26e848484600854604051808060200185815260200180602001848152602001838103835287818151815260200191508051906020019080838360005b83811015611d07578082015181840152602081019050611cec565b50505050905090810190601f168015611d345780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611d6d578082015181840152602081019050611d52565b50505050905090810190601f168015611d9a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a150505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0d57600080fd5b6000806003811115611e1b57fe5b6000809054906101000a900460ff166003811115611e3557fe5b141515611e4157600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1b75d8270e5afe939fdff3cae33a061487ace0ba93a965f2548656f2369d9ca2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000809054906101000a900460ff1681565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600754915091509091565b600060018001543414801515611f6357600080fd5b600c60149054906101000a900460ff1615611fdc5760016003811115611f8557fe5b6000809054906101000a900460ff166003811115611f9f57fe5b141580611fd1575060026003811115611fb457fe5b6000809054906101000a900460ff166003811115611fce57fe5b14155b15611fdb5761224f565b5b600380811115611fe857fe5b6000809054906101000a900460ff16600381111561200257fe5b141561200d5761224f565b60026000806101000a81548160ff0219169083600381111561202b57fe5b02179055507f65674dd17109911bdb8eb8960c9589170ab40adbc59f4551a8523e3ae64c14bc33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160009150600c60149054906101000a900460ff16151561218e5760019150600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008546001800154039081150290604051600060405180830381858888f19350505050158015612121573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f1935050505015801561218c573d6000803e3d6000fd5b505b600d60408051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184151581525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055505050505b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123165733600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561237457600080fd5b600080600381111561238257fe5b6000809054906101000a900460ff16600381111561239c57fe5b1415156123a857600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe46d82ca18b3efbc720137c06201d9d5f5f97d3ee36c2b3d412884fe6801c104600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6001806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561250c5780601f106124e15761010080835404028352916020019161250c565b820191906000526020600020905b8154815290600101906020018083116124ef57829003601f168201915b505050505090806001015490806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125b05780601f10612585576101008083540402835291602001916125b0565b820191906000526020600020905b81548152906001019060200180831161259357829003601f168201915b5050505050905083565b6060806000600d805490506040519080825280602002602001820160405280156125f35781602001602082028038833980820191505090505b509150600090505b600d8054905081101561269c57600d8181548110151561261757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561265357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506125fb565b819250505090565b6000806003808111156126b357fe5b6000809054906101000a900460ff1660038111156126cd57fe5b141515156126da57600080fd5b6000600d8054905011156127ec57600d805490503073ffffffffffffffffffffffffffffffffffffffff163181151561270f57fe5b049150600090505b600d805490508110156127eb5760001515600d8281548110151561273757fe5b9060005260206000200160000160149054906101000a900460ff16151514156127de57600d8181548110151561276957fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127dc573d6000803e3d6000fd5b505b8080600101915050612717565b5b60036000806101000a81548160ff0219169083600381111561280a57fe5b02179055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061285457805160ff1916838001178555612882565b82800160010185558215612882579182015b82811115612881578251825591602001919060010190612866565b5b50905061288f9190612913565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128d457805160ff1916838001178555612902565b82800160010185558215612902579182015b828111156129015782518255916020019190600101906128e6565b5b50905061290f9190612913565b5090565b61293591905b80821115612931576000816000905550600101612919565b5090565b905600a165627a7a72305820229b83d3ad2e55105bb4eb995dfcd1980f583131b120fde5a17398f7140c808f0029a165627a7a72305820a3ff69d8fedaf326cbb649526c093b7263822e402bf5168d9584a41d4a7869a00029

Deployed Bytecode

0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680639cf9342e14610051578063ff70fa49146100d2575b600080fd5b34801561005d57600080fd5b506100d0600480360381019080803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803515159060200190929190505050610115565b005b3480156100de57600080fd5b50610113600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102f4565b005b6000836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846101446103e5565b80851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182151515158152602001945050505050604051809103906000f0801580156101df573d6000803e3d6000fd5b5090507f0de9c1a487b0b8d32ae985845249f33f22f7c4a93285a9d4675bd34ff8e5cd5033824286604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102b1578082015181840152602081019050610296565b50505050905090810190601f1680156102de5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a150505050565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061039c57503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156103e257806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b604051612e54806103f683390190560060806040526000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550655af3107a4000600855655af3107a4000600955737c67f0cdbea74592240d492aef2a712dafa094c3600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055503480156200019d57600080fd5b5060405160808062002e548339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505080600c60146101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200034f5783156200029f5781600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002e1565b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548160ff021916908360038111156200034157fe5b021790555060326007819055505b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480620003fa57503373ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15620004425782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415620004dc5733600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050505061296480620004f06000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308551a53146101645780630da5b5e3146101bb57806312065fe01461023357806335a063b41461025e578063423a7954146102755780635a9b0b89146102a0578063628e50b51461043757806362d93527146104625780636901f6681461048f5780636a6e88ba146104a65780636c5dee171461051e57806373fac6f01461065b57806385be8fe6146106725780638d69121d1461069f578063980fb0aa1461075c578063a0fb149714610773578063abff0110146107a0578063b2774b17146107f7578063bf0d0213146108b0578063c19d93fb146108f3578063d1314ee01461092c578063d69606971461098a578063dbd0e1b614610994578063e94087d6146109eb578063e99d286614610a02578063f2a4a82e14610a45578063f64bfaba14610b48575b600080fd5b34801561017057600080fd5b50610179610bb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b506101e660048036038101908080359060200190929190505050610bda565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b34801561023f57600080fd5b50610248610c36565b6040518082815260200191505060405180910390f35b34801561026a57600080fd5b50610273610c55565b005b34801561028157600080fd5b5061028a610d67565b6040518082815260200191505060405180910390f35b3480156102ac57600080fd5b506102b5610d6d565b604051808a60038111156102c557fe5b60ff16815260200180602001898152602001806020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528b818151815260200191508051906020019080838360005b8381101561038d578082015181840152602081019050610372565b50505050905090810190601f1680156103ba5780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156103f35780820151818401526020810190506103d8565b50505050905090810190601f1680156104205780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561044357600080fd5b5061044c610f52565b6040518082815260200191505060405180910390f35b34801561046e57600080fd5b5061048d60048036038101908080359060200190929190505050610f58565b005b34801561049b57600080fd5b506104a461102a565b005b3480156104b257600080fd5b506104d16004803603810190808035906020019092919050505061110c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b34801561052a57600080fd5b506105496004803603810190808035906020019092919050505061117f565b604051808681526020018560001916600019168152602001806020018060200184600181111561057557fe5b60ff168152602001838103835286818151815260200191508051906020019080838360005b838110156105b557808201518184015260208101905061059a565b50505050905090810190601f1680156105e25780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561061b578082015181840152602081019050610600565b50505050905090810190601f1680156106485780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561066757600080fd5b5061067061136e565b005b34801561067e57600080fd5b5061069d600480360381019080803590602001909291905050506115ae565b005b3480156106ab57600080fd5b5061075a6004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506118a9565b005b34801561076857600080fd5b506107716119ed565b005b34801561077f57600080fd5b5061079e60048036038101908080359060200190929190505050611a9b565b005b3480156107ac57600080fd5b506107b5611b5a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080357600080fd5b506108ae600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611b80565b005b3480156108bc57600080fd5b506108f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611db1565b005b3480156108ff57600080fd5b50610908611f0b565b6040518082600381111561091857fe5b60ff16815260200191505060405180910390f35b34801561093857600080fd5b50610941611f1d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b610992611f4e565b005b3480156109a057600080fd5b506109a9612253565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109f757600080fd5b50610a0061227d565b005b348015610a0e57600080fd5b50610a43600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612318565b005b348015610a5157600080fd5b50610a5a612472565b604051808060200184815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610aa4578082015181840152602081019050610a89565b50505050905090810190601f168015610ad15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610b0a578082015181840152602081019050610aef565b50505050905090810190601f168015610b375780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b348015610b5457600080fd5b50610b5d6125ba565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610ba0578082015181840152602081019050610b85565b505050509050019250505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d81815481101515610be957fe5b906000526020600020016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cb157600080fd5b610cb96126a4565b7f2e59d174afd41f9394b228b6d712c9b94b57d035e8e654713937c2ed1805d31960405160405180910390a1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b50565b60085481565b600060606000606060008060008060008060009054906101000a900460ff16600160000160018001546001600201600160030180549050600854600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60149054906101000a900460ff16878054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e925780601f10610e6757610100808354040283529160200191610e92565b820191906000526020600020905b815481529060010190602001808311610e7557829003601f168201915b50505050509750858054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f2e5780601f10610f0357610100808354040283529160200191610f2e565b820191906000526020600020905b815481529060010190602001808311610f1157829003601f168201915b50505050509550985098509850985098509850985098509850909192939495969798565b60075481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb457600080fd5b6000806003811115610fc257fe5b6000809054906101000a900460ff166003811115610fdc57fe5b141515610fe857600080fd5b816007819055507feddf6a5d82f8c9f95f788c0e19a85a523cbb07c55552e3bb8d6f8a5854a21e8d826040518082815260200191505060405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108657600080fd5b600080600381111561109457fe5b6000809054906101000a900460ff1660038111156110ae57fe5b1415156110ba57600080fd5b7f8fce3301e80cf917ce4c6e2b16b8323799f73469be2157dcbb210a93539c22c560405160405180910390a160016000806101000a81548160ff0219169083600381111561110457fe5b021790555050565b600080600d8381548110151561111e57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d8481548110151561115b57fe5b9060005260206000200160000160149054906101000a900460ff1691509150915091565b60008060608060008560016003018781548110151561119a57fe5b9060005260206000209060040201600001546001600301888154811015156111be57fe5b90600052602060002090600402016001016001600301898154811015156111e157fe5b906000526020600020906004020160020160016003018a81548110151561120457fe5b906000526020600020906004020160030160009054906101000a900460ff16828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113545780601f1061132957610100808354040283529160200191611354565b820191906000526020600020905b81548152906001019060200180831161133757829003601f168201915b505050505091509450945094509450945091939590929450565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ca57600080fd5b60028060038111156113d857fe5b6000809054906101000a900460ff1660038111156113f257fe5b1415156113fe57600080fd5b60036000806101000a81548160ff0219169083600381111561141c57fe5b0217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008546007543073ffffffffffffffffffffffffffffffffffffffff163103039081150290604051600060405180830381858888f193505050501580156114a8573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6007549081150290604051600060405180830381858888f19350505050158015611513573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f1935050505015801561157e573d6000803e3d6000fd5b507fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf760405160405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160a57600080fd5b600280600381111561161857fe5b6000809054906101000a900460ff16600381111561163257fe5b14151561163e57600080fd5b600d8054905082101515611651576118a5565b600d8281548110151561166057fe5b9060005260206000200160000160149054906101000a900460ff1615611685576118a5565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600854600754600180015403039081150290604051600060405180830381858888f193505050501580156116f9573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6007549081150290604051600060405180830381858888f19350505050158015611764573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f193505050501580156117cf573d6000803e3d6000fd5b506001600d838154811015156117e157fe5b9060005260206000200160000160146101000a81548160ff0219169083151502179055507fa98aaaa10623abf440af32fc7b0787b98272a5d05e687450a6c445698f55683f600d8381548110151561183557fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6003808111156118b557fe5b6000809054906101000a900460ff1660038111156118cf57fe5b141515156118dc57600080fd5b600260038111156118e957fe5b6000809054906101000a900460ff16600381111561190357fe5b1415151561191057600080fd5b6001600301608060405190810160405280856000191681526020018481526020018381526020016000600181111561194457fe5b8152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000190600019169055602082015181600101908051906020019061199e929190612813565b5060408201518160020190805190602001906119bb929190612813565b5060608201518160030160006101000a81548160ff021916908360018111156119e057fe5b0217905550505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a4957600080fd5b600c60149054906101000a900460ff161515611a6457611a99565b611a6c6126a4565b7f69dbd123ab068cca278e2b306a6c70755e68a9f42177efdff8d82f538afff86d60405160405180910390a15b565b600380811115611aa757fe5b6000809054906101000a900460ff166003811115611ac157fe5b14151515611ace57600080fd5b60026003811115611adb57fe5b6000809054906101000a900460ff166003811115611af557fe5b14151515611b0257600080fd5b600160030180549050811015611b575760018060030182815481101515611b2557fe5b906000526020600020906004020160030160006101000a81548160ff02191690836001811115611b5157fe5b02179055505b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806003811115611b8e57fe5b6000809054906101000a900460ff166003811115611ba857fe5b141515611bb457600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c1057600080fd5b60095483111515611c2057600080fd5b8360016000019080519060200190611c39929190612893565b508260018001819055508160016002019080519060200190611c5c929190612893565b506009546103e884811515611c6d57fe5b0410611c86576103e883811515611c8057fe5b04611c8a565b6009545b6008819055507fb2e22e97fe2a63979c4686c61caf76f7184161b2e09fc886ee321717ca69a26e848484600854604051808060200185815260200180602001848152602001838103835287818151815260200191508051906020019080838360005b83811015611d07578082015181840152602081019050611cec565b50505050905090810190601f168015611d345780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611d6d578082015181840152602081019050611d52565b50505050905090810190601f168015611d9a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a150505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0d57600080fd5b6000806003811115611e1b57fe5b6000809054906101000a900460ff166003811115611e3557fe5b141515611e4157600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1b75d8270e5afe939fdff3cae33a061487ace0ba93a965f2548656f2369d9ca2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000809054906101000a900460ff1681565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600754915091509091565b600060018001543414801515611f6357600080fd5b600c60149054906101000a900460ff1615611fdc5760016003811115611f8557fe5b6000809054906101000a900460ff166003811115611f9f57fe5b141580611fd1575060026003811115611fb457fe5b6000809054906101000a900460ff166003811115611fce57fe5b14155b15611fdb5761224f565b5b600380811115611fe857fe5b6000809054906101000a900460ff16600381111561200257fe5b141561200d5761224f565b60026000806101000a81548160ff0219169083600381111561202b57fe5b02179055507f65674dd17109911bdb8eb8960c9589170ab40adbc59f4551a8523e3ae64c14bc33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160009150600c60149054906101000a900460ff16151561218e5760019150600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008546001800154039081150290604051600060405180830381858888f19350505050158015612121573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6008549081150290604051600060405180830381858888f1935050505015801561218c573d6000803e3d6000fd5b505b600d60408051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184151581525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055505050505b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123165733600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561237457600080fd5b600080600381111561238257fe5b6000809054906101000a900460ff16600381111561239c57fe5b1415156123a857600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe46d82ca18b3efbc720137c06201d9d5f5f97d3ee36c2b3d412884fe6801c104600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6001806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561250c5780601f106124e15761010080835404028352916020019161250c565b820191906000526020600020905b8154815290600101906020018083116124ef57829003601f168201915b505050505090806001015490806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125b05780601f10612585576101008083540402835291602001916125b0565b820191906000526020600020905b81548152906001019060200180831161259357829003601f168201915b5050505050905083565b6060806000600d805490506040519080825280602002602001820160405280156125f35781602001602082028038833980820191505090505b509150600090505b600d8054905081101561269c57600d8181548110151561261757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561265357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506125fb565b819250505090565b6000806003808111156126b357fe5b6000809054906101000a900460ff1660038111156126cd57fe5b141515156126da57600080fd5b6000600d8054905011156127ec57600d805490503073ffffffffffffffffffffffffffffffffffffffff163181151561270f57fe5b049150600090505b600d805490508110156127eb5760001515600d8281548110151561273757fe5b9060005260206000200160000160149054906101000a900460ff16151514156127de57600d8181548110151561276957fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127dc573d6000803e3d6000fd5b505b8080600101915050612717565b5b60036000806101000a81548160ff0219169083600381111561280a57fe5b02179055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061285457805160ff1916838001178555612882565b82800160010185558215612882579182015b82811115612881578251825591602001919060010190612866565b5b50905061288f9190612913565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106128d457805160ff1916838001178555612902565b82800160010185558215612902579182015b828111156129015782518255916020019190600101906128e6565b5b50905061290f9190612913565b5090565b61293591905b80821115612931576000816000905550600101612919565b5090565b905600a165627a7a72305820229b83d3ad2e55105bb4eb995dfcd1980f583131b120fde5a17398f7140c808f0029a165627a7a72305820a3ff69d8fedaf326cbb649526c093b7263822e402bf5168d9584a41d4a7869a00029

Swarm Source

bzzr://a3ff69d8fedaf326cbb649526c093b7263822e402bf5168d9584a41d4a7869a0

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

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.