Contract 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f

 
Ad
Crypto.com
Txn Hash Method
Block
From
To
Value
0x76c0414459465727c059d2e6f342f3d508f3a4ebe4176b0895fea44b8f8eea58Send Repayment94597142020-02-11 5:16:06494 days 7 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001056971
0xfc8eeeb62ccc7524a14fd4a9415ca6fa255c77ab8dd918ce1335fb0f13a18120Send Repayment94597112020-02-11 5:15:23494 days 7 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001206971
0xca71ea2812bab0aa7040e7f835b299ea2d705c05e26b8da36aec2bbd1b2efc76Send Repayment94595642020-02-11 4:42:45494 days 8 hrs ago0x00574f2a6acdf6a1854087b5284db06ccce62705 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00012683641.2
0xb8bb5fbd67ded4f927682d3117cce0118183bfbc948269582d696e6928614d94Send Repayment94595642020-02-11 4:42:45494 days 8 hrs ago0x00574f2a6acdf6a1854087b5284db06ccce62705 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00012683641.2
0x0ef94bfe12b7687bb713df06622618f4a9c1b57804cf08171f001d309231cd69Send Repayment94595642020-02-11 4:42:45494 days 8 hrs ago0x00574f2a6acdf6a1854087b5284db06ccce62705 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001206971
0xaf41e8811b4ebdd272f7dd2bb91d740747b35caee5a0e340f7e548ed27d6c21aSend Repayment93739042020-01-29 0:55:46507 days 11 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0002113942
0x741b139a33357b95bef543864a06620d94a8f6915861f1bb31ec346436a19d10Send Repayment93592552020-01-26 18:58:40509 days 17 hrs ago0x5dc3f662f67c4b19bf8e855d0822440eb5501834 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00039830013.3
0xaeb3faf563191b0d69907f1574b4e261655a59f3b6f788ee318bed100b806b47Send Repayment93582522020-01-26 15:25:45509 days 21 hrs ago0x983397f2d4e278e648360d5741473cf756bb8a77 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001813942
0x3901adf2db42e6b703455e190cb6363d92805e8d73b152f3c8411db62c1aebedSend Repayment93154062020-01-20 1:43:53516 days 11 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001056971
0x780ddec5085cedfc6297be7547bc52951554947dfce324d66fd3b936405a8d87Send Repayment92969982020-01-17 6:04:25519 days 6 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0005284855
0x2ac76113254a4939165b313b35b29ddf58d55d78694019debc967c8d4eb8ccc0Send Repayment92602452020-01-11 14:48:47524 days 22 hrs ago0x7ccad45fcbbaecd43f960c5af4e82ed2a0021d7c IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0003620913
0xa73b7eb4b0358f573f038db3f7d5994c951250376359317b897be67fdf091f77Send Repayment92385822020-01-08 7:06:50528 days 5 hrs ago0x00574f2a6acdf6a1854087b5284db06ccce62705 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00023253342.2
0x4eb506bdf078e7482e03e29106bd83a85e527ecb3c55eab01855f0146e927188Send Repayment92183912020-01-05 5:06:34531 days 7 hrs ago0x00574f2a6acdf6a1854087b5284db06ccce62705 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001056971
0x7c59dc33986082472d332d6aa9a797aa1cc49cc70d203b659fc70d15072bb0a6Send Repayment92183552020-01-05 4:59:52531 days 7 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0001206731
0x4068f216fbeffaafa31fc2ba08a42f8d2d0f62e727921649656eec4700a76c29Send Repayment91058302019-12-14 14:57:07552 days 21 hrs ago0x5dc3f662f67c4b19bf8e855d0822440eb5501834 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00013604551.5
0x3dca36fae5b0c938c4e600b0aee4365d08027e10f5d99e2d1cf8f61221c765b4Send Repayment90979482019-12-13 3:30:21554 days 9 hrs ago0x5ba18683a4d68972d7cfbe5eb6d3eff8d83d6c4d IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00149618254514.157
0x0110143d4cb4bc3fa6b5183a37bd37b8f1074de9797ea1197e9beb8ff650c3f0Send Repayment90806322019-12-10 2:00:30557 days 10 hrs ago0x5ba18683a4d68972d7cfbe5eb6d3eff8d83d6c4d IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00158545515
0xe1f90c1f9c22c6728f889386142a86f86469b011e7f7eb9c472e78c7534481f8Send Repayment90806322019-12-10 2:00:30557 days 10 hrs ago0x5ba18683a4d68972d7cfbe5eb6d3eff8d83d6c4d IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.00158545515
0x4cb0ef0a11e05240642b56f304d89b0cb6b6bff5d3bd85d8553c0761eb8632b9Investment Contr...89899702019-11-24 2:37:25573 days 10 hrs ago0xa4c69c68ef05713e98df6c9643c2f5cafdc51a19 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.001071795781.98
0x7c35ed9eb92f59c1f6883da51e99306e37c3d8436196728db44607bcb74a69eaTransfer Into Mo...89862662019-11-23 11:53:38574 days 57 mins ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f5.546067863962124 Ether0.0010071315
0xd2cc0de50edd48840e3ce93cdeec1f5baaa6636201e45facf3b8d4662ec6a234Create Contract89862292019-11-23 11:46:47574 days 1 hr ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0013513621
0x3ef5e80a9242277e270bc48cdcd0203a54db75c6b5152723ded72603d6e968f4Investment Contr...89857712019-11-23 10:03:31574 days 2 hrs ago0xa4c69c68ef05713e98df6c9643c2f5cafdc51a19 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0012069020162.304
0x6c5f4e45bb2db424488652ed744af2513af42195d9e603bc5e700af895825784Investment Contr...89857542019-11-23 9:58:55574 days 2 hrs ago0xd2d0452feb847a0982db184c212933143143fa30 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.002711535
0x1b521777be45215194400d1a2336ddd4842a974dc3691df734b687e4266a94c3Transfer Into Mo...89850752019-11-23 7:11:57574 days 5 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f40.959546871745565 Ether0.0000671421
0x9556bbc67fb96cbbfb36ab9a43096336d22ab2f9cedc38fa98d4e21e61195033Create Contract89850702019-11-23 7:10:37574 days 5 hrs ago0xe9a290ce7a5f3b37b0965622016205b69f5b7136 IN  0xf9b6541b14f586459acdc6aec15dc2e12b8db09f0 Ether0.0013513621
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7c35ed9eb92f59c1f6883da51e99306e37c3d8436196728db44607bcb74a69ea89862662019-11-23 11:53:38574 days 57 mins ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0xf3360a36c551857c35b562e24f01f061c57daa8b5.546067863962124638 Ether
0xd2cc0de50edd48840e3ce93cdeec1f5baaa6636201e45facf3b8d4662ec6a23489862292019-11-23 11:46:47574 days 1 hr ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x1b521777be45215194400d1a2336ddd4842a974dc3691df734b687e4266a94c389850752019-11-23 7:11:57574 days 5 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x4b284cd6a82cbac0b1e063fc5f192b51602e160b40.95954687174556546 Ether
0x9556bbc67fb96cbbfb36ab9a43096336d22ab2f9cedc38fa98d4e21e6119503389850702019-11-23 7:10:37574 days 5 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0xef8349402cc8fcb6995db42755a69182f89df2c7ed9df74574d3e1af67d04d5889754652019-11-21 16:47:41575 days 20 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x6e9316b2721fec8ee2ab38c6d3c820e16ac0253a40.24 Ether
0x230aabd672c9d0c8b6938fc29c28b98065ecdd30bf20e62009a84ecb1ddab8de89689412019-11-20 14:47:51576 days 22 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0xc00b55680bb19e73c5c5033865c59bc43bb4a8e49.332979932612853799 Ether
0x16c30a5984b70259cd7e4aaf7d2cef5d3619eeaacb21f9bd48851d213ffaea7889689392019-11-20 14:47:39576 days 22 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x11db84d1193f61dc6f67d383414c8235d133fc95d728cd2d88a5e810c4be5e7689685882019-11-20 13:26:35576 days 23 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x18bbc4e9574f97a2fa43aeac033e73df4adc5f114.669015493817684437 Ether
0x38d85613513b25c5223b39789b2e81adfed1c6fe38579137c241c92c63a917d989685822019-11-20 13:25:23576 days 23 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x9df3d3aabea4cdd2723cf861b2214d9da731fc9d5cb7828562f73c9a98f7b9e089624752019-11-19 12:43:55578 days 7 mins ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x2d23967230a0786f975e32c2a6ef3dddbee9336d6.873952810300543234 Ether
0x668a3a110432505405db4ae81eefd886c3824f5f05f42c693a1edc67335a296889624042019-11-19 12:23:27578 days 27 mins ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0xb8e179799d1d9dd436c3a686b595cf0d26c0ac786346407e3eceb58a4b17bb8b89544332019-11-18 4:20:51579 days 8 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0xce3c96ffcfcf20a3077f6c26c78035085e1182f215.604482696335473586 Ether
0xda3dcce1cccdefe00e7e878dcf9b5cb9110fc21c4bee83d1a606b4c1c1bcda3b89544232019-11-18 4:18:38579 days 8 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x1359da945211f7115f64d3e632101d4cef9c88c55aed4fb0058f5bdb733c1fa888928632019-11-07 23:31:16589 days 13 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x2c6a4761534abb08a4c5afa1090aa9f7f63432a419.615795103845138046 Ether
0xa7959da9bc987767457a775820b936e06cd450aaa9caf0dd9cd688523fdbfba888928582019-11-07 23:30:34589 days 13 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x55156025b1596ea2abb56eff82ea39eaef606c33ef3e66c31161b8429b645fb788805822019-11-05 23:53:34591 days 12 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x8598f99118b24978da0c069a329e1a8d548f9cfd11cb7dcbdab253a4010ef5c288507892019-11-01 5:06:37596 days 7 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x0b708e058f066a54173606b545bd2f9d7b9ba6612.21455313675581438 Ether
0x8a9bb914962c437b5803c64f295f6acf2980fb0bf25fc2fd225babc8a9e2045188507862019-11-01 5:04:55596 days 7 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x84292e6d50f2b5ba941eb8cfbd245769b6286be29712f3be31c2e89e93a032c288463302019-10-31 11:50:01597 days 1 hr ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0xc1930ca7b7bd411bf7f9521821f02433800455722.208943561176148083 Ether
0x2500b888ed8b4ccd09d32be02d882fdab391d3f4528c1a045ed463df3f65ed8888463152019-10-31 11:45:31597 days 1 hr ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0xb3137c6e2d32797e7ffc84f4db230e34e1b2f88f32ebbc45cdc002130c995a1988395182019-10-30 9:28:07598 days 3 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x8081ebc52cbb921f20911f99c9b1aff13cdc00da22.132 Ether
0xa1e06bdcebdb146c17688eebc938081cd15a3896f2ee5a7bf7dded40e5fda8d988378982019-10-30 3:13:27598 days 9 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x28d6ab1e33213e9ecd21a94f7ff711262b37885c1.0001 Ether
0x95a778b00518f7448f190c55f38b59683acf5d245773c2f9c90ff730caa2d9a888378852019-10-30 3:09:30598 days 9 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x28d6ab1e33213e9ecd21a94f7ff711262b37885c1 Ether
0x6bbef90cae4311a06badfcce2f6a93094d195d8c9463d6115a10e4a067a6b72a88378362019-10-30 2:57:45598 days 9 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f  Contract Creation0 Ether
0x8bd1af1a6aded06054612eb7f2cc2f55385c792e60b7ffb60f17b09cbb97dd9688343862019-10-29 13:49:47598 days 23 hrs ago 0xf9b6541b14f586459acdc6aec15dc2e12b8db09f 0x16de5796b33a937005a61757fffb93aecad6139b34.102 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NEST_LoanFactoryContract

Compiler Version
v0.5.9+commit.e560f70d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-09-11
*/

pragma solidity ^0.5.9;

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
//  ercERC
contract ERC20 {
    function totalSupply() public view returns (uint supply);
    function balanceOf( address who ) public view returns (uint value);
    function allowance( address owner, address spender ) public view returns (uint _allowance);

    function transfer( address to, uint256 value) external;
    function transferFrom( address from, address to, uint value) public;
    function approve( address spender, uint value ) public returns (bool ok);

    event Transfer( address indexed from, address indexed to, uint value);
    event Approval( address indexed owner, address indexed spender, uint value);
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {
    int256 constant private INT256_MIN = -2**255;

    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

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

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// We can define a library for explicitly converting ``address``
// to ``address payable`` as a workaround.
library address_make_payable {
   function make_payable(address x) internal pure returns (address payable) {
      return address(uint160(x));
   }
}

//  Lending Data Contract
contract NEST_ToLoanDataContract {
    //  Add address
    function addContractAddress(address contractAddress) public;
    //  Check the contract address
    function checkContract(address contractAddress) public view returns (bool);
}

//  Mapping contract
contract IBMapping {
    //  Query address
	function checkAddress(string memory name) public view returns (address contractAddress);
	//  See if you have permission to modify
	function checkOwners(address man) public view returns (bool);
}

//  Lending and mining contracts
contract NEST_LoanMachinery {
    function startMining(address borrower, address lender, address token, uint256 interest, uint256 time) public payable;
}
//  Verification of price contracts
contract NEST_PriceCheck {
    //  Validation of loan contract price
    function checkContract(address borrowAddress, uint256 borrowAmount, address lenderAddress, uint256 lenderAmount, uint256 mortgageRate, uint256 limitdays,uint256 interestRate ) public view returns (bool);
}

//  Lending Factory Contract
contract NEST_LoanFactoryContract {
    
    using SafeMath for uint256;
    using address_make_payable for address;
    NEST_ToLoanDataContract dataContract;                   
    IBMapping mappingContract;                              
    mapping(uint256 => address) loanTokenAddress;           
    mapping(address => uint256) mortgageRate;               
    mapping(string => uint256) parameter;                   
    NEST_PriceCheck priceCheck;                             
    event ContractAddress(address contractAddress);
    
    constructor (address map) public {
        mappingContract = IBMapping(map);
        dataContract = NEST_ToLoanDataContract(address(mappingContract.checkAddress("toLoanData")));
        priceCheck = NEST_PriceCheck(address(mappingContract.checkAddress("priceCheck")));
        setupParameter();
    }
    function changeMapping(address map) public onlyOwner {
        mappingContract = IBMapping(map);
        dataContract = NEST_ToLoanDataContract(address(mappingContract.checkAddress("toLoanData")));
        priceCheck = NEST_PriceCheck(address(mappingContract.checkAddress("priceCheck")));
    }
    
    function setupParameter() private {
        parameter["borroweCommission"] = 5;
        parameter["lenderCommission"] = 10;
        
        mortgageRate[0x0000000000000000000000000000000000000000] = 50;
        mortgageRate[0x0000000000085d4780B73119b644AE5ecd22b376] = 40;
        mortgageRate[0xdAC17F958D2ee523a2206206994597C13D831ec7] = 40;
        mortgageRate[0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359] = 40;
        mortgageRate[0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2] = 40;
        mortgageRate[0x6f259637dcD74C767781E37Bc6133cd6A68aa161] = 40;
        mortgageRate[0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0] = 40;
        mortgageRate[0x0D8775F648430679A709E98d2b0Cb6250d2887EF] = 40;
        mortgageRate[0x6A27348483D59150aE76eF4C0f3622A78B0cA698] = 40;
        mortgageRate[0xd26114cd6EE289AccF82350c8d8487fedB8A0C07] = 40;
        
        loanTokenAddress[1] = address(0x0000000000085d4780B73119b644AE5ecd22b376);
        loanTokenAddress[2] = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
        loanTokenAddress[3] = address(0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359);
        loanTokenAddress[4] = address(0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2);
        loanTokenAddress[5] = address(0x6f259637dcD74C767781E37Bc6133cd6A68aa161);
        loanTokenAddress[6] = address(0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0);
        loanTokenAddress[7] = address(0x0D8775F648430679A709E98d2b0Cb6250d2887EF);
        loanTokenAddress[8] = address(0x6A27348483D59150aE76eF4C0f3622A78B0cA698);
        loanTokenAddress[9] = address(0xd26114cd6EE289AccF82350c8d8487fedB8A0C07);
        
    }
    
    function changeTokenAddress(uint256 num, address addr) public onlyOwner {
        loanTokenAddress[num] = addr;
    }

    function changeMortgageRate(address addr, uint256 num) public onlyOwner {
        mortgageRate[addr] = num;
    }

    function changeParameter(string memory name, uint256 value) public onlyOwner {
        parameter[name] = value;
    }

    function checkParameter(string memory name) public view returns(uint256) {
        return parameter[name];
    }
    
    function checkToken(uint256 num) public view returns (address) {
        return loanTokenAddress[num];
    }
    
    modifier onlyOwner(){
        require(mappingContract.checkOwners(msg.sender) == true);
        _;
    }
    
    function isContract(address addr) public view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
    
    function createContract(uint256 borrowerAmount, uint256 borrowerId, uint256 lenderAmount, uint256 lenderId, uint256 limitdays,uint256 interestRate) public {
        if (borrowerId == 0 || lenderId == 0) {
            address borrower = address(loanTokenAddress[borrowerId]);
            address lender = address(loanTokenAddress[lenderId]);
            require(priceCheck.checkContract(borrower, borrowerAmount, lender, lenderAmount, mortgageRate[borrower],limitdays, interestRate) == true);
        }
        NEST_LoanContract newContract = new NEST_LoanContract(borrowerAmount, borrowerId, lenderAmount, lenderId, limitdays,interestRate, address(mappingContract));
        dataContract.addContractAddress(address(newContract));
 
        emit ContractAddress(address(newContract));
    }

    function transferIntoMortgaged(address contractAddress) public payable {
        require(isContract(address(msg.sender)) == false);   
        require(dataContract.checkContract(address(contractAddress)) == true);
        NEST_LoanContract newContract = NEST_LoanContract(address(contractAddress));
        require(newContract.showContractState() == 0);      
        require(address(msg.sender) == newContract.checkBorrower());   
        if (newContract.checkContractType() == 1) {
            newContract.mortgagedAssets.value(msg.value)();                 
        } else {
            require(msg.value == 0);
            newContract.mortgagedAssets();                                      
        }
        
    }

    function investmentContracts(address contractAddress) public payable {
        require(isContract(address(msg.sender)) == false);   
        require(dataContract.checkContract(address(contractAddress)) == true);
        NEST_LoanContract newContract = NEST_LoanContract(address(contractAddress));
        require(newContract.showContractState() == 1);      
        if (newContract.checkContractType() == 2) {
            newContract.sendLendAsset.value(msg.value)();
        } else {
            require(msg.value == 0);
            newContract.sendLendAsset();            
        }
        
    }

    function sendRepayment(address contractAddress) public payable {
        require(isContract(address(msg.sender)) == false);   
        require(dataContract.checkContract(address(contractAddress)) == true);
        NEST_LoanContract newContract = NEST_LoanContract(address(contractAddress));
        require(address(msg.sender) == newContract.checkBorrower());   
        require(newContract.showContractState() == 2);      
        if (newContract.checkContractType() == 2) {
            newContract.sendRepayment.value(msg.value)();
        } else {
            require(msg.value == 0);
            newContract.sendRepayment();            
        }
    }
}

//  Loan contract
contract NEST_LoanContract {
    using SafeMath for uint256;
    using address_make_payable for address;
    ERC20 Token;        
    ERC20 lenderToken;  
    uint256 _contractState;     
    address _borrower;          
    address _lender;            
    uint256 _lenderAmount;      
    uint256 _timeLimit;         
    uint256 _interest;          
    uint256 _borrowerAmount;    
    uint256 _ibasset;           
    uint256 _commissionRate;    
    uint256 _investmentTime;    
    uint256 _endTime;           
    uint256 _borrowerPayable;   
    uint256 _expireDate;        
    uint256 _createTime;        
    IBMapping mappingContract;  
    uint256  contractType;      
    uint256 version = 2;        
    
    constructor (uint256 borrowerAmount, uint256 borrowerId, uint256 lenderAmount, uint256 lenderId, uint256 limitdays,uint256 interestRate,address map) public {
        require(isContract(address(tx.origin)) == false);   
        require(borrowerAmount > 0);
        require(limitdays > 0);
        require(interestRate > 0);
        require(lenderAmount > 0);
        require(borrowerId != lenderId);
        mappingContract = IBMapping(map);

        NEST_LoanFactoryContract factory = NEST_LoanFactoryContract(address(mappingContract.checkAddress("toLoanFactory")));
        require(address(msg.sender) == address(factory));               
        _borrower = tx.origin;                  
        _borrowerAmount = borrowerAmount;       
        _contractState = 0;                     
        _lenderAmount = lenderAmount;           
        _timeLimit = limitdays.mul(1 days);     
        _interest = interestRate;               
        _borrowerPayable = _lenderAmount.mul(interestRate.mul(limitdays).add(10000)).div(10000);
        require(_borrowerPayable > 0);           
        _createTime = now;                      
        
        setcontractType(borrowerId, lenderId);             
        
        
        
        if (contractType == 1) {
            _commissionRate = factory.checkParameter("borroweCommission");                      
            address tokenAddr = factory.checkToken(lenderId);
            require(tokenAddr != address(0x0000000000000000000000000000000000000000));
            lenderToken = ERC20(tokenAddr);
            _ibasset = _borrowerAmount.mul(_commissionRate).div(1000);                          
        } else if (contractType == 2) {
            _commissionRate = factory.checkParameter("lenderCommission");                      
            address tokenAddr = factory.checkToken(borrowerId);
            require(tokenAddr != address(0x0000000000000000000000000000000000000000));
            Token = ERC20(tokenAddr);
            _ibasset = _lenderAmount.mul(_commissionRate).div(1000);                          
        } else if (contractType == 3) {
            _commissionRate = 0;
            address tokenAddr = factory.checkToken(lenderId);
            require(tokenAddr != address(0x0000000000000000000000000000000000000000));
            lenderToken = ERC20(tokenAddr);
            address token = factory.checkToken(borrowerId);
            require(token != address(0x0000000000000000000000000000000000000000));
            Token = ERC20(token);
            _ibasset = 0;
        }
    }

    function setcontractType(uint256 borrowerId, uint256 lenderId) private {
        if (borrowerId == 0) {
            contractType = 1;
        } else if (lenderId == 0) {
            contractType = 2;
        } else {
            contractType = 3;
        }
    }
    
    function mortgagedAssets() public payable onlyBorrower onlyFactory {
        require(isContract(address(tx.origin)) == false);   
        require(showContractState() == 0);
        require(address(tx.origin) == _borrower);   
        if (contractType == 1) {
            require(msg.value == checkAllEth());
        } else {
            require(msg.value == 0);
            uint256 money = _borrowerAmount;
            require(Token.balanceOf(address(tx.origin)) >= money);
            require(Token.allowance(address(tx.origin), address(this)) >= money);
            Token.transferFrom(address(tx.origin),address(this),money);         
            require(Token.balanceOf(address(this)) >= _borrowerAmount);
        }
        _contractState = 1;
    }
    
    function sendRepayment() public payable onlyBorrower onlyFactory {
        require(isContract(address(tx.origin)) == false);   
        if (contractType == 2) {
            require(msg.value == _borrowerPayable);
            repayEth(address(_lender), msg.value);
            repayToken(address(_borrower), _borrowerAmount);
        } else {
            require(msg.value == 0);
            require(lenderToken.balanceOf(tx.origin) >= _borrowerPayable);
            require(lenderToken.allowance(address(tx.origin), address(this)) >= _borrowerPayable);
            lenderToken.transferFrom(address(tx.origin),_lender,_borrowerPayable);
            if (contractType == 1) {
                repayEth(address(_borrower), _borrowerAmount);
            } else if (contractType == 3) {
                repayToken(address(_borrower), _borrowerAmount);
            }
        }
        _contractState = 3;                                 
        _endTime = now;                                     
    }
 
    function sendLendAsset() public payable onlyFactory{
        require(isContract(address(tx.origin)) == false);   
        require(showContractState() == 1);
        _lender = tx.origin;                            
        _contractState = 2;                             
        _expireDate = now + _timeLimit;                 
        _investmentTime = now;                          
        serviceChargeMining();
    }
    
    function serviceChargeMining() private {
        if (contractType == 2) {
            NEST_LoanMachinery mining = NEST_LoanMachinery(mappingContract.checkAddress("toLoanBorrowMining"));
            require(_ibasset > 0);
            require(address(this).balance >= _lenderAmount);
            uint256 _lenderasset = _lenderAmount.sub(_ibasset);
            require(_lenderasset > 0);
            repayEth(address(_borrower),_lenderasset);
            mining.startMining.value(_ibasset)(_borrower, _lender, address(Token), _interest, _timeLimit.div(1 days));
        } else {
            NEST_LoanMachinery mining = NEST_LoanMachinery(mappingContract.checkAddress("toMortgageBorrowMining"));
            require(lenderToken.balanceOf(tx.origin) >= _lenderAmount);
            require(lenderToken.allowance(address(tx.origin), address(this)) >= _lenderAmount);
            lenderToken.transferFrom(address(tx.origin),_borrower,_lenderAmount);
            if (contractType == 1) {
                require(_ibasset > 0);
                mining.startMining.value(_ibasset)(_borrower, _lender, address(Token), _interest, _timeLimit.div(1 days));
            }
        }
    }
    
    function cancelContract() public onlyBorrower{
        require(isContract(address(tx.origin)) == false);   
        require(showContractState() == 1);
        if (contractType == 1) {
            if(address(this).balance > 0) {
                repayEth(_borrower,_borrowerAmount.add(_ibasset));
            }
        } else {
            if(Token.balanceOf(address(this)) > 0) {
                repayToken(_borrower, _borrowerAmount);
            }
        }
        _contractState = 0;                            
    }
    
    function applyForAssets() public onlyLender {
        require(isContract(address(tx.origin)) == false);   
        require(showContractState() == 4);              
        if (contractType == 1) {
            repayEth(_lender, _borrowerAmount);        
        } else {
            repayToken(_lender,_borrowerAmount);      
        }
        _contractState = 5;                             
        _endTime = now;                                 
    }
    
    function showContractState() public view returns(uint256) {
        if (_contractState == 2 && now >_expireDate){
            return 4;
        }
        return _contractState;
    }
    
    function repayEth(address accountAddress, uint256 asset) internal {
        address payable addr = accountAddress.make_payable();
        addr.transfer(asset);
    }

    function repayToken(address accountAddress, uint256 asset) internal {
        Token.transfer(accountAddress, asset);
    }
    
    function checkLender() public view returns (address) {
        return _lender;
    }

    function checkBorrower() public view returns (address) {
        return _borrower;
    }

    function checkAllEth()public view returns (uint256) {
        uint256 amount = _borrowerAmount.mul(_commissionRate).div(1000);
        return _borrowerAmount.add(amount);
    }

    function checkContractType()public view returns (uint256) {
        return contractType;
    }

    modifier onlyBorrower(){
        require(address(tx.origin) == _borrower);
        _;
    }

    modifier onlyLender(){
        require(address(tx.origin) == _lender);
        _;
    }
    
    modifier onlyFactory(){
        require(address(mappingContract.checkAddress("toLoanFactory")) == address(msg.sender));
        _;
    }

    function getContractInfo() public view returns(
    uint256 state,
    address borrowerAddress,
    address investorAddress,
    uint256 amount,
    uint256 cycle,
    uint256 interest,
    uint256 mortgage,
    uint256 investmentTime,
    uint256 endtime,
    uint256 borrowerPayable,
    uint256 expiryTime,
    uint256 createTime,
    uint256 ibasset) {
        return (
        showContractState(),
        _borrower,
        _lender,
        _lenderAmount,
        _timeLimit,
        _interest,
        _borrowerAmount,
        _investmentTime,
        _endTime,
        _borrowerPayable,
        _expireDate,
        _createTime,
        _ibasset);
    }

    function getTokenInfo() public view returns (
        uint256 _contractType,
        address borrowerToken,
        address _lenderToken
        ) {
            return (
                contractType,
                address(Token),
                address(lenderToken)
                );
    }
    
    function checkVersion() public view returns(uint256) {
        return version;
    }
    
    function isContract(address addr) public view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"num","type":"uint256"}],"name":"changeMortgageRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"transferIntoMortgaged","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"sendRepayment","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"value","type":"uint256"}],"name":"changeParameter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"borrowerAmount","type":"uint256"},{"name":"borrowerId","type":"uint256"},{"name":"lenderAmount","type":"uint256"},{"name":"lenderId","type":"uint256"},{"name":"limitdays","type":"uint256"},{"name":"interestRate","type":"uint256"}],"name":"createContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"num","type":"uint256"},{"name":"addr","type":"address"}],"name":"changeTokenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"num","type":"uint256"}],"name":"checkToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"map","type":"address"}],"name":"changeMapping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"string"}],"name":"checkParameter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"investmentContracts","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[{"name":"map","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contractAddress","type":"address"}],"name":"ContractAddress","type":"event"}]

608060405234801561001057600080fd5b5060405162003479380380620034798339818101604052602081101561003557600080fd5b5051600180546001600160a01b0319166001600160a01b038084169190911791829055604080517f8fe77e86000000000000000000000000000000000000000000000000000000008152602060048201819052600a60248301527f746f4c6f616e4461746100000000000000000000000000000000000000000000604483015291519390921692638fe77e86926064808201939291829003018186803b1580156100de57600080fd5b505afa1580156100f2573d6000803e3d6000fd5b505050506040513d602081101561010857600080fd5b5051600080546001600160a01b0319166001600160a01b03928316179055600154604080517f8fe77e86000000000000000000000000000000000000000000000000000000008152602060048201819052600a60248301527f7072696365436865636b00000000000000000000000000000000000000000000604483015291519290931692638fe77e869260648083019392829003018186803b1580156101ae57600080fd5b505afa1580156101c2573d6000803e3d6000fd5b505050506040513d60208110156101d857600080fd5b5051600580546001600160a01b0319166001600160a01b03909216919091179055610201610207565b5061061d565b604080517f626f72726f7765436f6d6d697373696f6e00000000000000000000000000000081526004601182018190528251918290036031018220600590557f6c656e646572436f6d6d697373696f6e00000000000000000000000000000000825260108201529051908190036030019020600a905560327f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5560287f70612c585012f00e0f4eec8b62ebf072177b155485999b5447647b8870b27da58190557f82a5f3f697c19feba90e97eb50cf7817270ec4e8adf5c43afb6668e726e6e6718190557f032c0d7cfb4d20047f1e686973d294993e1012f7611280f2b43cd1235ecc7fa08190557f094dfe459bcd5519fe9d8030527ba39823e977c1d47ebcff2508bb637bdacb6d8190557f8dcd796bd472a8882e47d36e6e2d5d71980cd9e8dfe6ef06c7a5fe5377618b648190557f29adf06fedc00fb3c26bfdd081c668d889c5e872ac65ef2690dd61567f3e0c298190557fb46c039c313d3424de48693c3b829f444253269fcb0a5c66e3acf74c93e76bb08190557f14df083fbf90ca4c84fc7da223f3c21de5a69d79df548a1c896ace2e4d3f27f58190557f81745f9294a80cd07fd9a21605f89f1560cd52210a432b899efb93d10ed950305560026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b03199081166e085d4780b73119b644ae5ecd22b376179091557f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c8054821673dac17f958d2ee523a2206206994597c13d831ec71790557f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3805482167389d24a6b4ccb1b6faa2625fe562bdd9a232603591790557fee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f80548216739f8f72aa9304c8b593d555f12ef6589cc3a579a21790557fb98b78633099fa36ed8b8680c4f8092689e1e04080eb9cbb077ca38a14d7e38480548216736f259637dcd74c767781e37bc6133cd6a68aa1611790557f59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077b8054821673a4e8c3ec456107ea67d3075bf9e3df3a75823db01790557facd8ef244210bb6898e73c48bf820ed8ecc857a3bab8d79c10e4fa92b1e9ca6580548216730d8775f648430679a709e98d2b0cb6250d2887ef1790557f3a5ea591190eeb3f8fcdced843c78df04ec0dfd42f5510375207515664fa0a7580548216736a27348483d59150ae76ef4c0f3622a78b0ca69817905560096000527ff85cc6ffc513dc6cf7d199ef87b7a63cf9defe62251c1c247cd12f1eec7bff29805490911673d26114cd6ee289accf82350c8d8487fedb8a0c07179055565b612e4c806200062d6000396000f3fe608060405260043610620000aa5760003560e01c80635309d0f8116200006d5780635309d0f814620002475780639cb9a19a1462000293578063a0bb2b5414620002d0578063a781e7f8146200031a578063b3b442521462000351578063c851318c146200041d57620000aa565b8063011912f814620000af5780631627905514620000ee5780632ef66c4e14620001395780632fe6a8c51462000162578063327f8208146200018b575b600080fd5b348015620000bc57600080fd5b50620000ec60048036036040811015620000d557600080fd5b506001600160a01b03813516906020013562000446565b005b348015620000fb57600080fd5b5062000125600480360360208110156200011457600080fd5b50356001600160a01b0316620004eb565b604080519115158252519081900360200190f35b620000ec600480360360208110156200015157600080fd5b50356001600160a01b0316620004f1565b620000ec600480360360208110156200017a57600080fd5b50356001600160a01b0316620007ba565b3480156200019857600080fd5b50620000ec60048036036040811015620001b157600080fd5b810190602081018135640100000000811115620001cd57600080fd5b820183602082011115620001e057600080fd5b803590602001918460018302840111640100000000831117156200020357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925062000a47915050565b3480156200025457600080fd5b50620000ec600480360360c08110156200026d57600080fd5b5080359060208101359060408101359060608101359060808101359060a0013562000b3a565b348015620002a057600080fd5b50620000ec60048036036040811015620002b957600080fd5b50803590602001356001600160a01b031662000d5b565b348015620002dd57600080fd5b50620002fe60048036036020811015620002f657600080fd5b503562000e12565b604080516001600160a01b039092168252519081900360200190f35b3480156200032757600080fd5b50620000ec600480360360208110156200034057600080fd5b50356001600160a01b031662000e2d565b3480156200035e57600080fd5b506200040b600480360360208110156200037757600080fd5b8101906020810181356401000000008111156200039357600080fd5b820183602082011115620003a657600080fd5b80359060200191846001830284011164010000000083111715620003c957600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062001029945050505050565b60408051918252519081900360200190f35b620000ec600480360360208110156200043557600080fd5b50356001600160a01b031662001093565b6001546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b1580156200049257600080fd5b505afa158015620004a7573d6000803e3d6000fd5b505050506040513d6020811015620004be57600080fd5b50511515600114620004cf57600080fd5b6001600160a01b03909116600090815260036020526040902055565b3b151590565b620004fc33620004eb565b156200050757600080fd5b600054604080516335ec491560e21b81526001600160a01b0384811660048301529151919092169163d7b12454916024808301926020929190829003018186803b1580156200055557600080fd5b505afa1580156200056a573d6000803e3d6000fd5b505050506040513d60208110156200058157600080fd5b505115156001146200059257600080fd5b6000819050806001600160a01b0316635cf2c0dd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620005d157600080fd5b505afa158015620005e6573d6000803e3d6000fd5b505050506040513d6020811015620005fd57600080fd5b5051156200060a57600080fd5b806001600160a01b031663594837cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200064457600080fd5b505afa15801562000659573d6000803e3d6000fd5b505050506040513d60208110156200067057600080fd5b50516001600160a01b031633146200068757600080fd5b806001600160a01b0316630de047af6040518163ffffffff1660e01b815260040160206040518083038186803b158015620006c157600080fd5b505afa158015620006d6573d6000803e3d6000fd5b505050506040513d6020811015620006ed57600080fd5b5051600114156200075457806001600160a01b0316633782a96e346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200073457600080fd5b505af115801562000749573d6000803e3d6000fd5b5050505050620007b6565b34156200076057600080fd5b806001600160a01b0316633782a96e6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200079c57600080fd5b505af1158015620007b1573d6000803e3d6000fd5b505050505b5050565b620007c533620004eb565b15620007d057600080fd5b600054604080516335ec491560e21b81526001600160a01b0384811660048301529151919092169163d7b12454916024808301926020929190829003018186803b1580156200081e57600080fd5b505afa15801562000833573d6000803e3d6000fd5b505050506040513d60208110156200084a57600080fd5b505115156001146200085b57600080fd5b6000819050806001600160a01b031663594837cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200089a57600080fd5b505afa158015620008af573d6000803e3d6000fd5b505050506040513d6020811015620008c657600080fd5b50516001600160a01b03163314620008dd57600080fd5b806001600160a01b0316635cf2c0dd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200091757600080fd5b505afa1580156200092c573d6000803e3d6000fd5b505050506040513d60208110156200094357600080fd5b50516002146200095257600080fd5b806001600160a01b0316630de047af6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200098c57600080fd5b505afa158015620009a1573d6000803e3d6000fd5b505050506040513d6020811015620009b857600080fd5b505160021415620009ff57806001600160a01b03166318669938346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200073457600080fd5b341562000a0b57600080fd5b806001600160a01b031663186699386040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200079c57600080fd5b6001546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b15801562000a9357600080fd5b505afa15801562000aa8573d6000803e3d6000fd5b505050506040513d602081101562000abf57600080fd5b5051151560011462000ad057600080fd5b806004836040518082805190602001908083835b6020831062000b055780518252601f19909201916020918201910162000ae4565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209290925550505050565b84158062000b46575082155b1562000c2b57600085815260026020908152604080832054868452818420546005546001600160a01b039283168087526003865295849020548451630a5db21d60e31b815260048101889052602481018e905292841660448401819052606484018c9052608484019190915260a4830189905260c48301889052935193949216926352ed90e89260e480840193919291829003018186803b15801562000beb57600080fd5b505afa15801562000c00573d6000803e3d6000fd5b505050506040513d602081101562000c1757600080fd5b5051151560011462000c2857600080fd5b50505b6000868686868686600160009054906101000a90046001600160a01b031660405162000c5790620012a3565b96875260208701959095526040808701949094526060860192909252608085015260a08401526001600160a01b0390911660c0830152519081900360e001906000f08015801562000cac573d6000803e3d6000fd5b50600080546040805163b11ce2db60e01b81526001600160a01b038086166004830152915194955091169263b11ce2db9260248084019391929182900301818387803b15801562000cfc57600080fd5b505af115801562000d11573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f1a0f921ce3c6f2f0f6be5b624a487bc1d5143e1fd1833154f39ab63e13d897559350908190036020019150a150505050505050565b6001546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b15801562000da757600080fd5b505afa15801562000dbc573d6000803e3d6000fd5b505050506040513d602081101562000dd357600080fd5b5051151560011462000de457600080fd5b60009182526002602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000908152600260205260409020546001600160a01b031690565b6001546040805163a3bf06f160e01b815233600482015290516001600160a01b039092169163a3bf06f191602480820192602092909190829003018186803b15801562000e7957600080fd5b505afa15801562000e8e573d6000803e3d6000fd5b505050506040513d602081101562000ea557600080fd5b5051151560011462000eb657600080fd5b600180546001600160a01b0319166001600160a01b038381169190911791829055604080516347f3bf4360e11b8152602060048201819052600a602483015269746f4c6f616e4461746160b01b604483015291519390921692638fe77e86926064808201939291829003018186803b15801562000f3257600080fd5b505afa15801562000f47573d6000803e3d6000fd5b505050506040513d602081101562000f5e57600080fd5b5051600080546001600160a01b0319166001600160a01b03928316179055600154604080516347f3bf4360e11b8152602060048201819052600a6024830152697072696365436865636b60b01b604483015291519290931692638fe77e869260648083019392829003018186803b15801562000fd957600080fd5b505afa15801562000fee573d6000803e3d6000fd5b505050506040513d60208110156200100557600080fd5b5051600580546001600160a01b0319166001600160a01b0390921691909117905550565b60006004826040518082805190602001908083835b602083106200105f5780518252601f1990920191602091820191016200103e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054949350505050565b6200109e33620004eb565b15620010a957600080fd5b600054604080516335ec491560e21b81526001600160a01b0384811660048301529151919092169163d7b12454916024808301926020929190829003018186803b158015620010f757600080fd5b505afa1580156200110c573d6000803e3d6000fd5b505050506040513d60208110156200112357600080fd5b505115156001146200113457600080fd5b6000819050806001600160a01b0316635cf2c0dd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200117357600080fd5b505afa15801562001188573d6000803e3d6000fd5b505050506040513d60208110156200119f57600080fd5b5051600114620011ae57600080fd5b806001600160a01b0316630de047af6040518163ffffffff1660e01b815260040160206040518083038186803b158015620011e857600080fd5b505afa158015620011fd573d6000803e3d6000fd5b505050506040513d60208110156200121457600080fd5b5051600214156200125b57806001600160a01b031663a4fe8a44346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200073457600080fd5b34156200126757600080fd5b806001600160a01b031663a4fe8a446040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200079c57600080fd5b611b6680620012b28339019056fe608060405260026012553480156200001657600080fd5b5060405162001b6638038062001b66833981810160405260e08110156200003c57600080fd5b508051602082015160408301516060840151608085015160a086015160c09096015194959394929391929091906200007d326001600160e01b036200079616565b156200008857600080fd5b600087116200009657600080fd5b60008311620000a457600080fd5b60008211620000b257600080fd5b60008511620000c057600080fd5b83861415620000ce57600080fd5b601080546001600160a01b0319166001600160a01b038381169190911791829055604080517f8fe77e86000000000000000000000000000000000000000000000000000000008152602060048201819052600d60248301527f746f4c6f616e466163746f7279000000000000000000000000000000000000006044830152915160009490931692638fe77e8692606480840193919291829003018186803b1580156200017957600080fd5b505afa1580156200018e573d6000803e3d6000fd5b505050506040513d6020811015620001a557600080fd5b50519050336001600160a01b03821614620001bf57600080fd5b60038054326001600160a01b0319909116179055600888905560006002556005869055620001fd84620151806200079c602090811b6200129017901c565b60065560078390556200026c6127106200025862000241826200022d888a6200079c602090811b6200129017901c565b620007d060201b62000dbd1790919060201c565b6005546200079c60201b620012901790919060201c565b620007e360201b620012b71790919060201c565b600d8190556200027b57600080fd5b42600f556200029487866001600160e01b036200080716565b601154600114156200045157604080517fb3b44252000000000000000000000000000000000000000000000000000000008152602060048201819052601160248301527f626f72726f7765436f6d6d697373696f6e000000000000000000000000000000604483015291516001600160a01b0384169263b3b442529260648082019391829003018186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d60208110156200035857600080fd5b5051600a55604080517fa0bb2b540000000000000000000000000000000000000000000000000000000081526004810187905290516000916001600160a01b0384169163a0bb2b5491602480820192602092909190829003018186803b158015620003c257600080fd5b505afa158015620003d7573d6000803e3d6000fd5b505050506040513d6020811015620003ee57600080fd5b505190506001600160a01b0381166200040657600080fd5b600180546001600160a01b0319166001600160a01b038316179055600a5460085462000447916103e89162000258916200079c602090811b6200129017901c565b6009555062000788565b601154600214156200060457604080517fb3b44252000000000000000000000000000000000000000000000000000000008152602060048201819052601060248301527f6c656e646572436f6d6d697373696f6e00000000000000000000000000000000604483015291516001600160a01b0384169263b3b442529260648082019391829003018186803b158015620004e957600080fd5b505afa158015620004fe573d6000803e3d6000fd5b505050506040513d60208110156200051557600080fd5b5051600a55604080517fa0bb2b540000000000000000000000000000000000000000000000000000000081526004810189905290516000916001600160a01b0384169163a0bb2b5491602480820192602092909190829003018186803b1580156200057f57600080fd5b505afa15801562000594573d6000803e3d6000fd5b505050506040513d6020811015620005ab57600080fd5b505190506001600160a01b038116620005c357600080fd5b600080546001600160a01b0319166001600160a01b038316179055600a5460055462000447916103e89162000258916200079c602090811b6200129017901c565b6011546003141562000788576000600a819055506000816001600160a01b031663a0bb2b54876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200065f57600080fd5b505afa15801562000674573d6000803e3d6000fd5b505050506040513d60208110156200068b57600080fd5b505190506001600160a01b038116620006a357600080fd5b600180546001600160a01b0319166001600160a01b0383811691909117909155604080517fa0bb2b54000000000000000000000000000000000000000000000000000000008152600481018b9052905160009285169163a0bb2b54916024808301926020929190829003018186803b1580156200071f57600080fd5b505afa15801562000734573d6000803e3d6000fd5b505050506040513d60208110156200074b57600080fd5b505190506001600160a01b0381166200076357600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091178155600955505b505050505050505062000833565b3b151590565b600082620007ad57506000620007ca565b82820282848281620007bb57fe5b0414620007c757600080fd5b90505b92915050565b600082820183811015620007c757600080fd5b6000808211620007f257600080fd5b6000828481620007fe57fe5b04949350505050565b81620008185760016011556200082f565b80620008295760026011556200082f565b60036011555b5050565b61132380620008436000396000f3fe6080604052600436106100dd5760003560e01c80635cf2c0dd1161007f578063a4fe8a4411610059578063a4fe8a441461026d578063ab5f748214610275578063abb1dc441461028a578063c1845b37146102c7576100dd565b80635cf2c0dd146101bd5780636d0d9f12146101d25780637cc1f867146101e7576100dd565b806318669938116100bb57806318669938146101675780632b68bb2d1461016f5780633782a96e14610184578063594837cf1461018c576100dd565b80630de047af146100e2578063162790551461010957806316e663f414610150575b600080fd5b3480156100ee57600080fd5b506100f76102dc565b60408051918252519081900360200190f35b34801561011557600080fd5b5061013c6004803603602081101561012c57600080fd5b50356001600160a01b03166102e3565b604080519115158252519081900360200190f35b34801561015c57600080fd5b506101656102e9565b005b610165610374565b34801561017b57600080fd5b50610165610679565b610165610798565b34801561019857600080fd5b506101a1610ac4565b604080516001600160a01b039092168252519081900360200190f35b3480156101c957600080fd5b506100f7610ad3565b3480156101de57600080fd5b506100f7610afc565b3480156101f357600080fd5b506101fc610b02565b604080519d8e526001600160a01b039c8d1660208f01529a909b168c8b015260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083019190915251908190036101a00190f35b610165610b91565b34801561028157600080fd5b506100f7610c8a565b34801561029657600080fd5b5061029f610cd2565b604080519384526001600160a01b039283166020850152911682820152519081900360600190f35b3480156102d357600080fd5b506101a1610ced565b6011545b90565b3b151590565b6004546001600160a01b0316321461030057600080fd5b610309326102e3565b1561031357600080fd5b61031b610ad3565b60041461032757600080fd5b601154600114156103505760045460085461034b916001600160a01b031690610cfc565b610369565b600454600854610369916001600160a01b031690610d4f565b600560025542600c55565b6003546001600160a01b0316321461038b57600080fd5b601054604080516347f3bf4360e11b8152602060048201819052600d60248301526c746f4c6f616e466163746f727960981b6044830152915133936001600160a01b031692638fe77e869260648082019391829003018186803b1580156103f157600080fd5b505afa158015610405573d6000803e3d6000fd5b505050506040513d602081101561041b57600080fd5b50516001600160a01b03161461043057600080fd5b610439326102e3565b1561044357600080fd5b6011546002141561049057600d54341461045c57600080fd5b600454610472906001600160a01b031634610cfc565b60035460085461048b916001600160a01b031690610d4f565b61066e565b341561049b57600080fd5b600d54600154604080516370a0823160e01b815232600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156104e957600080fd5b505afa1580156104fd573d6000803e3d6000fd5b505050506040513d602081101561051357600080fd5b5051101561052057600080fd5b600d5460015460408051636eb1769f60e11b815232600482015230602482015290516001600160a01b039092169163dd62ed3e91604480820192602092909190829003018186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d602081101561059e57600080fd5b505110156105ab57600080fd5b60015460048054600d54604080516323b872dd60e01b815232948101949094526001600160a01b0392831660248501526044840191909152519216916323b872dd9160648082019260009290919082900301818387803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b505050506011546001141561064a5760035460085461048b916001600160a01b031690610cfc565b6011546003141561066e5760035460085461066e916001600160a01b031690610d4f565b600360025542600c55565b6003546001600160a01b0316321461069057600080fd5b610699326102e3565b156106a357600080fd5b6106ab610ad3565b6001146106b757600080fd5b601154600114156106fa573031156106f5576003546009546008546106f5926001600160a01b0316916106f0919063ffffffff610dbd16565b610cfc565b610791565b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561074657600080fd5b505afa15801561075a573d6000803e3d6000fd5b505050506040513d602081101561077057600080fd5b5051111561079157600354600854610791916001600160a01b031690610d4f565b6000600255565b6003546001600160a01b031632146107af57600080fd5b601054604080516347f3bf4360e11b8152602060048201819052600d60248301526c746f4c6f616e466163746f727960981b6044830152915133936001600160a01b031692638fe77e869260648082019391829003018186803b15801561081557600080fd5b505afa158015610829573d6000803e3d6000fd5b505050506040513d602081101561083f57600080fd5b50516001600160a01b03161461085457600080fd5b61085d326102e3565b1561086757600080fd5b61086f610ad3565b1561087957600080fd5b6003546001600160a01b0316321461089057600080fd5b601154600114156108b3576108a3610c8a565b34146108ae57600080fd5b610abd565b34156108be57600080fd5b600854600054604080516370a0823160e01b8152326004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561090b57600080fd5b505afa15801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b5051101561094257600080fd5b60005460408051636eb1769f60e11b8152326004820152306024820152905183926001600160a01b03169163dd62ed3e916044808301926020929190829003018186803b15801561099257600080fd5b505afa1580156109a6573d6000803e3d6000fd5b505050506040513d60208110156109bc57600080fd5b505110156109c957600080fd5b60008054604080516323b872dd60e01b81523260048201523060248201526044810185905290516001600160a01b03909216926323b872dd9260648084019382900301818387803b158015610a1d57600080fd5b505af1158015610a31573d6000803e3d6000fd5b5050600854600054604080516370a0823160e01b815230600482015290519294506001600160a01b0390911692506370a08231916024808301926020929190829003018186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d6020811015610aae57600080fd5b50511015610abb57600080fd5b505b6001600255565b6003546001600160a01b031690565b60006002546002148015610ae85750600e5442115b15610af5575060046102e0565b5060025490565b60125490565b6000806000806000806000806000806000806000610b1e610ad3565b600360009054906101000a90046001600160a01b0316600460009054906101000a90046001600160a01b0316600554600654600754600854600b54600c54600d54600e54600f546009549c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b601054604080516347f3bf4360e11b8152602060048201819052600d60248301526c746f4c6f616e466163746f727960981b6044830152915133936001600160a01b031692638fe77e869260648082019391829003018186803b158015610bf757600080fd5b505afa158015610c0b573d6000803e3d6000fd5b505050506040513d6020811015610c2157600080fd5b50516001600160a01b031614610c3657600080fd5b610c3f326102e3565b15610c4957600080fd5b610c51610ad3565b600114610c5d57600080fd5b600480546001600160a01b031916321790556002805560065442908101600e55600b55610c88610dd8565b565b600080610cb66103e8610caa600a5460085461129090919063ffffffff16565b9063ffffffff6112b716565b600854909150610ccc908263ffffffff610dbd16565b91505090565b6011546000546001546001600160a01b039182169116909192565b6004546001600160a01b031690565b6000610d10836001600160a01b03166102e0565b6040519091506001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d49573d6000803e3d6000fd5b50505050565b600080546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169263a9059cbb926044808201939182900301818387803b158015610da157600080fd5b505af1158015610db5573d6000803e3d6000fd5b505050505050565b600082820183811015610dcf57600080fd5b90505b92915050565b60115460021415610fa157601054604080516347f3bf4360e11b81526020600482018190526012602483015271746f4c6f616e426f72726f774d696e696e6760701b604483015291516000936001600160a01b031692638fe77e869260648082019391829003018186803b158015610e4f57600080fd5b505afa158015610e63573d6000803e3d6000fd5b505050506040513d6020811015610e7957600080fd5b5051600954909150610e8a57600080fd5b60055430311015610e9a57600080fd5b6000610eb36009546005546112d990919063ffffffff16565b905060008111610ec257600080fd5b600354610ed8906001600160a01b031682610cfc565b6009546003546004546000546007546006546001600160a01b0380891696632a05836b9690959082169490821693911691610f1c906201518063ffffffff6112b716565b604080516001600160e01b031960e08a901b1681526001600160a01b039687166004820152948616602486015292909416604484015260648301526084820192909252905160a480830192600092919082900301818588803b158015610f8157600080fd5b505af1158015610f95573d6000803e3d6000fd5b50505050505050610c88565b601054604080516347f3bf4360e11b81526020600482018190526016602483015275746f4d6f727467616765426f72726f774d696e696e6760501b604483015291516000936001600160a01b031692638fe77e869260648082019391829003018186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d602081101561103b57600080fd5b5051600554600154604080516370a0823160e01b8152326004820152905193945091926001600160a01b03909116916370a08231916024808301926020929190829003018186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d60208110156110b957600080fd5b505110156110c657600080fd5b60055460015460408051636eb1769f60e11b815232600482015230602482015290516001600160a01b039092169163dd62ed3e91604480820192602092909190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b5051101561115157600080fd5b600154600354600554604080516323b872dd60e01b81523260048201526001600160a01b03938416602482015260448101929092525191909216916323b872dd91606480830192600092919082900301818387803b1580156111b257600080fd5b505af11580156111c6573d6000803e3d6000fd5b505050506011546001141561128d576000600954116111e457600080fd5b6009546003546004546000546007546006546001600160a01b0380881696632a05836b9690959082169490821693911691611228906201518063ffffffff6112b716565b604080516001600160e01b031960e08a901b1681526001600160a01b039687166004820152948616602486015292909416604484015260648301526084820192909252905160a480830192600092919082900301818588803b158015610da157600080fd5b50565b60008261129f57506000610dd2565b828202828482816112ac57fe5b0414610dcf57600080fd5b60008082116112c557600080fd5b60008284816112d057fe5b04949350505050565b6000828211156112e857600080fd5b5090039056fea265627a7a72305820753f7716ac77e8a2b478bef48ba590b3e87998265919d2f6e80a3d01049b3c1564736f6c63430005090032a265627a7a72305820a87f6b690f1298abd89468e69943efcb83492a3f2f803322777b87738533297b64736f6c634300050900320000000000000000000000005e7db2ffc5b2c7c47103e4f21c702bc402603fbf

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

0000000000000000000000005e7db2ffc5b2c7c47103e4f21c702bc402603fbf

-----Decoded View---------------
Arg [0] : map (address): 0x5e7db2ffc5b2c7c47103e4f21c702bc402603fbf

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005e7db2ffc5b2c7c47103e4f21c702bc402603fbf


Deployed ByteCode Sourcemap

4052:6584:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7006:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7006:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7006:115:0;;;;;;;;:::i;:::-;;7623:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7623:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7623:163:0;-1:-1:-1;;;;;7623:163:0;;:::i;:::-;;;;;;;;;;;;;;;;;;8605:733;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8605:733:0;-1:-1:-1;;;;;8605:733:0;;:::i;9965:668::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9965:668:0;-1:-1:-1;;;;;9965:668:0;;:::i;7129:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7129:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7129:119:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7129:119:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7129:119:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7129:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7129:119:0;;-1:-1:-1;;7129:119:0;;;-1:-1:-1;7129:119:0;;-1:-1:-1;;7129:119:0:i;7798:799::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7798:799:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7798:799:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6879:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6879:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6879:119:0;;;;;;-1:-1:-1;;;;;6879:119:0;;:::i;7382:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7382:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7382:110:0;;:::i;:::-;;;;-1:-1:-1;;;;;7382:110:0;;;;;;;;;;;;;;4919:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4919:298:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4919:298:0;-1:-1:-1;;;;;4919:298:0;;:::i;7256:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7256:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7256:114:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7256:114:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7256:114:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7256:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7256:114:0;;-1:-1:-1;7256:114:0;;-1:-1:-1;;;;;7256:114:0:i;:::-;;;;;;;;;;;;;;;;9346:611;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9346:611:0;-1:-1:-1;;;;;9346:611:0;;:::i;7006:115::-;7543:15;;:39;;;-1:-1:-1;;;7543:39:0;;7571:10;7543:39;;;;;;-1:-1:-1;;;;;7543:15:0;;;;:27;;:39;;;;;;;;;;;;;;;:15;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7543:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7543:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7543:39:0;:47;;7586:4;7543:47;7535:56;;;;;;-1:-1:-1;;;;;7089:18:0;;;;;;;:12;:18;;;;;:24;7006:115::o;7623:163::-;7734:17;7770:8;;;7623:163::o;8605:733::-;8695:31;8714:10;8695;:31::i;:::-;:40;8687:49;;;;;;8758:12;;:52;;;-1:-1:-1;;;8758:52:0;;-1:-1:-1;;;;;8758:52:0;;;;;;;;;:12;;;;;:26;;:52;;;;;;;;;;;;;;:12;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;8758:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8758:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8758:52:0;:60;;8814:4;8758:60;8750:69;;;;;;8830:29;8888:15;8830:75;;8924:11;-1:-1:-1;;;;;8924:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8924:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8924:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8924:31:0;:36;8916:45;;;;;;9009:11;-1:-1:-1;;;;;9009:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9009:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9009:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9009:27:0;-1:-1:-1;;;;;8986:50:0;8994:10;8986:50;8978:59;;;;;;9055:11;-1:-1:-1;;;;;9055:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9055:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9055:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9055:31:0;9090:1;9055:36;9051:270;;;9108:11;-1:-1:-1;;;;;9108:27:0;;9142:9;9108:46;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9108:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9108:46:0;;;;;9051:270;;;9212:9;:14;9204:23;;;;;;9242:11;-1:-1:-1;;;;;9242:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9242:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9242:29:0;;;;9051:270;8605:733;;:::o;9965:668::-;10047:31;10066:10;10047;:31::i;:::-;:40;10039:49;;;;;;10110:12;;:52;;;-1:-1:-1;;;10110:52:0;;-1:-1:-1;;;;;10110:52:0;;;;;;;;;:12;;;;;:26;;:52;;;;;;;;;;;;;;:12;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;10110:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10110:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10110:52:0;:60;;10166:4;10110:60;10102:69;;;;;;10182:29;10240:15;10182:75;;10299:11;-1:-1:-1;;;;;10299:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10299:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10299:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10299:27:0;-1:-1:-1;;;;;10276:50:0;10284:10;10276:50;10268:59;;;;;;10349:11;-1:-1:-1;;;;;10349:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10349:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10349:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10349:31:0;10384:1;10349:36;10341:45;;;;;;10407:11;-1:-1:-1;;;;;10407:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10407:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10407:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10407:31:0;10442:1;10407:36;10403:223;;;10460:11;-1:-1:-1;;;;;10460:25:0;;10492:9;10460:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;10403:223:0;10545:9;:14;10537:23;;;;;;10575:11;-1:-1:-1;;;;;10575:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;7129:119:0;7543:15;;:39;;;-1:-1:-1;;;7543:39:0;;7571:10;7543:39;;;;;;-1:-1:-1;;;;;7543:15:0;;;;:27;;:39;;;;;;;;;;;;;;;:15;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7543:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7543:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7543:39:0;:47;;7586:4;7543:47;7535:56;;;;;;7235:5;7217:9;7227:4;7217:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7217:15:0;;;;;-1:-1:-1;7217:15:0;;;;;;;;;;:23;;;;-1:-1:-1;;;;7129:119:0:o;7798:799::-;7968:15;;;:32;;-1:-1:-1;7987:13:0;;7968:32;7964:340;;;8017:16;8044:28;;;:16;:28;;;;;;;;;8113:26;;;;;;;8163:10;;-1:-1:-1;;;;;8044:28:0;;;8236:22;;;:12;:22;;;;;;;8163:120;;-1:-1:-1;;;8163:120:0;;;;;;;;;;;;;;8113:26;;;8163:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8113:26;;8163:10;;;:24;;:120;;;;;8044:28;;8163:120;;;;;;:10;:120;;;5:2:-1;;;;30:1;27;20:12;5:2;8163:120:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8163:120:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8163:120:0;:128;;8287:4;8163:128;8155:137;;;;;;7964:340;;;8314:29;8368:14;8384:10;8396:12;8410:8;8420:9;8430:12;8452:15;;;;;;;;;-1:-1:-1;;;;;8452:15:0;8346:123;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8346:123:0;;;;;;;;;;;;;;;-1:-1:-1;8346:123:0;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8480:12:0;;;:53;;;-1:-1:-1;;;8480:53:0;;-1:-1:-1;;;;;8480:53:0;;;;;;;;;8314:155;;-1:-1:-1;8480:12:0;;;:31;;:53;;;;;:12;;:53;;;;;;:12;;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;8480:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8552:37:0;;;-1:-1:-1;;;;;8552:37:0;;;;;;;;-1:-1:-1;8552:37:0;;;;;;;-1:-1:-1;8552:37:0;7798:799;;;;;;;:::o;6879:119::-;7543:15;;:39;;;-1:-1:-1;;;7543:39:0;;7571:10;7543:39;;;;;;-1:-1:-1;;;;;7543:15:0;;;;:27;;:39;;;;;;;;;;;;;;;:15;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7543:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7543:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7543:39:0;:47;;7586:4;7543:47;7535:56;;;;;;6962:21;;;;:16;:21;;;;;;:28;;-1:-1:-1;;;;;;6962:28:0;-1:-1:-1;;;;;6962:28:0;;;;;;;;;6879:119::o;7382:110::-;7436:7;7463:21;;;:16;:21;;;;;;-1:-1:-1;;;;;7463:21:0;;7382:110::o;4919:298::-;7543:15;;:39;;;-1:-1:-1;;;7543:39:0;;7571:10;7543:39;;;;;;-1:-1:-1;;;;;7543:15:0;;;;:27;;:39;;;;;;;;;;;;;;;:15;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;7543:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7543:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7543:39:0;:47;;7586:4;7543:47;7535:56;;;;;;4983:15;:32;;-1:-1:-1;;;;;;4983:32:0;-1:-1:-1;;;;;4983:32:0;;;;;;;;;;;5073:42;;;-1:-1:-1;;;5073:42:0;;;;;;;;;;;;;;-1:-1:-1;;;5073:42:0;;;;;;:15;;;;;:28;;:42;;;;;;;;;;;;:15;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;5073:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5073:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5073:42:0;5026:12;:91;;-1:-1:-1;;;;;;5026:91:0;-1:-1:-1;;;;;5026:91:0;;;;;;-1:-1:-1;5165:15:0;:42;;;-1:-1:-1;;;5165:42:0;;5073;5165;;;;;;;;;;;-1:-1:-1;;;5165:42:0;;;;;;:15;;;;;:28;;:42;;;;;5073;5165;;;;;:15;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;5165:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5165:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5165:42:0;5128:10;:81;;-1:-1:-1;;;;;;5128:81:0;-1:-1:-1;;;;;5128:81:0;;;;;;;;;-1:-1:-1;4919:298:0:o;7256:114::-;7320:7;7347:9;7357:4;7347:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7347:15:0;;;;;-1:-1:-1;7347:15:0;;;;;;;;;;;;7256:114;-1:-1:-1;;;;7256:114:0:o;9346:611::-;9434:31;9453:10;9434;:31::i;:::-;:40;9426:49;;;;;;9497:12;;:52;;;-1:-1:-1;;;9497:52:0;;-1:-1:-1;;;;;9497:52:0;;;;;;;;;:12;;;;;:26;;:52;;;;;;;;;;;;;;:12;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;9497:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9497:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9497:52:0;:60;;9553:4;9497:60;9489:69;;;;;;9569:29;9627:15;9569:75;;9663:11;-1:-1:-1;;;;;9663:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9663:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9663:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9663:31:0;9698:1;9663:36;9655:45;;;;;;9721:11;-1:-1:-1;;;;;9721:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9721:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9721:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9721:31:0;9756:1;9721:36;9717:223;;;9774:11;-1:-1:-1;;;;;9774:25:0;;9806:9;9774:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;9717:223:0;9859:9;:14;9851:23;;;;;;9889:11;-1:-1:-1;;;;;9889:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;4052:6584:0;;;;;;;;:::o

Swarm Source

bzzr://a87f6b690f1298abd89468e69943efcb83492a3f2f803322777b87738533297b
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.