Contract Overview
ETH Balance: 0 Ether
No Of Transactions: 1 txn
  Latest 1 txn

TxHash Age From To Value [TxFee]
0x592e9d1dc08c542e3420a21ddd4cb233976ac4ce2a63e1663058504f8461635b11 days 9 hrs ago0x6de484e7932c15d87c24e2170fc77bfa3d8a3f04  IN    Contract Creation0 Ether0.070278936
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: Ledger
Compiler Version: v0.4.17+commit.bdeb9e52
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.16;


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;
  }
}

contract ERC20Token {
     function balanceOf(address _address) constant returns (uint balance);
     function transfer(address _to, uint _value) returns (bool success);
}

contract ReputationTokenInterface {
     function issueTokens(address forAddress, uint tokenCount) returns (bool success);
     function burnTokens(address forAddress) returns (bool success);
     function lockTokens(address forAddress, uint tokenCount) returns (bool success);
     function unlockTokens(address forAddress, uint tokenCount) returns (bool success);
     function approve(address _spender, uint256 _value) returns (bool success);
     function nonLockedTokensCount(address forAddress) constant returns (uint tokenCount);
}

contract AbstractENS {
     function owner(bytes32 node) constant returns(address);
     function resolver(bytes32 node) constant returns(address);
     function ttl(bytes32 node) constant returns(uint64);
     function setOwner(bytes32 node, address owner);
     function setSubnodeOwner(bytes32 node, bytes32 label, address owner);
     function setResolver(bytes32 node, address resolver);
     function setTTL(bytes32 node, uint64 ttl);
}

contract Registrar {

     function transfer(bytes32, address){
          return;
     } 

}


contract Ledger {
     // who deployed Ledger
     address public mainAddress;
     address public whereToSendFee;
     address public repTokenAddress;
     address public ensRegistryAddress;
     address public registrarAddress;

     mapping (address => mapping(uint => address)) lrsPerUser;
     mapping (address => uint) lrsCountPerUser;

     uint public totalLrCount = 0;
     mapping (uint => address) lrs;

     // 0.01 ETH
     uint public borrowerFeeAmount = 0.01 ether;

     modifier byAnyone(){
          _;
     }

     function Ledger(address whereToSendFee_,address repTokenAddress_,address ensRegistryAddress_, address registrarAddress_){
          mainAddress = msg.sender;
          whereToSendFee = whereToSendFee_;
          repTokenAddress = repTokenAddress_;
          ensRegistryAddress = ensRegistryAddress_;
          registrarAddress = registrarAddress_;
     }

     function getRepTokenAddress()constant returns(address out){
          out = repTokenAddress;
          return;
     }

     function getFeeSum()constant returns(uint out){
          out = borrowerFeeAmount;
          return;
     }

     /// Must be called by Borrower
     // tokens as a collateral 
     function createNewLendingRequest()payable byAnyone returns(address out){
          out = newLr(0);
     }

     // domain as a collateral 
     function createNewLendingRequestEns()payable byAnyone returns(address out){
          out = newLr(1);
     }
     // reputation as a collateral
     function createNewLendingRequestRep()payable byAnyone returns(address out){
          out = newLr(2);
     }

     function newLr(int collateralType)payable byAnyone returns(address out){
          // 1 - send Fee to wherToSendFee 
          uint feeAmount = borrowerFeeAmount;
          if(msg.value<feeAmount){
               revert();
          }

          whereToSendFee.transfer(feeAmount);

          // 2 - create new LR
          // will be in state 'WaitingForData'

          out = new LendingRequest(mainAddress,msg.sender,whereToSendFee,collateralType,ensRegistryAddress,registrarAddress);

          // 3 - add to list
          uint currentCount = lrsCountPerUser[msg.sender];
          lrsPerUser[msg.sender][currentCount] = out;
          lrsCountPerUser[msg.sender]++;

          lrs[totalLrCount] = out;
          totalLrCount++;
     }

     function getLrCount()constant returns(uint out){
          out = totalLrCount;
          return;
     }

     function getLr(uint index) constant returns (address out){
          out = lrs[index];  
          return;
     }

     function getLrCountForUser(address a)constant returns(uint out){
          out = lrsCountPerUser[a];
          return;
     }

     function getLrForUser(address a,uint index) constant returns (address out){
          out = lrsPerUser[a][index];  
          return;
     }

     function getLrFundedCount()constant returns(uint out){
          out = 0;

          for(uint i=0; i<totalLrCount; ++i){
               LendingRequest lr = LendingRequest(lrs[i]);
               if(lr.getState()==LendingRequest.State.WaitingForPayback){
                    out++;
               }
          }

          return;
     }

     function getLrFunded(uint index) constant returns (address out){
          uint indexFound = 0;
          for(uint i=0; i<totalLrCount; ++i){
               LendingRequest lr = LendingRequest(lrs[i]);
               if(lr.getState()==LendingRequest.State.WaitingForPayback){
                    if(indexFound==index){
                         out = lrs[i];
                         return;
                    }

                    indexFound++;
               }
          }
          return;
     }

     function addRepTokens(address potentialBorrower, uint weiSum){
          ReputationTokenInterface repToken = ReputationTokenInterface(repTokenAddress);
          LendingRequest lr = LendingRequest(msg.sender);  
          // we`ll check is msg.sender is a real our LendingRequest
          if(lr.borrower()==potentialBorrower && address(this)==lr.creator()){// we`ll take a lr contract and check address a – is he a borrower for this contract?
               uint repTokens = (weiSum/10);
               repToken.issueTokens(potentialBorrower,repTokens);               
          }
     }

     function lockRepTokens(address potentialBorrower, uint weiSum){
          ReputationTokenInterface repToken = ReputationTokenInterface(repTokenAddress);
          LendingRequest lr = LendingRequest(msg.sender);  
          // we`ll check is msg.sender is a real our LendingRequest
          if(lr.borrower()==potentialBorrower && address(this)==lr.creator()){// we`ll take a lr contract and check address a – is he a borrower for this contract?
               uint repTokens = (weiSum);
               repToken.lockTokens(potentialBorrower,repTokens);               
          }
     }

     function unlockRepTokens(address potentialBorrower, uint weiSum){
          ReputationTokenInterface repToken = ReputationTokenInterface(repTokenAddress);
          LendingRequest lr = LendingRequest(msg.sender);
          // we`ll check is msg.sender is a real our LendingRequest
          if(lr.borrower()==potentialBorrower && address(this)==lr.creator()){// we`ll take a lr contract and check address a – is he a borrower for this contract?
               uint repTokens = (weiSum);
               repToken.unlockTokens(potentialBorrower,repTokens);               
          }
     }

     function burnRepTokens(address potentialBorrower){
          ReputationTokenInterface repToken = ReputationTokenInterface(repTokenAddress);
          LendingRequest lr = LendingRequest(msg.sender);  
          // we`ll check is msg.sender is a real our LendingRequest
          if(lr.borrower()==potentialBorrower && address(this)==lr.creator()){// we`ll take a lr contract and check address a – is he a borrower for this contract?
               repToken.burnTokens(potentialBorrower);               
          }
     }     

     function approveRepTokens(address potentialBorrower,uint weiSum) returns (bool success){
          ReputationTokenInterface repToken = ReputationTokenInterface(repTokenAddress);
          success = repToken.nonLockedTokensCount(potentialBorrower) >= weiSum;
          return;             
     } 

     function() payable{
          createNewLendingRequest();
     }
}

contract LendingRequest {
     using SafeMath for uint256;
     string public name = "LendingRequest";
     address public creator = 0x0;
     address public registrarAddress;

     // 0.01 ETH
     uint public lenderFeeAmount   = 0.01 ether;
     
     Ledger ledger;

     // who deployed Ledger
     address public mainAddress = 0x0;


     enum State {
          WaitingForData,

          // borrower set data
          WaitingForTokens,
          Cancelled,

          // wneh tokens received from borrower
          WaitingForLender,

          // when money received from Lender
          WaitingForPayback,

          Default,

          Finished
     }

     enum Type {
          TokensCollateral,
          EnsCollateral,
          RepCollateral
     }

// Contract fields:
     State public currentState = State.WaitingForData;

     Type public currentType = Type.TokensCollateral;

     address public whereToSendFee = 0x0;
     uint public start = 0;

     // This must be set by borrower:
     address public borrower = 0x0;
     uint public wanted_wei = 0;
     uint public token_amount = 0;
     uint public premium_wei = 0;
     string public token_name = "";
     bytes32 public ens_domain_hash; 
     string public token_infolink = "";
     address public token_smartcontract_address = 0x0;
     uint public days_to_lend = 0;

     // this is an address of AbstractENS contract
     address public ensRegistryAddress = 0;

     address public lender = 0x0;
// Access methods:
     function getBorrower()constant returns(address out){
          out = borrower;
     }

     function getWantedWei()constant returns(uint out){
          out = wanted_wei;
     }

     function getPremiumWei()constant returns(uint out){
          out = premium_wei;
     }

     function getTokenAmount()constant returns(uint out){
          out = token_amount;
     }

     function getTokenName()constant returns(string out){
          out = token_name;
     }

     function getTokenInfoLink()constant returns(string out){
          out = token_infolink;
     }

     function getTokenSmartcontractAddress()constant returns(address out){
          out = token_smartcontract_address;
     }

     function getDaysToLen()constant returns(uint out){
          out = days_to_lend;
     }
     
     function getState()constant returns(State out){
          out = currentState;
          return;
     }

     function getLender()constant returns(address out){
          out = lender;
     }

     function isEns()constant returns(bool out){
          out = (currentType==Type.EnsCollateral);
     }

     function isRep()constant returns(bool out){
          out = (currentType==Type.RepCollateral);
     }


     function getEnsDomainHash()constant returns(bytes32 out){
          out = ens_domain_hash;
     }
///

     modifier byAnyone(){
          _;
     }

     modifier onlyByLedger(){
          require(Ledger(msg.sender) == ledger);
          _;
     }

     modifier onlyByMain(){
          require(msg.sender == mainAddress);
          _;
     }

     modifier byLedgerOrMain(){
          require(msg.sender == mainAddress || Ledger(msg.sender) == ledger);
          _;
     }

     modifier byLedgerMainOrBorrower(){
          require(msg.sender == mainAddress || Ledger(msg.sender) == ledger || msg.sender == borrower);
          _;
     }

     modifier onlyByLender(){
          require(msg.sender == lender);
          _;
     }

     modifier onlyInState(State state){
          require(currentState == state);
          _;
     }

     function LendingRequest(address mainAddress_,address borrower_,address whereToSendFee_, int contractType, address ensRegistryAddress_, address registrarAddress_){
          ledger = Ledger(msg.sender);

          mainAddress = ledger.mainAddress(); //mainAddress_;
          whereToSendFee = ledger.whereToSendFee(); //whereToSendFee_;
          registrarAddress = ledger.registrarAddress(); //registrarAddress_;
          borrower = borrower_;
          creator = msg.sender;
          // collateral: tokens or ENS domain?
          if      (contractType==0){
               currentType = Type.TokensCollateral;
          }else if(contractType==1){
               currentType = Type.EnsCollateral;
          }else if(contractType==2){
               currentType = Type.RepCollateral;
          } else {
               revert();
          }

          ensRegistryAddress = ledger.ensRegistryAddress(); //ensRegistryAddress_;
     }

     function changeLedgerAddress(address new_)onlyByLedger{
          ledger = Ledger(new_);
     }

     function changeMainAddress(address new_)onlyByMain{
          mainAddress = new_;
     }

// 
     function setData(uint wanted_wei_, uint token_amount_, uint premium_wei_,
          string token_name_, string token_infolink_, address token_smartcontract_address_, uint days_to_lend_, bytes32 ens_domain_hash_) 
               byLedgerMainOrBorrower onlyInState(State.WaitingForData)
     {
          wanted_wei = wanted_wei_;
          premium_wei = premium_wei_;
          token_amount = token_amount_; // will be ZERO if isCollateralEns is true 
          token_name = token_name_;
          token_infolink = token_infolink_;
          token_smartcontract_address = token_smartcontract_address_;
          days_to_lend = days_to_lend_;
          ens_domain_hash = ens_domain_hash_;

          if(currentType==Type.RepCollateral){
               if(ledger.approveRepTokens(borrower, wanted_wei)){
                    ledger.lockRepTokens(borrower, wanted_wei);
                    currentState = State.WaitingForLender;
               }
          } else {
               currentState = State.WaitingForTokens;
          }
     }

     function cancell() byLedgerMainOrBorrower {
          // 1 - check current state
          if((currentState!=State.WaitingForData) && (currentState!=State.WaitingForLender))
               revert();

          if(currentState==State.WaitingForLender){
               // return tokens back to Borrower
               releaseToBorrower();
          }
          currentState = State.Cancelled;
     }

     // Should check if tokens are 'trasferred' to this contracts address and controlled
     function checkTokens()byLedgerMainOrBorrower onlyInState(State.WaitingForTokens){
          if(currentType!=Type.TokensCollateral){
               revert();
          }

          ERC20Token token = ERC20Token(token_smartcontract_address);

          uint tokenBalance = token.balanceOf(this);
          if(tokenBalance >= token_amount){
               // we are ready to search someone 
               // to give us the money
               currentState = State.WaitingForLender;
          }
     }

     function checkDomain() onlyInState(State.WaitingForTokens){
          // Use 'ens_domain_hash' to check whether this domain is transferred to this address
          AbstractENS ens = AbstractENS(ensRegistryAddress);
          if(ens.owner(ens_domain_hash)==address(this)){
               // we are ready to search someone 
               // to give us the money
               currentState = State.WaitingForLender;
               return;
          }
     }

     // This function is called when someone sends money to this contract directly.
     //
     // If someone is sending at least 'wanted_wei' amount of money in WaitingForLender state
     // -> then it means it's a Lender.
     //
     // If someone is sending at least 'wanted_wei' amount of money in WaitingForPayback state
     // -> then it means it's a Borrower returning money back. 
     function() payable {
          if(currentState==State.WaitingForLender){
               waitingForLender();
          }else if(currentState==State.WaitingForPayback){
               waitingForPayback();
          }
     }

     // If no lenders -> borrower can cancel the LR
     function returnTokens() byLedgerMainOrBorrower onlyInState(State.WaitingForLender){
          // tokens are released back to borrower
          releaseToBorrower();
          currentState = State.Finished;
     }

     function waitingForLender()payable onlyInState(State.WaitingForLender){
          if(msg.value < wanted_wei.add(lenderFeeAmount)){
               revert();
          }

          // send platform fee first
          whereToSendFee.transfer(lenderFeeAmount);

          // if you sent this -> you are the lender
          lender = msg.sender;     

          // ETH is sent to borrower in full
          // Tokens are kept inside of this contract
          borrower.transfer(wanted_wei);

          currentState = State.WaitingForPayback;

          start = now;
     }

     // if time hasn't passed yet - Borrower can return loan back
     // and get his tokens back
     // 
     // anyone can call this (not only the borrower)
     function waitingForPayback()payable onlyInState(State.WaitingForPayback){
          if(msg.value < wanted_wei.add(premium_wei)){
               revert();
          }
          // ETH is sent back to lender in full with premium!!!
          lender.transfer(msg.value);

          releaseToBorrower(); // tokens are released back to borrower
          ledger.addRepTokens(borrower,wanted_wei);
          currentState = State.Finished; // finished
     }

     // How much should lender send
     function getNeededSumByLender()constant returns(uint out){
          uint total = wanted_wei.add(lenderFeeAmount);
          out = total;
          return;
     }

     // How much should borrower return to release tokens
     function getNeededSumByBorrower()constant returns(uint out){
          uint total = wanted_wei.add(premium_wei);
          out = total;
          return;
     }

     // After time has passed but lender hasn't returned the loan -> move tokens to lender
     // anyone can call this (not only the lender)
     function requestDefault()onlyInState(State.WaitingForPayback){
          if(now < (start + days_to_lend * 1 days)){
               revert();
          }

          releaseToLender(); // tokens are released to the lender        
          // ledger.addRepTokens(lender,wanted_wei); // Only Lender get Reputation tokens
          currentState = State.Default; 
     }

     function releaseToLender() internal {
    
          if(currentType==Type.EnsCollateral){
               AbstractENS ens = AbstractENS(ensRegistryAddress);
               Registrar registrar = Registrar(registrarAddress);

               ens.setOwner(ens_domain_hash,lender);
               registrar.transfer(ens_domain_hash,lender);

          }else if (currentType==Type.RepCollateral){
               ledger.unlockRepTokens(borrower, wanted_wei);
          }else{
               ERC20Token token = ERC20Token(token_smartcontract_address);
               uint tokenBalance = token.balanceOf(this);
               token.transfer(lender,tokenBalance);
          }

          ledger.burnRepTokens(borrower);
     }

     function releaseToBorrower() internal {
          if(currentType==Type.EnsCollateral){
               AbstractENS ens = AbstractENS(ensRegistryAddress);
               Registrar registrar = Registrar(registrarAddress);
               ens.setOwner(ens_domain_hash,borrower);
               registrar.transfer(ens_domain_hash,borrower);

          }else if (currentType==Type.RepCollateral){
               ledger.unlockRepTokens(borrower, wanted_wei);
          }else{
               ERC20Token token = ERC20Token(token_smartcontract_address);
               uint tokenBalance = token.balanceOf(this);
               token.transfer(borrower,tokenBalance);
          }
     }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"mainAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registrarAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"repTokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLr","outputs":[{"name":"out","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLrFunded","outputs":[{"name":"out","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"},{"name":"index","type":"uint256"}],"name":"getLrForUser","outputs":[{"name":"out","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistryAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createNewLendingRequestEns","outputs":[{"name":"out","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"potentialBorrower","type":"address"},{"name":"weiSum","type":"uint256"}],"name":"unlockRepTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalLrCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"potentialBorrower","type":"address"},{"name":"weiSum","type":"uint256"}],"name":"lockRepTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"potentialBorrower","type":"address"},{"name":"weiSum","type":"uint256"}],"name":"addRepTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getLrCount","outputs":[{"name":"out","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whereToSendFee","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"collateralType","type":"int256"}],"name":"newLr","outputs":[{"name":"out","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"createNewLendingRequest","outputs":[{"name":"out","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"getLrCountForUser","outputs":[{"name":"out","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"borrowerFeeAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createNewLendingRequestRep","outputs":[{"name":"out","type":"address"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getLrFundedCount","outputs":[{"name":"out","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRepTokenAddress","outputs":[{"name":"out","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"potentialBorrower","type":"address"},{"name":"weiSum","type":"uint256"}],"name":"approveRepTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"potentialBorrower","type":"address"}],"name":"burnRepTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getFeeSum","outputs":[{"name":"out","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"whereToSendFee_","type":"address"},{"name":"repTokenAddress_","type":"address"},{"name":"ensRegistryAddress_","type":"address"},{"name":"registrarAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600755662386f26fc10000600955341561001f57600080fd5b604051608080612f558339810160405280805191906020018051919060200180519190602001805160008054600160a060020a03338116600160a060020a0319928316179092556001805498831698821698909817909755600280549682169688169690961790955560038054948616948716949094179093555050600480549290911691909216179055612e9c806100b96000396000f300606060405236156200013b5763ffffffff60e060020a6000350416630cdd42348114620001485780630ce11a77146200017a5780631dbd08a61462000190578063233baab314620001a657806323e6da0014620001bf5780635c227c3614620001d8578063768c7bdb14620001fd57806378c0440914620002135780637df4c49b146200021d5780638229a57c146200024457806386ecbafb146200026c5780638738ea2f14620002915780638ecd2e9e14620002b6578063a7ede36414620002cc578063ab091ecd14620002e2578063ade12b4914620002ef578063bad03c2914620002f9578063c6311aab146200031b578063c6b6f9961462000331578063d54772bc146200033b578063f34f43f61462000351578063fbc927dc1462000367578063ff52e95414620003a0578063ff665e5314620003c2575b62000145620003d8565b50005b34156200015457600080fd5b6200015e620003eb565b604051600160a060020a03909116815260200160405180910390f35b34156200018657600080fd5b6200015e620003fa565b34156200019c57600080fd5b6200015e62000409565b3415620001b257600080fd5b6200015e60043562000418565b3415620001cb57600080fd5b6200015e60043562000433565b3415620001e457600080fd5b6200015e600160a060020a036004351660243562000519565b34156200020957600080fd5b6200015e62000541565b6200015e62000550565b34156200022957600080fd5b62000242600160a060020a03600435166024356200055e565b005b34156200025057600080fd5b6200025a620006e4565b60405190815260200160405180910390f35b34156200027857600080fd5b62000242600160a060020a0360043516602435620006ea565b34156200029d57600080fd5b62000242600160a060020a03600435166024356200084c565b3415620002c257600080fd5b6200025a620009b1565b3415620002d857600080fd5b6200015e620009b7565b6200015e600435620009c6565b6200015e620003d8565b34156200030557600080fd5b6200025a600160a060020a036004351662000b0d565b34156200032757600080fd5b6200025a62000b28565b6200015e62000b2e565b34156200034757600080fd5b6200025a62000b3c565b34156200035d57600080fd5b6200015e62000bf5565b34156200037357600080fd5b6200038c600160a060020a036004351660243562000c04565b604051901515815260200160405180910390f35b3415620003ac57600080fd5b62000242600160a060020a036004351662000c89565b3415620003ce57600080fd5b6200025a62000e03565b6000620003e66000620009c6565b905090565b600054600160a060020a031681565b600454600160a060020a031681565b600254600160a060020a031681565b600090815260086020526040902054600160a060020a031690565b60008080805b600754821015620005115750600081815260086020526040902054600160a060020a0316600481600160a060020a0316631865c57d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620004a657600080fd5b6102c65a03f11515620004b857600080fd5b505050604051805190506006811115620004ce57fe5b1415620005055784831415620004fe57600082815260086020526040902054600160a060020a0316935062000511565b6001909201915b81600101915062000439565b505050919050565b600160a060020a03918216600090815260056020908152604080832093835292905220541690565b600354600160a060020a031681565b6000620003e66001620009c6565b600254600160a060020a03908116903390600090858116908316637df1f1b983604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620005b457600080fd5b6102c65a03f11515620005c657600080fd5b50505060405180519050600160a060020a03161480156200065a575081600160a060020a03166302d05d3f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200062957600080fd5b6102c65a03f115156200063b57600080fd5b50505060405180519050600160a060020a031630600160a060020a0316145b15620006dd575082600160a060020a038316639d564d9a868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620006c057600080fd5b6102c65a03f11515620006d257600080fd5b505050604051805150505b5050505050565b60075481565b600254600160a060020a03908116903390600090858116908316637df1f1b983604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200074057600080fd5b6102c65a03f115156200075257600080fd5b50505060405180519050600160a060020a0316148015620007e6575081600160a060020a03166302d05d3f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620007b557600080fd5b6102c65a03f11515620007c757600080fd5b50505060405180519050600160a060020a031630600160a060020a0316145b15620006dd575082600160a060020a03831663b1c25586868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620006c057600080fd5b600254600160a060020a03908116903390600090858116908316637df1f1b983604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515620008a257600080fd5b6102c65a03f11515620008b457600080fd5b50505060405180519050600160a060020a031614801562000948575081600160a060020a03166302d05d3f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200091757600080fd5b6102c65a03f115156200092957600080fd5b50505060405180519050600160a060020a031630600160a060020a0316145b15620006dd5750600a8304600160a060020a03831663475a9fa9868360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620006c057600080fd5b60075490565b600154600160a060020a031681565b600954600090813482901015620009dc57600080fd5b600154600160a060020a031682156108fc0283604051600060405180830381858888f19350505050151562000a1057600080fd5b600054600154600354600454600160a060020a039384169333938116928992908216911662000a3e62000e09565b600160a060020a0396871681529486166020860152928516604080860191909152606085019290925284166080840152921660a082015260c0019051809103906000f080151562000a8e57600080fd5b600160a060020a0333811660009081526006602090815260408083208054600584528285209085528352818420805495871673ffffffffffffffffffffffffffffffffffffffff199687168117909155815460019081019092556007805486526008909452919093208054909416179092558154019055949350505050565b600160a060020a031660009081526006602052604090205490565b60095481565b6000620003e66002620009c6565b600080805b60075482101562000bf05750600081815260086020526040902054600160a060020a0316600481600160a060020a0316631865c57d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000bae57600080fd5b6102c65a03f1151562000bc057600080fd5b50505060405180519050600681111562000bd657fe5b141562000be4576001909201915b81600101915062000b41565b505090565b600254600160a060020a031690565b600254600090600160a060020a03168281630452426386856040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000c6257600080fd5b6102c65a03f1151562000c7457600080fd5b50505060405180519050101591505092915050565b600254600160a060020a03908116903390838116908216637df1f1b96000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000cdd57600080fd5b6102c65a03f1151562000cef57600080fd5b50505060405180519050600160a060020a031614801562000d83575080600160a060020a03166302d05d3f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151562000d5257600080fd5b6102c65a03f1151562000d6457600080fd5b50505060405180519050600160a060020a031630600160a060020a0316145b1562000dfe5781600160a060020a031663b237f7d48460006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000de157600080fd5b6102c65a03f1151562000df357600080fd5b505050604051805150505b505050565b60095490565b6040516120568062000e1b833901905600606060405260408051908101604052600e81527f4c656e64696e6752657175657374000000000000000000000000000000000000602082015260009080516200004d929160200190620004b2565b5060018054600160a060020a0319908116909155662386f26fc1000060035560058054600160b060020a0319169055600680548216905560006007819055600880549092169091556009819055600a819055600b55602060405190810160405260008152600c908051620000c6929160200190620004b2565b50602060405190810160405260008152600e908051620000eb929160200190620004b2565b50600f8054600160a060020a03199081169091556000601055601180548216905560128054909116905534156200012157600080fd5b60405160c0806200205683398101604052808051919060200180519190602001805191906020018051919060200180519190602001805160048054600160a060020a03191633600160a060020a039081169190911791829055919350169050630cdd42346000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620001d657600080fd5b6102c65a03f11515620001e857600080fd5b505050604051805160058054600160a060020a031916600160a060020a0392831617905560045416905063a7ede3646000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200026857600080fd5b6102c65a03f115156200027a57600080fd5b505050604051805160068054600160a060020a031916600160a060020a03928316179055600454169050630ce11a776000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620002fa57600080fd5b6102c65a03f115156200030c57600080fd5b505050604051805160028054600160a060020a0319908116600160a060020a03938416179091556008805482168984161790556001805490911633909216919091179055508215156200038f57600580546000919060a860020a60ff0219167501000000000000000000000000000000000000000000835b021790555062000408565b8260011415620003c957600580546001919060a860020a60ff02191675010000000000000000000000000000000000000000008362000384565b82600214156200040357600580546002919060a860020a60ff02191675010000000000000000000000000000000000000000008362000384565b600080fd5b600454600160a060020a031663768c7bdb6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200046a57600080fd5b6102c65a03f115156200047c57600080fd5b505050604051805160118054600160a060020a031916600160a060020a0392909216919091179055506200055795505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004f557805160ff191683800117855562000525565b8280016001018555821562000525579182015b828111156200052557825182559160200191906001019062000508565b506200053392915062000537565b5090565b6200055491905b808211156200053357600081556001016200053e565b90565b611aef80620005676000396000f300606060405236156102085763ffffffff60e060020a6000350416628c8920811461025f57806302d05d3f1461029657806303777734146102c557806305778047146102e457806306fdde031461030b5780630c3f6acf146103955780630cdd4234146103b85780630ce11a77146103cb5780630e29e961146103de5780630e5486c2146104035780631865c57d146104225780631b5ae6e1146104355780631cb0c3e7146104485780631f7d8f281461045b5780632cff55d11461046e5780632d6c9295146104815780633c121286146105385780633c8d4532146105405780633d2e5bbc14610553578063464070e71461056657806354f6c0db1461057957806363ab60e81461058c57806370b5a95b1461059457806375f91ec8146105a7578063768c7bdb146105ba578063771c21f0146105cd578063782f085d146105e05780637d8b19c5146105f35780637df1f1b91461060657806385430b8614610619578063862b092b1461062c578063947a31681461063f5780639861f3e5146106525780639bcdcb2814610665578063a10ab3a014610678578063a7ede3641461068b578063aebc7d7a1461069e578063bb23df9e146106b1578063bcead63e146106c4578063be9a6555146106d7578063c5ee8150146106ea578063d006a93c146106fd578063d664caaf14610710578063ef0cb2de14610723578063f9718fc814610736575b600360055460a060020a900460ff16600681111561022257fe5b141561023557610230610749565b61025d565b600460055460a060020a900460ff16600681111561024f57fe5b141561025d5761025d610854565b005b341561026a57600080fd5b61027261096a565b6040518082600281111561028257fe5b60ff16815260200191505060405180910390f35b34156102a157600080fd5b6102a961097a565b604051600160a060020a03909116815260200160405180910390f35b34156102d057600080fd5b61025d600160a060020a0360043516610989565b34156102ef57600080fd5b6102f76109d3565b604051901515815260200160405180910390f35b341561031657600080fd5b61031e6109f6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561035a578082015183820152602001610342565b50505050905090810190601f1680156103875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103a057600080fd5b6103a8610a94565b6040518082600681111561028257fe5b34156103c357600080fd5b6102a9610aa4565b34156103d657600080fd5b6102a9610ab3565b34156103e957600080fd5b6103f1610ac2565b60405190815260200160405180910390f35b341561040e57600080fd5b61025d600160a060020a0360043516610ac8565b341561042d57600080fd5b6103a8610b12565b341561044057600080fd5b6102a9610b23565b341561045357600080fd5b6102a9610b32565b341561046657600080fd5b6102a9610b41565b341561047957600080fd5b61031e610b50565b341561048c57600080fd5b61025d600480359060248035916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a038535169460208101359450604001359250610bbb915050565b61025d610854565b341561054b57600080fd5b6103f1610e04565b341561055e57600080fd5b6103f1610e0a565b341561057157600080fd5b61025d610e2e565b341561058457600080fd5b6103f1610f0a565b61025d610749565b341561059f57600080fd5b6103f1610f10565b34156105b257600080fd5b6103f1610f16565b34156105c557600080fd5b6102a9610f1c565b34156105d857600080fd5b61025d610f2b565b34156105eb57600080fd5b6102f7611078565b34156105fe57600080fd5b6103f1611081565b341561061157600080fd5b6102a9611087565b341561062457600080fd5b61031e611096565b341561063757600080fd5b61031e61113e565b341561064a57600080fd5b61031e6111b1565b341561065d57600080fd5b6102a961121c565b341561067057600080fd5b6103f161122b565b341561068357600080fd5b61025d611231565b341561069657600080fd5b6102a961131b565b34156106a957600080fd5b6103f161132a565b34156106bc57600080fd5b6103f1611330565b34156106cf57600080fd5b6102a961134a565b34156106e257600080fd5b6103f1611359565b34156106f557600080fd5b6103f161135f565b341561070857600080fd5b6103f1611365565b341561071b57600080fd5b61025d61136b565b341561072e57600080fd5b6103f16113cb565b341561074157600080fd5b61025d6113d1565b60038060055460a060020a900460ff16600681111561076457fe5b1461076e57600080fd5b6003546009546107839163ffffffff61146a16565b34101561078f57600080fd5b600654600354600160a060020a039091169080156108fc0290604051600060405180830381858888f1935050505015156107c857600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03908116919091179091556008546009549116906108fc81150290604051600060405180830381858888f19350505050151561082657600080fd5b506005805460a060020a60ff0219167404000000000000000000000000000000000000000017905542600755565b60048060055460a060020a900460ff16600681111561086f57fe5b1461087957600080fd5b600b5460095461088e9163ffffffff61146a16565b34101561089a57600080fd5b601254600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156108ce57600080fd5b6108d6611480565b600454600854600954600160a060020a0392831692638738ea2f92169060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561093657600080fd5b6102c65a03f1151561094757600080fd5b5050600580546006925060a060020a60ff02191660a060020a835b021790555050565b60055460a860020a900460ff1681565b600154600160a060020a031681565b60055433600160a060020a039081169116146109a457600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600060015b60055460a860020a900460ff1660028111156109f057fe5b14905090565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b505050505081565b60055460a060020a900460ff1681565b600554600160a060020a031681565b600254600160a060020a031681565b60035481565b60045433600160a060020a03908116911614610ae357600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460a060020a900460ff165b90565b600f54600160a060020a031681565b600854600160a060020a031690565b600f54600160a060020a031690565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b60055433600160a060020a0390811691161480610be6575060045433600160a060020a039081169116145b80610bff575060085433600160a060020a039081169116145b1515610c0a57600080fd5b60008060055460a060020a900460ff166006811115610c2557fe5b14610c2f57600080fd5b6009899055600b879055600a889055600c868051610c51929160200190611a1d565b50600e858051610c65929160200190611a1d565b50600f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790556010839055600d829055600260055460a860020a900460ff166002811115610cb257fe5b1415610de257600454600854600954600160a060020a039283169263fbc927dc92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d2157600080fd5b6102c65a03f11515610d3257600080fd5b5050506040518051905015610ddd57600454600854600954600160a060020a03928316926386ecbafb92169060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610da157600080fd5b6102c65a03f11515610db257600080fd5b50506005805460a060020a60ff02191674030000000000000000000000000000000000000000179055505b610df9565b6005805460a060020a60ff02191660a060020a1790555b505050505050505050565b600b5481565b600080610e24600b5460095461146a90919063ffffffff16565b90508091505b5090565b600060018060055460a060020a900460ff166006811115610e4b57fe5b14610e5557600080fd5b601154600d54600160a060020a039182169350309091169083906302571be39060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610eb457600080fd5b6102c65a03f11515610ec557600080fd5b50505060405180519050600160a060020a03161415610f06576005805460a060020a60ff021916740300000000000000000000000000000000000000001790555b5050565b600a5481565b60105490565b600a5490565b601154600160a060020a031681565b600554600090819033600160a060020a0390811691161480610f5b575060045433600160a060020a039081169116145b80610f74575060085433600160a060020a039081169116145b1515610f7f57600080fd5b60018060055460a060020a900460ff166006811115610f9a57fe5b14610fa457600080fd5b600060055460a860020a900460ff166002811115610fbe57fe5b14610fc857600080fd5b600f54600160a060020a03169250826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561102457600080fd5b6102c65a03f1151561103557600080fd5b5050506040518051600a5490935083109050611073576005805460a060020a60ff021916740300000000000000000000000000000000000000001790555b505050565b600060026109d8565b60095481565b600854600160a060020a031681565b61109e611a97565b600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111345780601f1061110957610100808354040283529160200191611134565b820191906000526020600020905b81548152906001019060200180831161111757829003601f168201915b5050505050905090565b611146611a97565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111345780601f1061110957610100808354040283529160200191611134565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b601254600160a060020a031690565b600d5481565b60055433600160a060020a039081169116148061125c575060045433600160a060020a039081169116145b80611275575060085433600160a060020a039081169116145b151561128057600080fd5b600060055460a060020a900460ff16600681111561129a57fe5b141580156112c05750600360055460a060020a900460ff1660068111156112bd57fe5b14155b156112ca57600080fd5b600360055460a060020a900460ff1660068111156112e457fe5b14156112f2576112f2611480565b6005805460a060020a60ff02191674020000000000000000000000000000000000000000179055565b600654600160a060020a031681565b60095490565b600080610e2460035460095461146a90919063ffffffff16565b601254600160a060020a031681565b60075481565b60105481565b600d5490565b60048060055460a060020a900460ff16600681111561138657fe5b1461139057600080fd5b6010546201518002600754014210156113a857600080fd5b6113b0611719565b60058054819060a060020a60ff02191660a060020a82610962565b600b5490565b60055433600160a060020a03908116911614806113fc575060045433600160a060020a039081169116145b80611415575060085433600160a060020a039081169116145b151561142057600080fd5b60038060055460a060020a900460ff16600681111561143b57fe5b1461144557600080fd5b61144d611480565b600580546006919060a060020a60ff02191660a060020a83610962565b60008282018381101561147957fe5b9392505050565b6000808080600160055460a860020a900460ff16600281111561149f57fe5b141561159b57601154600254600d54600854600160a060020a03938416975091831695508692635b0fc9c3921660405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561151057600080fd5b6102c65a03f1151561152157600080fd5b5050600d54600854600160a060020a0380871693506379ce9fac92911660405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561158257600080fd5b6102c65a03f1151561159357600080fd5b505050611713565b600260055460a860020a900460ff1660028111156115b557fe5b141561161b57600454600854600954600160a060020a0392831692637df4c49b92169060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561158257600080fd5b600f54600160a060020a03169150816370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b5050506040518051600854909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156116f757600080fd5b6102c65a03f1151561170857600080fd5b505050604051805150505b50505050565b6000808080600160055460a860020a900460ff16600281111561173857fe5b141561183457601154600254600d54601254600160a060020a03938416975091831695508692635b0fc9c3921660405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b15156117a957600080fd5b6102c65a03f115156117ba57600080fd5b5050600d54601254600160a060020a0380871693506379ce9fac92911660405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561181b57600080fd5b6102c65a03f1151561182c57600080fd5b5050506119ac565b600260055460a860020a900460ff16600281111561184e57fe5b14156118b457600454600854600954600160a060020a0392831692637df4c49b92169060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561181b57600080fd5b600f54600160a060020a03169150816370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561191057600080fd5b6102c65a03f1151561192157600080fd5b5050506040518051601254909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561199057600080fd5b6102c65a03f115156119a157600080fd5b505050604051805150505b600454600854600160a060020a039182169163ff52e954911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515611a0357600080fd5b6102c65a03f11515611a1457600080fd5b50505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a5e57805160ff1916838001178555611a8b565b82800160010185558215611a8b579182015b82811115611a8b578251825591602001919060010190611a70565b50610e2a929150611aa9565b60206040519081016040526000815290565b610b2091905b80821115610e2a5760008155600101611aaf5600a165627a7a723058207d0dfc2ece7573e85bbd114f692902fada11c65b35dbd90b6de348206e4c79da0029a165627a7a7230582004e0f06cc8981b34ff3cea259522f846f406428955dd26e13cffb4e0f03956fe00290000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f040000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f040000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f040000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f04

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

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 0000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f04
Arg [1] : 0000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f04
Arg [2] : 0000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f04
Arg [3] : 0000000000000000000000006de484e7932c15d87c24e2170fc77bfa3d8a3f04


   Swarm Source:
bzzr://04e0f06cc8981b34ff3cea259522f846f406428955dd26e13cffb4e0f03956fe
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward