Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 18 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xeeea17b0cef49d206668075991058cc4e79596a2at txn 0xd7da504fc670df5405054ca595320c0ccd5ed651ab0e69c399f9800d1e130e4d
 Latest 18 txns

TxHash Age From To Value [TxFee]
0x1ba825e6b6914008412fa71f7019517b209bf53605912395c435d20a6f5c1acb10 days 20 hrs ago0x001a5f66f579151b896873d7df2eff330e895d06  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.002079511
0xe4b314d860af4485847074d7cfd6268c66cfe98403c5087143079346fff6848e27 days 12 hrs ago0x090a8ee3786aa838042b3cff2e43c664eb2cec06  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000892491
0x886488c554d1f57c4482af196768e75a205bea091e510d5600a66c066158db1154 days 15 hrs ago0x8fae89e0f855784c3822a7d915d77dccfffa23ce  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000593842
0xb7a1fc4a9fe0f3ecfb97caa530c74c6bbdc1faf6793237f4056239bc829f725554 days 17 hrs ago0xb535ac19df533873c2c640df6cd644cfbf8b5d39  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.00237652
0xf5de0b5c188eb20235bad79426814a67f4bff85f190d554db7716503e707a7ed58 days 1 hr ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.001490365
0x290d950617cc1b45f9046769b339ed68257227ab0e9e72cdbcb480b3d8f6ec7e76 days 17 hrs ago0x9f3ec88a6d79f76eebf0e569be5d2f0db07b7a80  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.002383432
0x66ac2ebedc4b5136dd6736358eb9e904d33e9bd87ba3fce5006c791f1553ac2576 days 17 hrs ago0x9f3ec88a6d79f76eebf0e569be5d2f0db07b7a80  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.002383432
0x3b82190e480a83ca5e2b1f11a6cbbd309fc0c27b63e3a10a70073a5828bbf2eb87 days 4 hrs ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.002375368
0x3abdbaa01417ca1541875e0a062059cfa005e1aa09befaa339a55664bfcb485293 days 21 hrs ago0xcc3dc38804cd7de52de39072a7d5b047fdd27b47  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.002381704
0x40e8df79f4a7d312ae0cf3d957bf7c1b5b1e0d288eabc7da74e3040a9ff4c6b193 days 21 hrs ago0xcc3dc38804cd7de52de39072a7d5b047fdd27b47  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.001786278
0x1fd10d93554575b1517c994abd4aee05c2537cf1dc390b1208299534a4135c78106 days 16 hrs ago0x27e4009bcc327a8b31f25520cb091121b33617ae  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000892515
0xd7b3624c9b376515884cfad8ee5e3776d5c05398b9c992c636c8ad01af7d9ddc134 days 22 hrs ago0x29750db35d5d93c3f8cf0765d32014c6c73ee5ef  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000296993
0xe6ff161df557631de694a59a662e91d87a773bf5589dacf55440aae82f8e1b32136 days 12 hrs ago0x1d234b212cce0128b29c8bfb5963d341020e6cc9  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000594562
0x7aa2d878a1d3432e3a453cfec40c71eff0df25f7a9e30f21b94c0617dca86bfa138 days 19 mins ago0xf714ccc8e574121652d3e6f734288f9bc8d586c0  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.0003578604
0x327799f78620df31d9d7c554c7d7175964e2241109445605bb3f3971733e0fb2141 days 21 hrs ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000298217
0x3c0e52d75a8e04a0f7a3b437cafd873fe09dfcfcb6533d87bd9ae114c2d6d5f1141 days 22 hrs ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.001625072
0x766db95eb1cd3bc0b94bf61ffaddc79e60f9ad3b01d376a34b89e49f1c685ef1141 days 23 hrs ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN   0xab34d543b557584c8950926343ae92f2bc78a60b0 Ether0.000472264
0xd7da504fc670df5405054ca595320c0ccd5ed651ab0e69c399f9800d1e130e4d141 days 23 hrs ago0xeeea17b0cef49d206668075991058cc4e79596a2  IN    Contract Creation0 Ether0.0074463
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 16 Internal Transactions

ParentTxHash Block Age From To Value
0x1ba825e6b6914008412fa71f7019517b209bf53605912395c435d20a6f5c1acb682713010 days 20 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0xe4b314d860af4485847074d7cfd6268c66cfe98403c5087143079346fff6848e672570627 days 12 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x886488c554d1f57c4482af196768e75a205bea091e510d5600a66c066158db11656025854 days 15 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0xb7a1fc4a9fe0f3ecfb97caa530c74c6bbdc1faf6793237f4056239bc829f7255655968454 days 17 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0xf5de0b5c188eb20235bad79426814a67f4bff85f190d554db7716503e707a7ed653931858 days 1 hr ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x290d950617cc1b45f9046769b339ed68257227ab0e9e72cdbcb480b3d8f6ec7e642448576 days 17 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x66ac2ebedc4b5136dd6736358eb9e904d33e9bd87ba3fce5006c791f1553ac25642447176 days 17 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x3b82190e480a83ca5e2b1f11a6cbbd309fc0c27b63e3a10a70073a5828bbf2eb636086287 days 4 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x3abdbaa01417ca1541875e0a062059cfa005e1aa09befaa339a55664bfcb4852632017493 days 21 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x40e8df79f4a7d312ae0cf3d957bf7c1b5b1e0d288eabc7da74e3040a9ff4c6b1632017193 days 21 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x1fd10d93554575b1517c994abd4aee05c2537cf1dc390b1208299534a4135c786244083106 days 16 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0xd7b3624c9b376515884cfad8ee5e3776d5c05398b9c992c636c8ad01af7d9ddc6076764134 days 22 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0xe6ff161df557631de694a59a662e91d87a773bf5589dacf55440aae82f8e1b326067413136 days 12 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x7aa2d878a1d3432e3a453cfec40c71eff0df25f7a9e30f21b94c0617dca86bfa6058709138 days 19 mins ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x327799f78620df31d9d7c554c7d7175964e2241109445605bb3f3971733e0fb26035611141 days 21 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
0x3c0e52d75a8e04a0f7a3b437cafd873fe09dfcfcb6533d87bd9ae114c2d6d5f16035341141 days 22 hrs ago0xab34d543b557584c8950926343ae92f2bc78a60b  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: AffiliateFactory
Compiler Text: v0.4.23+commit.124ca40d
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;


  /**
   * @title SafeMath
   * @dev Math operations with safety checks that throw on error
   */
  library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
      if (a == 0) {
        return 0;
      }
      c = a * b;
      assert(c / a == b);
      return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
      // assert(b > 0); // Solidity automatically throws when dividing by 0
      // uint256 c = a / b;
      // assert(a == b * c + a % b); // There is no case in which this doesn't hold
      return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
      assert(b <= a);
      return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
      c = a + b;
      assert(c >= a);
      return c;
    }
  }

  contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
  }

  contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
  }

  contract WETH9 {
      string public name     = "Wrapped Ether";
      string public symbol   = "WETH";
      uint8  public decimals = 18;

      event  Approval(address indexed src, address indexed guy, uint wad);
      event  Transfer(address indexed src, address indexed dst, uint wad);
      event  Deposit(address indexed dst, uint wad);
      event  Withdrawal(address indexed src, uint wad);

      mapping (address => uint)                       public  balanceOf;
      mapping (address => mapping (address => uint))  public  allowance;

      function() public payable {
          deposit();
      }
      function deposit() public payable {
          balanceOf[msg.sender] += msg.value;
          Deposit(msg.sender, msg.value);
      }
      function withdraw(uint wad) public {
          require(balanceOf[msg.sender] >= wad);
          balanceOf[msg.sender] -= wad;
          msg.sender.transfer(wad);
          Withdrawal(msg.sender, wad);
      }

      function totalSupply() public view returns (uint) {
          return this.balance;
      }

      function approve(address guy, uint wad) public returns (bool) {
          allowance[msg.sender][guy] = wad;
          Approval(msg.sender, guy, wad);
          return true;
      }

      function transfer(address dst, uint wad) public returns (bool) {
          return transferFrom(msg.sender, dst, wad);
      }

      function transferFrom(address src, address dst, uint wad)
          public
          returns (bool)
      {
          require(balanceOf[src] >= wad);

          if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
              require(allowance[src][msg.sender] >= wad);
              allowance[src][msg.sender] -= wad;
          }

          balanceOf[src] -= wad;
          balanceOf[dst] += wad;

          Transfer(src, dst, wad);

          return true;
      }
  }


  interface Registry {
      function isAffiliated(address _affiliate) external returns (bool);
  }

  contract Affiliate {
    struct Share {
        address shareholder;
        uint stake;
    }

    Share[] shares;
    uint public totalShares;
    string public relayerName;
    address registry;
    WETH9 weth;

    event Payout(address indexed token, uint amount);

    function init(address _registry, address[] shareholders, uint[] stakes, address _weth, string _name) public returns (bool) {
      require(totalShares == 0);
      require(shareholders.length == stakes.length);
      weth = WETH9(_weth);
      totalShares = 0;
      for(uint i=0; i < shareholders.length; i++) {
          shares.push(Share({shareholder: shareholders[i], stake: stakes[i]}));
          totalShares += stakes[i];
      }
      relayerName = _name;
      registry = _registry;
      return true;
    }
    function payout(address[] tokens) public {
        // Payout all stakes at once, so we don't have to do bookkeeping on who has
        // claimed their shares and who hasn't. If the number of shareholders is large
        // this could run into some gas limits. In most cases, I expect two
        // shareholders, but it could be a small handful. This also means the caller
        // must pay gas for everyone's payouts.
        for(uint i=0; i < tokens.length; i++) {
            ERC20 token = ERC20(tokens[i]);
            uint balance = token.balanceOf(this);
            for(uint j=0; j < shares.length; j++) {
                token.transfer(shares[j].shareholder, SafeMath.mul(balance, shares[j].stake) / totalShares);
            }
            emit Payout(tokens[i], balance);
        }
    }
    function isAffiliated(address _affiliate) public returns (bool)
    {
        return Registry(registry).isAffiliated(_affiliate);
    }

    function() public payable {
      // If we get paid in ETH, convert to WETH so payouts work the same.
      // Converting to WETH also makes payouts a bit safer, as we don't have to
      // worry about code execution if the stakeholder is a contract.
      weth.deposit.value(msg.value)();
    }

  }



  /**
   * @title Ownable
   * @dev The Ownable contract has an owner address, and provides basic authorization control
   * functions, this simplifies the implementation of "user permissions".
   */
  contract Ownable {
    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
      owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
      require(msg.sender == owner);
      _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
      require(newOwner != address(0));
      emit OwnershipTransferred(owner, newOwner);
      owner = newOwner;
    }

  }

  interface Downstream {
      function registerAffiliate(address _affiliate, string _name) external returns (bool);
  }

  contract AffiliateFactory is Ownable {

      event AffiliateDeployed(address affiliateAddress, address targetAddress, string affiliateName, address indexed sender);

      address public target;
      address public beneficiary;
      address public WETH;
      address public downstream;
      uint public beneficiaryStake;
      uint public senderStake;
      mapping(address => string) affiliates;

      constructor(address _target, address _weth, uint _beneficiaryStake, uint _senderStake, address _downstream) public Ownable() {
         update(_target, msg.sender, _weth, _beneficiaryStake, _senderStake, _downstream);
      }

      function update(address _target, address _beneficiary, address _weth, uint _beneficiaryStake, uint _senderStake, address _downstream) public onlyOwner {
          target = _target;
          beneficiary = _beneficiary;
          beneficiaryStake = _beneficiaryStake;
          senderStake = _senderStake;
          downstream = _downstream;
          WETH = _weth;
      }

      function signUp(address[] _stakeHolders, uint256[] _stakes, string _name)
          external
          returns (address affiliateContract)
      {
          require(_stakeHolders.length > 0 && _stakeHolders.length == _stakes.length && bytes(_name).length > 0);
          affiliateContract = createProxyImpl(target);
          address[] memory stakeHolders = new address[](_stakeHolders.length + 1);
          uint[] memory shares = new uint[](stakeHolders.length);
          stakeHolders[0] = beneficiary;
          shares[0] = beneficiaryStake;
          uint256 stakesTotal = 0;

          for(uint i=0; i < _stakeHolders.length; i++) {
            require(_stakes[i] > 0);
            stakesTotal = SafeMath.add(stakesTotal, _stakes[i]);
          }
          require(stakesTotal > 0);
          for(i=0; i < _stakeHolders.length; i++) {
            stakeHolders[i+1] = _stakeHolders[i];
            // (user stake) / (total stake) * (available stake) ; but with integer math
            shares[i+1] = SafeMath.mul(_stakes[i], senderStake) / stakesTotal ;
          }
          require(Affiliate(affiliateContract).init(this, stakeHolders, shares, WETH, _name));
          affiliates[affiliateContract] = _name;
          emit AffiliateDeployed(affiliateContract, target, _name, msg.sender);
          if(downstream != address(0)) {
            Downstream(downstream).registerAffiliate(affiliateContract, _name);
          }
      }

      function registerAffiliate(address[] stakeHolders, uint[] shares, string _name)
          external
          onlyOwner
          returns (address affiliateContract)
      {
          require(stakeHolders.length > 0 && stakeHolders.length == shares.length && bytes(_name).length > 0);
          affiliateContract = createProxyImpl(target);
          require(Affiliate(affiliateContract).init(this, stakeHolders, shares, WETH, _name));
          affiliates[affiliateContract] = _name;
          emit AffiliateDeployed(affiliateContract, target, _name, msg.sender);
          if(downstream != address(0)) {
            Downstream(downstream).registerAffiliate(affiliateContract, _name);
          }
      }

      function isAffiliated(address _affiliate) external view returns (bool)
      {
        return bytes(affiliates[_affiliate]).length != 0;
      }

      function affiliateName(address _affiliate) external view returns (string)
      {
        return affiliates[_affiliate];
      }

      function createProxyImpl(address _target)
          internal
          returns (address proxyContract)
      {
          assembly {
              let contractCode := mload(0x40) // Find empty storage location using "free memory pointer"

              mstore(add(contractCode, 0x0b), _target) // Add target address, with a 11 bytes [i.e. 23 - (32 - 20)] offset to later accomodate first part of the bytecode
              mstore(sub(contractCode, 0x09), 0x000000000000000000603160008181600b9039f3600080808080368092803773) // First part of the bytecode, shifted left by 9 bytes, overwrites left padding of target address
              mstore(add(contractCode, 0x2b), 0x5af43d828181803e808314602f57f35bfd000000000000000000000000000000) // Final part of bytecode, offset by 43 bytes

              proxyContract := create(0, contractCode, 60) // total length 60 bytes
              if iszero(extcodesize(proxyContract)) {
                  revert(0, 0)
              }
          }
      }
  }

    Contract ABI  
[{"constant":true,"inputs":[],"name":"downstream","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_affiliate","type":"address"}],"name":"isAffiliated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiaryStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"stakeHolders","type":"address[]"},{"name":"shares","type":"uint256[]"},{"name":"_name","type":"string"}],"name":"registerAffiliate","outputs":[{"name":"affiliateContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"target","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_affiliate","type":"address"}],"name":"affiliateName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_beneficiary","type":"address"},{"name":"_weth","type":"address"},{"name":"_beneficiaryStake","type":"uint256"},{"name":"_senderStake","type":"uint256"},{"name":"_downstream","type":"address"}],"name":"update","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_stakeHolders","type":"address[]"},{"name":"_stakes","type":"uint256[]"},{"name":"_name","type":"string"}],"name":"signUp","outputs":[{"name":"affiliateContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"senderStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_target","type":"address"},{"name":"_weth","type":"address"},{"name":"_beneficiaryStake","type":"uint256"},{"name":"_senderStake","type":"uint256"},{"name":"_downstream","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"affiliateAddress","type":"address"},{"indexed":false,"name":"targetAddress","type":"address"},{"indexed":false,"name":"affiliateName","type":"string"},{"indexed":true,"name":"sender","type":"address"}],"name":"AffiliateDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405234801561001057600080fd5b5060405160a080611b608339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100b88533868686866100c2640100000000026401000000009004565b5050505050610237565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561011d57600080fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005819055508160068190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b61191a806102466000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063359582ca146100ca57806338af3eed146101215780638da5cb5b146101785780639ab102ac146101cf578063ad5c46481461022a578063b079257014610281578063c9e01787146102ac578063d4b8399214610357578063d5bf158a146103ae578063e0b9e83d1461046a578063f2fde38b14610521578063f492a72f14610564578063f720a4531461060f575b600080fd5b3480156100d657600080fd5b506100df61063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012d57600080fd5b50610136610660565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018457600080fd5b5061018d610686565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101db57600080fd5b50610210600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ab565b604051808215151515815260200191505060405180910390f35b34801561023657600080fd5b5061023f61070b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028d57600080fd5b50610296610731565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b50610315600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610737565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036357600080fd5b5061036c610c55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ba57600080fd5b506103ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561042f578082015181840152602081019050610414565b50505050905090810190601f16801561045c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561047657600080fd5b5061051f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5c565b005b34801561052d57600080fd5b50610562600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed1565b005b34801561057057600080fd5b506105cd600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061b57600080fd5b50610624611786565b6040518082815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080546001816001161561010002031660029004905014159050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079457600080fd5b6000878790501180156107ac57508484905087879050145b80156107bb5750600083839050115b15156107c657600080fd5b6107f1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b90508073ffffffffffffffffffffffffffffffffffffffff166317342d363089898989600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200184810384528b8b82818152602001925060200280828437820191505084810383528989828181526020019250602002808284378201915050848103825286868281815260200192508082843782019150509b505050505050505050505050602060405180830381600087803b15801561095057600080fd5b505af1158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b8101908080519060200190929190505050151561099657600080fd5b8282600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091906109e4929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4b57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358285856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b8101908080519060200190929190505050505b9695505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d505780601f10610d2557610100808354040283529160200191610d50565b820191906000526020600020905b815481529060010190602001808311610d3357829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db757600080fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005819055508160068190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f6857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060608060008060008b8b90501180156110465750888890508b8b9050145b80156110555750600087879050115b151561106057600080fd5b61108b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b945060018b8b9050016040519080825280602002602001820160405280156110c25781602001602082028038833980820191505090505b50935083516040519080825280602002602001820160405280156110f55781602001602082028038833980820191505090505b509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600081518110151561112a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055483600081518110151561117857fe5b906020019060200201818152505060009150600090505b8a8a90508110156111ea57600089898381811015156111aa57fe5b905060200201351115156111bd57600080fd5b6111db828a8a8481811015156111cf57fe5b905060200201356117f5565b9150808060010191505061118f565b6000821115156111f957600080fd5b600090505b8a8a90508110156112d8578a8a82818110151561121757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16846001830181518110151561124557fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816112a28a8a84818110151561129357fe5b90506020020135600654611811565b8115156112ab57fe5b0483600183018151811015156112bd57fe5b906020019060200201818152505080806001019150506111fe565b8473ffffffffffffffffffffffffffffffffffffffff166317342d36308686600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c8c6040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019060200280838360005b838110156113f65780820151818401526020810190506113db565b50505050905001848103835288818151815260200191508051906020019060200280838360005b8381101561143857808201518184015260208101905061141d565b50505050905001848103825286868281815260200192508082843782019150509950505050505050505050602060405180830381600087803b15801561147d57600080fd5b505af1158015611491573d6000803e3d6000fd5b505050506040513d60208110156114a757600080fd5b810190808051906020019092919050505015156114c357600080fd5b8686600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209190611511929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb86600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561177857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358689896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b15801561173b57600080fd5b505af115801561174f573d6000803e3d6000fd5b505050506040513d602081101561176557600080fd5b8101908080519060200190929190505050505b505050509695505050505050565b60065481565b600060405182600b82015276603160008181600b9039f360008080808036809280377360098203527f5af43d828181803e808314602f57f35bfd000000000000000000000000000000602b820152603c816000f09150813b15156117ef57600080fd5b50919050565b6000818301905082811015151561180857fe5b80905092915050565b6000808314156118245760009050611843565b818302905081838281151561183557fe5b0414151561183f57fe5b8090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188a57803560ff19168380011785556118b8565b828001600101855582156118b8579182015b828111156118b757823582559160200191906001019061189c565b5b5090506118c591906118c9565b5090565b6118eb91905b808211156118e75760008160009055506001016118cf565b5090565b905600a165627a7a723058200f0d9e3b6965cdde5c34f9ac987644f1971bc8c9738ef63770392af5468be0410029

   Swarm Source:
bzzr://0f0d9e3b6965cdde5c34f9ac987644f1971bc8c9738ef63770392af5468be041

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.