Contract 0x97dfbEF4eD5a7f63781472Dbc69Ab8e5d7357cB9

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xcfcf58e7861c9ad8dc8b086ba3bd7560515bc46bc9c705dd447c50e8c58ceb2fApprove264301432022-03-27 17:23:12191 days 13 hrs ago0x693616d95a0a6642d01b0a36c7782b5d3031d413 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.000965435779 30.295784963
0x30bbdff5e969fa4ea54523d1b60325a2a3d4b05243c9f7fe67aa90c2505d0780Approve264301292022-03-27 17:22:44191 days 13 hrs ago0x693616d95a0a6642d01b0a36c7782b5d3031d413 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.000911997366 30.535285328
0xc311fefe994730f1302deda520e87b374feade28c959ab9daadf5da736b170dbApprove259647252022-03-15 9:49:22203 days 20 hrs ago0x053543d9eba2bc8db33dba93d1ac29ba17335aa7 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00089601 30.000000011
0x489a110771fec4008bc70254f8e1d896c3daf8450b78dc821f3da7b09648d888Approve248898482022-02-13 10:51:03233 days 19 hrs ago0xe2181cd5c067570815b63abff9f1905b61431b31 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.001642685 55
0xc0a2d0e440bc3f11daab94208ce6f56848b20ebb58d9ec0fd094995a96caf470Approve246657532022-02-07 18:28:10239 days 12 hrs ago0x85c9b8d85a67ef9859660cb1b2f5ae4bfe564e69 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00149335 50
0x0aa9e18c5fea2dfc43a7b437269b7b77ef3428d14a12fc4a8f212c03affa9f6fApprove246239372022-02-06 16:53:10240 days 13 hrs ago0xaaf42a43e71bcc333bcf44243fecabbc1f31a25a IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.001015478 34
0x29450d6cd3be10246af17df2f82b7d4ddd04d5e038e5918681374f9716bf9849Approve243954302022-01-31 21:07:58246 days 9 hrs ago0x94bfa52346fd2cb7c24eeeb159843ef0e221f766 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.001015478 34
0xc0318c1d540349da61b74ff4eb053406770025453d81834ca08b4393855d58edApprove238562382022-01-18 6:34:54260 days 10 mins ago0x34fd51d8a633ba934d44fd4a55d6d4ef959c8ad4 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.006959011 233
0x7f40bc8258c88d83ebffbf431ca9a934b869eb58aa688d36c3d149c6717fcd61Approve234009862022-01-06 11:17:25271 days 19 hrs ago0x1bb46f6515da9c63ed67465cb0bf2f24598a4387 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.012665548644
0xb8697c51fb8f7d9648bc6a00c766663d6372f6ee855fcca56bc200f560a66f8bApprove231347842021-12-30 8:30:30278 days 22 hrs ago0x52b1043152129a8ed51712a01e6dc695cf2a9087 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0011800260
0x1507193443fd11a203ddaaaab68c101132151ee85045bca4b38cd1c2c19e9939Approve229506702021-12-25 15:49:05283 days 14 hrs ago0x927ccf9221b792c7eea7d68b7e9aacc0ebc13a6f IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0011800260
0x718cb9c1c845ae194bb13ee54437e2182370f45b484fcc2e5c13a30163facbb1Approve228535722021-12-23 3:56:31286 days 2 hrs ago0x1be5f7f846c00b148bb6621fa57f268a21fac589 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0005900130
0x455b09f7dcfb1502b40e6d4744150b1d26460b4d39cd69f3118dd14c0e2dbba2Approve227397242021-12-20 7:02:29288 days 23 hrs ago0x3d009a3aa6f4f56c0d69853a0205f272e35137c1 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00175036389
0x69b2e424507a8fadcdac9fc1e552de6d6c2a5aa428ddeab3664dc8c620877c2dApprove225262252021-12-14 20:32:01294 days 10 hrs ago0x5b51e19fc101b0276ebb9fdee4513e6f4f5b2e8e IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.003048385155
0xb7964be1aa32033981910b564625301c664f2cf171b2ace061d5151eb817a13eBurn225262222021-12-14 20:31:55294 days 10 hrs ago0x5b51e19fc101b0276ebb9fdee4513e6f4f5b2e8e IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00283390833
0x4949e424ba3893537f28655c4c1058edb88000cb6ddb6ec458e02de9f574bb9cBurn225262182021-12-14 20:31:47294 days 10 hrs ago0x5b51e19fc101b0276ebb9fdee4513e6f4f5b2e8e IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00283390833
0x1c9e5d5768c04011f0505f12503fc46caf74b0a83577356b09c02d705d40ffdcApprove225175962021-12-14 15:07:15294 days 15 hrs ago0x668464fffdbb44c00fedb1d5924592e75d8dff30 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0019667100
0x01a48d2c0b5b8a29f312a4f068fe08a357992b004632126b6dca41dc1d71e1ceApprove224194532021-12-12 2:28:35297 days 4 hrs ago0xab286c5655b4b0ae3082f1f05893bdd53ba65870 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00088501545
0xe85a90241cb90843cfc726830fb13a57792f02e35d2f1522bcd94b291c11d5f2Approve222864952021-12-08 17:57:15300 days 12 hrs ago0x1cccedbda927876b81cbff11019ad05d9273fff0 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0009833550
0xc63ea4f3ef37b56de8dd5adf51a82aad5133fc27b7c81e28d17e7a01486c3912Approve222816042021-12-08 15:03:46300 days 15 hrs ago0x5f6fd9d880be6e209d5ee7a5517dfb40b8a9d81b IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0005900130
0xc728378864a0045dc549f52441880af39deeb8e2c2ae53dda4e2f9e3d6d97f0bApprove221614352021-12-05 10:37:17303 days 20 hrs ago0x2a7ede2dd97947d9a9874e4e02f53532cd1bfc46 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0005900130
0xcd893f6054cf5cf775efaba67246b9678e353efb2d6e4256db733e513f1c3d31Approve221264772021-12-04 13:19:06304 days 17 hrs ago0x357deb23f819c261070b0c5c446cc740da9b459f IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.006234439317
0xece472bf3215edcec5a756410e25a78928a811a3ee591a57c0c0c4ee5cc68f78Approve221020882021-12-03 21:27:32305 days 9 hrs ago0xc6a7e7322c88d51bb962f04a02ffa2e5d1d5ac4b IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.005998435305
0xc695c2040f7dee6c8055f8acebff83639688c4462520acd7f8015e95212c91dbApprove220889052021-12-03 13:19:51305 days 17 hrs ago0xcce15dab72f0c54014f2fe8ebcd2085d3721df03 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.0019667100
0xfc082c87df3baaf234d16eb67707456154988d9da0013f331f63409c5b661862Approve217820622021-11-25 11:12:55313 days 19 hrs ago0x0ac077891592f2c95588250f549b69348930e6b7 IN  0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb90 MATIC0.00108168555
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0e9225f1d71046bbd30510f11982fd9bbc7af32a77eae42de10a636873d4513f188433032021-09-07 10:07:49392 days 20 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.330418230363436315 MATIC
0x98e30dadc41d2147cde5262da7e2a8e878676606970ac24a62f16696704e095b178664222021-08-11 11:47:17419 days 18 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token5.069159898307984331 MATIC
0xe7ac31e285646a674a416a633113312b2a68f5752d7f8c105c5929c2aaaef4a7174219672021-07-30 9:43:56431 days 21 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token1.98434878758780928 MATIC
0xf0b3b01d0a02af34d05d198320575d3e79e66a9689370e30804ac1b87111afdf174193422021-07-30 7:46:35431 days 22 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token1 MATIC
0xe6854f097f70aad10d2562cbb5dabfc8f92c6d8db2b8f1a38d69555a8b02c54c174057262021-07-29 22:19:14432 days 8 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.100889633400804123 MATIC
0xed8a5d11c3496af58aa172d3cec7f6696717590d32af4bbc27a74d17a278e4d3169333582021-07-16 19:12:37445 days 11 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.378025834754284689 MATIC
0x698942830046a4dd4753b36bd0272aa29c05a60afdb4c36a1e2cd639fd41a0c7166100812021-07-07 17:45:32454 days 12 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token20 MATIC
0xf1bfb38e521a54d8d611ee6ac138124055476251ff532a39d2326ee35aaa3359164310602021-07-03 4:36:14459 days 2 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token3.606944493897644503 MATIC
0xcc42e7aaf9240daf5dda4c768893ec91fefab8c9e6f5f443913c2a61ae20734f164102472021-07-02 16:18:46459 days 14 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token600 MATIC
0xe22fbe52961495e951601ba1d7b4318a1e21e508007c9f3c1d7347e8249ecb58162907212021-06-29 14:51:31462 days 15 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.58 MATIC
0x408658945d9302ca1a2ab0366063358967a07e5bde08a399ca955e1cae32bf9b162434462021-06-28 9:32:31463 days 21 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token2.139612928206563999 MATIC
0xf34721f63a75f9988c52420f8811792fd2f21319ad6e55da0697217a22b1b4f1162427362021-06-28 9:05:59463 days 21 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.589248895743223452 MATIC
0x3a1572df070f2606a4ba6374312a8149fe6425f73857a24f3a88b0dd4c776def159989612021-06-22 1:33:59470 days 5 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token6.261679075986549351 MATIC
0x65c8065f6ac8dbaa656fd5865d023a4c9126f89a682c526fc0a36815b9d7be71159474422021-06-20 17:55:32471 days 12 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token6.293421649744725067 MATIC
0x1e9deb8c4baf644c033e1389b04a5f7d8e21153accb44c686d7f64c573c1eb34158983112021-06-19 12:05:07472 days 18 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token10 MATIC
0x5ef4f792bebc695bfc9da27c4a82e76da43aaff202553c7a6f3d70bac1f6c6c3158626062021-06-18 13:08:44473 days 17 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.818013771554359963 MATIC
0x30657d2a448e3644b3b89913a72302779ad5e2cb8515e6fffd42554cbc09402f158620712021-06-18 12:50:18473 days 17 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token5 MATIC
0x794e00d0ad1d0b52550fd88d8a78aa594bd149b9ed968deecc62231e5ef5c0d0158543622021-06-18 8:16:48473 days 22 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token10.63368 MATIC
0x520878dddcf19bd8d06cc3f64044697ae02e575a7c3f12f7e7d3678ab9c2341d158529982021-06-18 7:27:48473 days 23 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token15.52 MATIC
0x5dfe7a2db56291fa88f7aafc13b06600f359afb1d5a60f25153fc6db8640de5d158392382021-06-17 22:51:25474 days 7 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.306318094353745149 MATIC
0x91bea49f192b4fa379e866c2247d0c1b33c6d39f96ce5d7f125c0b0c8574ba04158385862021-06-17 22:26:49474 days 8 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token726.151447568956208835 MATIC
0xf6665f444215fb0f8e77ed48cafe135f64b372e68743264593695250c5a6ac1d157886672021-06-16 16:31:15475 days 14 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token26,990.341088688807839767 MATIC
0xfb711e9f46a944aeb0af4c0bf50d5f2418a0718ab50719b20cb298844da23dac157861392021-06-16 14:58:27475 days 15 hrs ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token2 MATIC
0x3c9ee1cbf300b2b8c03851f6e61ac85a8d07d824ba0cda5c8929bdec3f745366157715762021-06-16 5:49:02476 days 56 mins ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token1 MATIC
0x1adafc8217c4d08721a73fca715fdc07882f08a20c763e4799f3914c5a70f407157711672021-06-16 5:28:50476 days 1 hr ago 0x97dfbef4ed5a7f63781472dbc69ab8e5d7357cb9 Polygon: WMATIC Token0.8 MATIC
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x2e1a74a16e3a9f8e3d825902ab9fb87c606cb13f

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

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.