Contract 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf2d2cf47ddcd91e71c98d1024ada3a3c67213ae8a9ab4eb37023e28ede1b3585Margin Trade204016732021-10-20 3:25:0342 mins ago0xa4a54921f573bba69cc5acf411d1c608e63c97f1 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.02977293
0xdf0bedee5d0f17b1f4ad29c264a17ae1e94670e683c97a3a6aeb005f26e3e603Margin Trade203995872021-10-20 2:08:071 hr 58 mins ago0x62eb4b6d1332f400bfbf265bcd07c3022d408b30 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.045410895
0x0f5920d92c8fac8e5d3492b3efa38c20dd41ea534660019a964264566a2b532cMargin Trade203995712021-10-20 2:07:032 hrs ago0x62eb4b6d1332f400bfbf265bcd07c3022d408b30 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.032292192
0x6645ad7d3a017bfbf57750e569a8aa2702e560681e7909079679dcc29f32db54Margin Trade203995442021-10-20 2:05:252 hrs 1 min ago0x62eb4b6d1332f400bfbf265bcd07c3022d408b30 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.03027393
0x08aeb7f43b3edf2481fc4c29c905d88bc16ce6d6a2db7a29ca529acf80c7109bMargin Trade203995072021-10-20 2:04:112 hrs 2 mins ago0x62eb4b6d1332f400bfbf265bcd07c3022d408b30 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.03027393
0xc5938d0184fc89a3d082f1e48dcd36028855cc03615f1e82c5618f3ad5ec4813Margin Trade203982722021-10-20 1:11:052 hrs 56 mins ago0xf4c1e6f39ce18cb75603e9baafec83144dba7c61 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.0362921526
0xea43093fc440725ec992e844e2fdf5cfad74a13aac9bb445c4797f2ba868d7dfMargin Trade203977582021-10-20 0:49:053 hrs 18 mins ago0x3b151ba4b7271a1b28403da7f7c8556f1d732a17 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.0321399
0x13cc25cd9a4fdab8f115352762f23f6d34b207683f52064badf2a0a8bafa26d2Margin Trade203977012021-10-20 0:47:113 hrs 19 mins ago0x3b151ba4b7271a1b28403da7f7c8556f1d732a17 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.0325899
0x7ef29806c5b1d7956e440d9b8f091c5201e459d54d015ceea88e9619a4d70d94Margin Trade203974792021-10-20 0:38:433 hrs 28 mins ago0x58c326c67b464c3a5c984adc272bd5c814c06def IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.030542395
0x399fd2edb02d8bc466e50b91363d9ad0d94b587231655e796702f123d085c57aMint203957142021-10-19 23:25:574 hrs 41 mins ago0x72d4e0239b95eda97ed974aae668da93ce756a61 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.00548079
0xf1d3de542cac75b1cf4787620c20f49133cc13c22d61e152cc49b1d5f5ccba98Margin Trade203950542021-10-19 22:58:135 hrs 8 mins ago0x2ba6dbe8fd6721760c85e2309246e9891575eb66 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f103 MATIC0.044946594267
0x76510f6aae2a339083728665ed43a32b488ea1aabd46c393cc18a33605b8a28dMargin Trade203935242021-10-19 21:53:316 hrs 13 mins ago0xe9cff59d378b2e7f429f63b69403762340aa94cc IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.02977293
0x21adb4ba1c31beb107ca275efdd9a5e128006914376cdba19c85392891b05f34Margin Trade203908152021-10-19 19:56:328 hrs 10 mins ago0xf4c1e6f39ce18cb75603e9baafec83144dba7c61 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.03219987
0x469c172dd24a300dca63a8d8822d5537a766f474182c332fb04f0273ede2297aBorrow203905942021-10-19 19:46:508 hrs 20 mins ago0xf4c1e6f39ce18cb75603e9baafec83144dba7c61 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.02439192
0x478ab82cc973b2e423a2e7e2c4ed6e470b244e286ffe999ca92a894fe4221678Burn203846842021-10-19 15:50:0812 hrs 16 mins ago0xd67cef90687dc5e3e693f267f7a881c12d44537a IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.00400656
0x612eaef3a5e761173f89ab9e34bae5c4484368db8fe56db8d9acd4656c42fd97Margin Trade203800412021-10-19 12:42:3615 hrs 24 mins ago0x52d4e9c6b23cfafa13938034814acdab895b6848 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.1011267
0xe7c07169da65a1f7e9b922937c85485143ce3913a868433b15ab4de1857cd59dMargin Trade203797352021-10-19 12:29:5615 hrs 37 mins ago0x43aa633f005b04d46d2c4ca9377b59ee9ce7c924 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.02996913
0x98ffa2745d791ab1f3570e87ffddc3fa5d99b77c912ce41f9cc321a887987a3fMint203708582021-10-19 6:27:3021 hrs 39 mins ago0x8a88dfcc83c2999a81634899f55512a88d0d84b2 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.0109623
0x749f8c9abe0a950fe4c0957291f47e8e71be0a4048b50527909bcb696ff7ba82Burn203707792021-10-19 6:22:2421 hrs 44 mins ago0x8a88dfcc83c2999a81634899f55512a88d0d84b2 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.006850344
0xca9898c4eefeedbc3153f78ce7fdb27c8816cef7cc07a56ed09a8a8214cb3b19Mint203706202021-10-19 6:15:0221 hrs 52 mins ago0x02b04fd27fb898e6face6df1888f72906b5ba11c IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.00548079
0xe98671893815a67d7298eb9bec0b286a5e614bfe78c75ba89f53666189cb2749Margin Trade203693212021-10-19 5:21:4022 hrs 45 mins ago0x1c089c4447e7b75a83cbd18b5517345ee1a424d2 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f800 MATIC0.02963553
0xedc52cdc286dae00f0dd20687f8dc4eb37568a6f90f63206711f668912994090Margin Trade203687072021-10-19 4:57:4223 hrs 9 mins ago0x1c089c4447e7b75a83cbd18b5517345ee1a424d2 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f220 MATIC0.029831829439
0xd7f933aceed647fd242b924cd0df1e4a57199fe645c371bb51c566f456d16a0bMargin Trade203681582021-10-19 4:31:1823 hrs 35 mins ago0xdd7c40ad9dd3ba5708e3cc6deb90fcfc37933e09 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.040332
0xb45f1c03806666bfd6caa1128f0c06c63eaf60e8cc64bf795199727a873b1444Borrow203680122021-10-19 4:23:3423 hrs 43 mins ago0xdd7c40ad9dd3ba5708e3cc6deb90fcfc37933e09 IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f80 MATIC0.023305627768
0x617dbfc7731c26738fb165329f53f55e553448d0af7294d341c286b451a38d02Margin Trade203623512021-10-19 0:25:361 day 3 hrs ago0x58c326c67b464c3a5c984adc272bd5c814c06def IN  0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f0 MATIC0.03213186
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf1d3de542cac75b1cf4787620c20f49133cc13c22d61e152cc49b1d5f5ccba98203950542021-10-19 22:58:135 hrs 8 mins ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token103 MATIC
0xe98671893815a67d7298eb9bec0b286a5e614bfe78c75ba89f53666189cb2749203693212021-10-19 5:21:4022 hrs 45 mins ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token800 MATIC
0xedc52cdc286dae00f0dd20687f8dc4eb37568a6f90f63206711f668912994090203687072021-10-19 4:57:4223 hrs 9 mins ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token220 MATIC
0xb45f1c03806666bfd6caa1128f0c06c63eaf60e8cc64bf795199727a873b1444203680122021-10-19 4:23:3423 hrs 43 mins ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token80 MATIC
0x390d61a5d5f36d8030b6621c8e54f27aec22ac62c535f7497404870653fef6ba203553502021-10-18 19:19:231 day 8 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token95 MATIC
0x3fac9ca6226cdb2fc9f6a19f47ada0a45a5607861220df6c887f5ad001a2628b203552972021-10-18 19:16:471 day 8 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token15,000 MATIC
0x88816a7d9601513bd9665f7e240055c6f5e16c0382f7bc4e24721e053acb2dcc203407752021-10-18 8:31:541 day 19 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token15.880375798486341694 MATIC
0x0078cfc5bc72031468ef1fe036af23a1dbafa4bf2cb9112c90581b0b180a3d39203299332021-10-18 1:07:032 days 3 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token420 MATIC
0x8101fc8036c9f9be122e1e532ede700726330f53e53938bb907b733cb786e3f6203255092021-10-17 22:02:322 days 6 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token4.25 MATIC
0x4b975329e2a95a2b4e17a71923d4a78ee5a3f991192f366db1854b65e1e85e26203239412021-10-17 20:59:232 days 7 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token3,770 MATIC
0x6eeb4f0f634d3e376d22ed971b9da89eb5f7db9ff11d0645886a57ed605fb0d1202657342021-10-16 3:43:184 days 23 mins ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token1,101.581964269925940249 MATIC
0x74253b14214d89df878b8e8b2f91249ee8c74ff04d04928df8ac15d672b0cee4202615432021-10-16 0:37:114 days 3 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token250 MATIC
0x3d170201c465e6f256b0962961ff61f2c51b534fda22ae46e5a63c17d81b405f202615392021-10-16 0:36:554 days 3 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token500 MATIC
0xc00aae17f1d60b08431b08caf481f51898837ad0114fadebf822e202d25f1b12202615262021-10-16 0:36:034 days 3 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token2,000 MATIC
0x2a740b0118a891e641a206b38d68d6e13fedb0f4bc5c1b7aba832d0ccc8bc46a202604202021-10-15 23:53:004 days 4 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token523.663083822653814891 MATIC
0xb628559f2fef699969c94622fce0cd7af0b3c649b30dbc7322ccbcc18f39d134202599512021-10-15 23:34:424 days 4 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token215 MATIC
0x02f8c72ed9adaf7daf7ad8721417370fbdbaf79768d4d5a409d579409e0d67da202553082021-10-15 20:33:444 days 7 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token1,000 MATIC
0x4926f20edb791fc12316a83edc77220a385291a29ef0fe976eae2b08e9c3d5d7202513302021-10-15 18:04:044 days 10 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token12.5 MATIC
0x89f3bf3108bcdafc334095e2b0e5efdcd16ea6269211977317edbcf6dc3db4de202129832021-10-14 14:46:495 days 13 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token28 MATIC
0xd54aed353b07449d85997ca710f7ca8a20c51445e876d148586eebe963767e3b201940152021-10-14 2:16:376 days 1 hr ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token20 MATIC
0x9219188015aabad4964672af1bb2bc4d3a00814361f0e481898d24a2af81db61201940082021-10-14 2:16:096 days 1 hr ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token20 MATIC
0xa052a6914554cd1db62eec95a0087634ef7df3ec21ff042910b2d181792433d9201820602021-10-13 18:17:526 days 9 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token20 MATIC
0xf8a670aa8f28b496b1aad8bd9eda05445613c696ee60eb79c31df28f39a1af0d201791022021-10-13 16:26:386 days 11 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token7.55 MATIC
0x3cc12c9110c5c5cd8291a76b9e88ecb6cf376edc333b1dc2e05872b486e7bd03201500412021-10-12 21:01:547 days 7 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token22 MATIC
0x892d83caaaea04658ad15b11a0185e70045e065b397db0377ae5ac9c8271e908201496932021-10-12 20:47:337 days 7 hrs ago 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f Polygon: WMATIC Token5 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LoanToken

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-06-09
*/

/**
 * Copyright 2017-2021, bZeroX, LLC <https://bzx.network/>. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0.
 */

pragma solidity 0.5.17;


interface IWeth {
    function deposit() external payable;
    function withdraw(uint256 wad) external;
}

contract IERC20 {
    string public name;
    uint8 public decimals;
    string public symbol;
    function totalSupply() public view returns (uint256);
    function balanceOf(address _who) public view returns (uint256);
    function allowance(address _owner, address _spender) public view returns (uint256);
    function approve(address _spender, uint256 _value) public returns (bool);
    function transfer(address _to, uint256 _value) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract IWethERC20 is IWeth, IERC20 {}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * _Available since v2.4.0._
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b != 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Integer division of two numbers, rounding up and truncating the quotient
    */
    function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
        return divCeil(a, b, "SafeMath: division by zero");
    }

    /**
    * @dev Integer division of two numbers, rounding up and truncating the quotient
    */
    function divCeil(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b != 0, errorMessage);

        if (a == 0) {
            return 0;
        }
        uint256 c = ((a - 1) / b) + 1;

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }

    function min256(uint256 _a, uint256 _b) internal pure returns (uint256) {
        return _a < _b ? _a : _b;
    }
}

/**
 * @title SignedSafeMath
 * @dev Signed math operations with safety checks that revert on error.
 */
library SignedSafeMath {
    int256 constant private _INT256_MIN = -2**255;

        /**
     * @dev Returns the multiplication of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == _INT256_MIN), "SignedSafeMath: multiplication overflow");

        int256 c = a * b;
        require(c / a == b, "SignedSafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two signed integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0, "SignedSafeMath: division by zero");
        require(!(b == -1 && a == _INT256_MIN), "SignedSafeMath: division overflow");

        int256 c = a / b;

        return c;
    }

    /**
     * @dev Returns the subtraction of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a), "SignedSafeMath: subtraction overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a), "SignedSafeMath: addition overflow");

        return c;
    }
}

/**
 * @title Helps contracts guard against reentrancy attacks.
 * @author Remco Bloemen <[email protected]π.com>, Eenae <[email protected]>
 * @dev If you mark a function `nonReentrant`, you should also
 * mark it `external`.
 */
contract ReentrancyGuard {

    /// @dev Constant for unlocked guard state - non-zero to prevent extra gas costs.
    /// See: https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1056
    uint256 internal constant REENTRANCY_GUARD_FREE = 1;

    /// @dev Constant for locked guard state
    uint256 internal constant REENTRANCY_GUARD_LOCKED = 2;

    /**
    * @dev We use a single lock for the whole contract.
    */
    uint256 internal reentrancyLock = REENTRANCY_GUARD_FREE;

    /**
    * @dev Prevents a contract from calling itself, directly or indirectly.
    * If you mark a function `nonReentrant`, you should also
    * mark it `external`. Calling one `nonReentrant` function from
    * another is not supported. Instead, you can implement a
    * `private` function doing the actual work, and an `external`
    * wrapper marked as `nonReentrant`.
    */
    modifier nonReentrant() {
        require(reentrancyLock == REENTRANCY_GUARD_FREE, "nonReentrant");
        reentrancyLock = REENTRANCY_GUARD_LOCKED;
        _;
        reentrancyLock = REENTRANCY_GUARD_FREE;
    }
}

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following 
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Converts an `address` into `address payable`. Note that this is
     * simply a type cast: the actual underlying value is not changed.
     *
     * _Available since v2.4.0._
     */
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     *
     * _Available since v2.4.0._
     */
    function sendValue(address recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "unauthorized");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Pausable {

    // keccak256("Pausable_FunctionPause")
    bytes32 internal constant Pausable_FunctionPause = 0xa7143c84d793a15503da6f19bf9119a2dac94448ca45d77c8bf08f57b2e91047;

    modifier pausable(bytes4 sig) {
        require(!_isPaused(sig), "unauthorized");
        _;
    }

    function _isPaused(
        bytes4 sig)
        internal
        view
        returns (bool isPaused)
    {
        bytes32 slot = keccak256(abi.encodePacked(sig, Pausable_FunctionPause));
        assembly {
            isPaused := sload(slot)
        }
    }
}

contract LoanTokenBase is ReentrancyGuard, Ownable, Pausable {

    uint256 internal constant WEI_PRECISION = 10**18;
    uint256 internal constant WEI_PERCENT_PRECISION = 10**20;

    int256 internal constant sWEI_PRECISION = 10**18;

    string public name;
    string public symbol;
    uint8 public decimals;

    // uint88 for tight packing -> 8 + 88 + 160 = 256
    uint88 internal lastSettleTime_;

    address public loanTokenAddress;

    uint256 public baseRate;
    uint256 public rateMultiplier;
    uint256 public lowUtilBaseRate;
    uint256 public lowUtilRateMultiplier;

    uint256 public targetLevel;
    uint256 public kinkLevel;
    uint256 public maxScaleRate;

    uint256 internal _flTotalAssetSupply;
    uint256 public checkpointSupply;
    uint256 public initialPrice;

    mapping (uint256 => bytes32) public loanParamsIds; // mapping of keccak256(collateralToken, isTorqueLoan) to loanParamsId
    mapping (address => uint256) internal checkpointPrices_; // price of token at last user checkpoint
}

contract AdvancedTokenStorage is LoanTokenBase {
    using SafeMath for uint256;

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    event Mint(
        address indexed minter,
        uint256 tokenAmount,
        uint256 assetAmount,
        uint256 price
    );

    event Burn(
        address indexed burner,
        uint256 tokenAmount,
        uint256 assetAmount,
        uint256 price
    );

    event FlashBorrow(
        address borrower,
        address target,
        address loanToken,
        uint256 loanAmount
    );

    mapping(address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    uint256 internal totalSupply_;

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return totalSupply_;
    }

    function balanceOf(
        address _owner)
        public
        view
        returns (uint256)
    {
        return balances[_owner];
    }

    function allowance(
        address _owner,
        address _spender)
        public
        view
        returns (uint256)
    {
        return allowed[_owner][_spender];
    }
}

contract LoanToken is AdvancedTokenStorage {

    address internal target_;

    constructor(
        address _newOwner,
        address _newTarget)
        public
    {
        transferOwnership(_newOwner);
        _setTarget(_newTarget);
    }

    function()
        external
        payable
    {
        if (gasleft() <= 2300) {
            return;
        }

        address target = target_;
        bytes memory data = msg.data;
        assembly {
            let result := delegatecall(gas, target, add(data, 0x20), mload(data), 0, 0)
            let size := returndatasize
            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)
            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }

    function setTarget(
        address _newTarget)
        public
        onlyOwner
    {
        _setTarget(_newTarget);
    }

    function _setTarget(
        address _newTarget)
        internal
    {
        require(Address.isContract(_newTarget), "target not a contract");
        target_ = _newTarget;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"},{"internalType":"address","name":"_newTarget","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"loanToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"loanAmount","type":"uint256"}],"name":"FlashBorrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checkpointSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kinkLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"loanParamsIds","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"loanTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lowUtilBaseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lowUtilRateMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxScaleRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newTarget","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"targetLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600160005534801561001557600080fd5b50604051610bde380380610bde8339818101604052604081101561003857600080fd5b50805160209091015160006100546001600160e01b036100bb16565b600180546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020610bbe833981519152908290a3506100a2826001600160e01b036100bf16565b6100b4816001600160e01b0361012516565b50506102a5565b3390565b6100d06001600160e01b036101ab16565b610110576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b610122816001600160e01b036101da16565b50565b6101388161026960201b61084d1760201c565b610189576040805162461bcd60e51b815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546000906001600160a01b03166101cb6001600160e01b036100bb16565b6001600160a01b031614905090565b6001600160a01b03811661021f5760405162461bcd60e51b8152600401808060200182810382526026815260200180610b986026913960400191505060405180910390fd5b6001546040516001600160a01b03808416921690600080516020610bbe83398151915290600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061029d57508115155b949350505050565b6108e4806102b46000396000f3fe60806040526004361061012a5760003560e01c8063797bf385116100ab57806395d89b411161006f57806395d89b41146103ff578063ba0e43bf14610414578063d759dbeb14610429578063dd62ed3e1461043e578063ef2b0b3914610479578063f2fde38b1461048e5761012a565b8063797bf385146103665780637b7933b4146103975780637e37c08c146103ac5780638da5cb5b146103c15780638f32d59b146103d65761012a565b80633291c11a116100f25780633291c11a146102ac578063330691ac146102d657806356e07d70146102eb57806370a0823114610300578063776d1a01146103335761012a565b806306fdde03146101a657806318160ddd146102305780631d0806ae146102575780631f68f20a1461026c578063313ce56714610281575b6108fc5a11610138576101a4565b60145460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156101a0578282f35b8282fd5b005b3480156101b257600080fd5b506101bb6104c1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f55781810151838201526020016101dd565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023c57600080fd5b5061024561054c565b60408051918252519081900360200190f35b34801561026357600080fd5b50610245610552565b34801561027857600080fd5b50610245610558565b34801561028d57600080fd5b5061029661055e565b6040805160ff9092168252519081900360200190f35b3480156102b857600080fd5b50610245600480360360208110156102cf57600080fd5b5035610567565b3480156102e257600080fd5b50610245610579565b3480156102f757600080fd5b5061024561057f565b34801561030c57600080fd5b506102456004803603602081101561032357600080fd5b50356001600160a01b0316610585565b34801561033f57600080fd5b506101a46004803603602081101561035657600080fd5b50356001600160a01b03166105a0565b34801561037257600080fd5b5061037b6105f4565b604080516001600160a01b039092168252519081900360200190f35b3480156103a357600080fd5b5061024561060a565b3480156103b857600080fd5b50610245610610565b3480156103cd57600080fd5b5061037b610616565b3480156103e257600080fd5b506103eb610625565b604080519115158252519081900360200190f35b34801561040b57600080fd5b506101bb61064b565b34801561042057600080fd5b506102456106a6565b34801561043557600080fd5b506102456106ac565b34801561044a57600080fd5b506102456004803603604081101561046157600080fd5b506001600160a01b03813581169160200135166106b2565b34801561048557600080fd5b506102456106dd565b34801561049a57600080fd5b506101a4600480360360208110156104b157600080fd5b50356001600160a01b03166106e3565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60135490565b600e5481565b60055481565b60045460ff1681565b600f6020526000908152604090205481565b60065481565b600a5481565b6001600160a01b031660009081526011602052604090205490565b6105a8610625565b6105e8576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6105f181610734565b50565b600454600160601b90046001600160a01b031681565b600d5481565b60085481565b6001546001600160a01b031690565b6001546000906001600160a01b031661063c6107a8565b6001600160a01b031614905090565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b60095481565b60075481565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b600b5481565b6106eb610625565b61072b576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6105f1816107ac565b61073d8161084d565b610786576040805162461bcd60e51b81526020600482015260156024820152741d185c99d95d081b9bdd08184818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0381166107f15760405162461bcd60e51b815260040180806020018281038252602681526020018061088a6026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061088157508115155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a7231582045c18d00653b6cff45eb698f7f53a191ca87668afbc5bea72c8b5950303b36a264736f6c634300051100324f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573738be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608000000000000000000000000bd36f94b35df4dd5135d3d16c449ba2655f12a8c

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

000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608000000000000000000000000bd36f94b35df4dd5135d3d16c449ba2655f12a8c

-----Decoded View---------------
Arg [0] : _newOwner (address): 0xb7f72028d9b502dc871c444363a7ac5a52546608
Arg [1] : _newTarget (address): 0xbd36f94b35df4dd5135d3d16c449ba2655f12a8c

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608
Arg [1] : 000000000000000000000000bd36f94b35df4dd5135d3d16c449ba2655f12a8c


Deployed ByteCode Sourcemap

20422:1151:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20765:4;20752:9;:17;20748:56;;20786:7;;20748:56;20833:7;;20851:28;;;;20871:8;20851:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20833:7:0;;;;20851:17;;-1:-1:-1;;20871:8:0;;20851:28;;-1:-1:-1;20871:8:0;;-1:-1:-1;20851:28:0;1:33:-1;99:1;81:16;;74:27;;;-1:-1;20971:11:0;;20851:28;;-1:-1:-1;99:1;;;-1:-1;20971:11:0;-1:-1:-1;;20964:4:0;20954:15;;20946:6;20941:3;20928:61;21015:14;21060:4;21054:11;21102:4;21099:1;21094:3;21079:28;21128:6;21148:28;;;;21212:4;21207:3;21200:17;21148:28;21169:4;21164:3;21157:17;20899:331;20422:1151;18214:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18214:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18214:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19942:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19942:123:0;;;:::i;:::-;;;;;;;;;;;;;;;;18760:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18760:27:0;;;:::i;18431:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18431:23:0;;;:::i;18266:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18266:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18796:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18796:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18796:49:0;;:::i;18461:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18461:29:0;;;:::i;18612:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18612:24:0;;;:::i;20073:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20073:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20073:149:0;-1:-1:-1;;;;;20073:149:0;;:::i;21245:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21245:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21245:130:0;-1:-1:-1;;;;;21245:130:0;;:::i;18391:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18391:31:0;;;:::i;:::-;;;;-1:-1:-1;;;;;18391:31:0;;;;;;;;;;;;;;18722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18722:31:0;;;:::i;18534:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18534:36:0;;;:::i;16339:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16339:79:0;;;:::i;16685:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16685:94:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;18239:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18239:20:0;;;:::i;18579:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18579:26:0;;;:::i;18497:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18497:30:0;;;:::i;20230:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20230:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20230:185:0;;;;;;;;;;:::i;18643:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18643:27:0;;;:::i;16934:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16934:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16934:109:0;-1:-1:-1;;;;;16934:109:0;;:::i;18214:18::-;;;;;;;;;;;;;;-1:-1:-1;;18214:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19942:123::-;20045:12;;19942:123;:::o;18760:27::-;;;;:::o;18431:23::-;;;;:::o;18266:21::-;;;;;;:::o;18796:49::-;;;;;;;;;;;;;:::o;18461:29::-;;;;:::o;18612:24::-;;;;:::o;20073:149::-;-1:-1:-1;;;;;20198:16:0;20166:7;20198:16;;;:8;:16;;;;;;;20073:149::o;21245:130::-;16551:9;:7;:9::i;:::-;16543:34;;;;;-1:-1:-1;;;16543:34:0;;;;;;;;;;;;-1:-1:-1;;;16543:34:0;;;;;;;;;;;;;;;21345:22;21356:10;21345;:22::i;:::-;21245:130;:::o;18391:31::-;;;-1:-1:-1;;;18391:31:0;;-1:-1:-1;;;;;18391:31:0;;:::o;18722:::-;;;;:::o;18534:36::-;;;;:::o;16339:79::-;16404:6;;-1:-1:-1;;;;;16404:6:0;16339:79;:::o;16685:94::-;16765:6;;16725:4;;-1:-1:-1;;;;;16765:6:0;16749:12;:10;:12::i;:::-;-1:-1:-1;;;;;16749:22:0;;16742:29;;16685:94;:::o;18239:20::-;;;;;;;;;;;;;;;-1:-1:-1;;18239:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18579:26;;;;:::o;18497:30::-;;;;:::o;20230:185::-;-1:-1:-1;;;;;20382:15:0;;;20350:7;20382:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;20230:185::o;18643:27::-;;;;:::o;16934:109::-;16551:9;:7;:9::i;:::-;16543:34;;;;;-1:-1:-1;;;16543:34:0;;;;;;;;;;;;-1:-1:-1;;;16543:34:0;;;;;;;;;;;;;;;17007:28;17026:8;17007:18;:28::i;21383:187::-;21475:30;21494:10;21475:18;:30::i;:::-;21467:64;;;;;-1:-1:-1;;;21467:64:0;;;;;;;;;;;;-1:-1:-1;;;21467:64:0;;;;;;;;;;;;;;;21542:7;:20;;-1:-1:-1;;;;;;21542:20:0;-1:-1:-1;;;;;21542:20:0;;;;;;;;;;21383:187::o;15130:98::-;15210:10;15130:98;:::o;17149:229::-;-1:-1:-1;;;;;17223:22:0;;17215:73;;;;-1:-1:-1;;;17215:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17325:6;;17304:38;;-1:-1:-1;;;;;17304:38:0;;;;17325:6;;17304:38;;17325:6;;17304:38;17353:6;:17;;-1:-1:-1;;;;;;17353:17:0;-1:-1:-1;;;;;17353:17:0;;;;;;;;;;17149:229::o;12041:619::-;12101:4;12569:20;;12412:66;12609:23;;;;;;:42;;-1:-1:-1;12636:15:0;;;12609:42;12601:51;12041:619;-1:-1:-1;;;;12041:619:0:o

Swarm Source

bzzr://45c18d00653b6cff45eb698f7f53a191ca87668afbc5bea72c8b5950303b36a2
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.