ETH Price: $3,357.40 (+2.90%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Get My Tokens152375092022-07-29 13:03:06917 days ago1659099786IN
0x8038Dd83...9692b059A
0 ETH0.0020507516.47328819
Get My Tokens147884302022-05-16 20:49:07990 days ago1652734147IN
0x8038Dd83...9692b059A
0 ETH0.0022692418.22833518
Get My Tokens146908042022-05-01 8:01:331006 days ago1651392093IN
0x8038Dd83...9692b059A
0 ETH0.0090684372.84470634
Get My Tokens146805292022-04-29 17:23:501007 days ago1651253030IN
0x8038Dd83...9692b059A
0 ETH0.0020836167.62145623
Get My Tokens146323592022-04-22 3:45:301015 days ago1650599130IN
0x8038Dd83...9692b059A
0 ETH0.0052847642.45128307
Get My Tokens146159782022-04-19 14:16:041017 days ago1650377764IN
0x8038Dd83...9692b059A
0 ETH0.0065924352.95555641
Get My Tokens146091482022-04-18 12:20:321019 days ago1650284432IN
0x8038Dd83...9692b059A
0 ETH0.0008789528.52532878
Get My Tokens146091482022-04-18 12:20:321019 days ago1650284432IN
0x8038Dd83...9692b059A
0 ETH0.0035511128.52532878
Get My Tokens145820852022-04-14 6:59:001023 days ago1649919540IN
0x8038Dd83...9692b059A
0 ETH0.0046470237.32847157
Get My Tokens145786922022-04-13 18:17:091023 days ago1649873829IN
0x8038Dd83...9692b059A
0 ETH0.0059962948.16690375
Get My Tokens145510902022-04-09 10:53:481028 days ago1649501628IN
0x8038Dd83...9692b059A
0 ETH0.0027200221.84933954
Get My Tokens145507722022-04-09 9:40:161028 days ago1649497216IN
0x8038Dd83...9692b059A
0 ETH0.00277922.32311841
Get My Tokens145489972022-04-09 3:00:421028 days ago1649473242IN
0x8038Dd83...9692b059A
0 ETH0.0032181325.85058062
Get My Tokens145485332022-04-09 1:21:481028 days ago1649467308IN
0x8038Dd83...9692b059A
0 ETH0.0081895565.7848544
Get My Tokens145481572022-04-08 23:55:371028 days ago1649462137IN
0x8038Dd83...9692b059A
0 ETH0.0068514955.03648805
Get My Tokens145445972022-04-08 10:33:161029 days ago1649413996IN
0x8038Dd83...9692b059A
0 ETH0.0066788453.64964525
Get My Tokens145438022022-04-08 7:27:291029 days ago1649402849IN
0x8038Dd83...9692b059A
0 ETH0.0040237532.32194682
Get My Tokens145436302022-04-08 6:42:341029 days ago1649400154IN
0x8038Dd83...9692b059A
0 ETH0.0048610739.0479484
Get My Tokens145386652022-04-07 12:14:201030 days ago1649333660IN
0x8038Dd83...9692b059A
0 ETH0.0044340635.61787506
Get My Tokens145363092022-04-07 3:23:511030 days ago1649301831IN
0x8038Dd83...9692b059A
0 ETH0.004593236.896188
Get My Tokens145358452022-04-07 1:30:151030 days ago1649295015IN
0x8038Dd83...9692b059A
0 ETH0.0040567232.58676483
Get My Tokens145331532022-04-06 15:37:071030 days ago1649259427IN
0x8038Dd83...9692b059A
0 ETH0.0097266678.13208225
Get My Tokens145328862022-04-06 14:33:501030 days ago1649255630IN
0x8038Dd83...9692b059A
0 ETH0.0077183862
Get My Tokens145317532022-04-06 10:15:011031 days ago1649240101IN
0x8038Dd83...9692b059A
0 ETH0.0053619843.07160471
Get My Tokens145316152022-04-06 9:43:231031 days ago1649238203IN
0x8038Dd83...9692b059A
0 ETH0.0045033436.17435619
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
145194142022-04-04 12:00:411033 days ago1649073641
0x8038Dd83...9692b059A
1,058.69486312 ETH
145194142022-04-04 12:00:411033 days ago1649073641
0x8038Dd83...9692b059A
117.63276256 ETH
145194132022-04-04 12:00:331033 days ago1649073633
0x8038Dd83...9692b059A
2.85868428 ETH
145194032022-04-04 11:58:011033 days ago1649073481
0x8038Dd83...9692b059A
11.43913454 ETH
145194002022-04-04 11:57:411033 days ago1649073461
0x8038Dd83...9692b059A
2.14580729 ETH
145193992022-04-04 11:57:061033 days ago1649073426
0x8038Dd83...9692b059A
48.19736264 ETH
145193942022-04-04 11:56:071033 days ago1649073367
0x8038Dd83...9692b059A
8.55494475 ETH
145193922022-04-04 11:54:511033 days ago1649073291
0x8038Dd83...9692b059A
29.9244218 ETH
145193882022-04-04 11:54:241033 days ago1649073264
0x8038Dd83...9692b059A
14.32849001 ETH
145193852022-04-04 11:53:091033 days ago1649073189
0x8038Dd83...9692b059A
2.15038422 ETH
145193822022-04-04 11:53:021033 days ago1649073182
0x8038Dd83...9692b059A
5.73583285 ETH
145193732022-04-04 11:51:151033 days ago1649073075
0x8038Dd83...9692b059A
7.16881392 ETH
145193572022-04-04 11:47:471033 days ago1649072867
0x8038Dd83...9692b059A
14.34489736 ETH
145193562022-04-04 11:47:331033 days ago1649072853
0x8038Dd83...9692b059A
8.61358638 ETH
145193252022-04-04 11:40:411033 days ago1649072441
0x8038Dd83...9692b059A
0.71722921 ETH
145191972022-04-04 11:12:251033 days ago1649070745
0x8038Dd83...9692b059A
5.76144972 ETH
145191732022-04-04 11:07:531033 days ago1649070473
0x8038Dd83...9692b059A
0.27524313 ETH
145191422022-04-04 11:02:011033 days ago1649070121
0x8038Dd83...9692b059A
2.88390253 ETH
145189812022-04-04 10:28:351033 days ago1649068115
0x8038Dd83...9692b059A
1.43534671 ETH
145188532022-04-04 9:59:311033 days ago1649066371
0x8038Dd83...9692b059A
2.87473331 ETH
145188472022-04-04 9:58:131033 days ago1649066293
0x8038Dd83...9692b059A
7.14769379 ETH
145187822022-04-04 9:44:541033 days ago1649065494
0x8038Dd83...9692b059A
0.14283366 ETH
145187362022-04-04 9:32:081033 days ago1649064728
0x8038Dd83...9692b059A
0.17131716 ETH
145186522022-04-04 9:15:041033 days ago1649063704
0x8038Dd83...9692b059A
0.85638658 ETH
145186222022-04-04 9:06:591033 days ago1649063219
0x8038Dd83...9692b059A
11.06003605 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LiquidityTransformer

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : LiquidityTransformer.sol
// SPDX-License-Identifier: UNLICENSED
/* 

  _                          _   _____   _                       
 | |       ___   _ __     __| | |  ___| | |   __ _   _ __    ___ 
 | |      / _ \ | '_ \   / _` | | |_    | |  / _` | | '__|  / _ \
 | |___  |  __/ | | | | | (_| | |  _|   | | | (_| | | |    |  __/
 |_____|  \___| |_| |_|  \__,_| |_|     |_|  \__,_| |_|     \___|
                                                                 
LendFlare.finance
*/

pragma solidity =0.6.12;

import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface ILendFlareToken is IERC20 {
    function setLiquidityFinish() external;
}

contract LiquidityTransformer is ReentrancyGuard {
    using Address for address payable;
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    using Address for address;

    ILendFlareToken public lendflareToken;
    address public uniswapPair;

    IUniswapV2Router02 public constant uniswapRouter =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address payable teamAddress;

    uint256 public constant FEE_DENOMINATOR = 10;
    uint256 public constant liquifyTokens = 909090909 * 1e18;
    uint256 public investmentTime;
    uint256 public minInvest;
    uint256 public launchTime;

    struct Globals {
        uint256 totalUsers;
        uint256 totalBuys;
        uint256 transferredUsers;
        uint256 totalWeiContributed;
        bool liquidity;
        uint256 endTimeAt;
    }

    Globals public globals;

    mapping(address => uint256) public investorBalances;
    mapping(address => uint256[2]) investorHistory;

    event UniSwapResult(
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity,
        uint256 endTimeAt
    );

    modifier afterUniswapTransfer() {
        require(globals.liquidity == true, "Forward liquidity first");
        _;
    }

    constructor(
        address _lendflareToken,
        address payable _teamAddress,
        uint256 _launchTime
    ) public {
        require(_launchTime > block.timestamp, "!_launchTime");
        launchTime = _launchTime;
        lendflareToken = ILendFlareToken(_lendflareToken);
        teamAddress = _teamAddress;

        minInvest = 0.1 ether;
        investmentTime = 7 days;

        
    }

    function createPair() external {
        require(address(uniswapPair) == address(0), "!uniswapPair");

        uniswapPair = address(
            IUniswapV2Factory(factory()).createPair(
                WETH(),
                address(lendflareToken)
            )
        );
    }

    receive() external payable {
        require(
            msg.sender == address(uniswapRouter) || msg.sender == teamAddress,
            "Direct deposits disabled"
        );
    }

    function reserve() external payable {
        _reserve(msg.sender, msg.value);
    }

    function reserveWithToken(address _tokenAddress, uint256 _tokenAmount)
        external
    {
        IERC20 token = IERC20(_tokenAddress);

        token.safeTransferFrom(msg.sender, address(this), _tokenAmount);

        token.approve(address(uniswapRouter), _tokenAmount);

        address[] memory _path = preparePath(_tokenAddress);

        uint256[] memory amounts = uniswapRouter.swapExactTokensForETH(
            _tokenAmount,
            minInvest,
            _path,
            address(this),
            block.timestamp
        );

        _reserve(msg.sender, amounts[1]);
    }

    function _reserve(address _senderAddress, uint256 _senderValue) internal {
        require(block.timestamp >= launchTime, "Not started");
        require(
            block.timestamp <= launchTime.add(investmentTime),
            "IDO has ended"
        );
        require(globals.liquidity == false, "!globals.liquidity");
        require(_senderValue >= minInvest, "Investment below minimum");

        if (investorBalances[_senderAddress] == 0) {
            globals.totalUsers++;
        }

        investorBalances[_senderAddress] = investorBalances[_senderAddress].add(
            _senderValue
        );

        globals.totalWeiContributed = globals.totalWeiContributed.add(
            _senderValue
        );
        globals.totalBuys++;
    }

    function forwardLiquidity() external nonReentrant {
        require(msg.sender == tx.origin, "!EOA");
        require(globals.liquidity == false, "!globals.liquidity");
        require(
            block.timestamp > launchTime.add(investmentTime),
            "Not over yet"
        );

        uint256 _etherFee = globals.totalWeiContributed.div(FEE_DENOMINATOR);
        uint256 _balance = globals.totalWeiContributed.sub(_etherFee);

        teamAddress.sendValue(_etherFee);

        uint256 half = liquifyTokens.div(2);
        uint256 _lendflareTokenFee = half.div(FEE_DENOMINATOR);

        IERC20(lendflareToken).safeTransfer(teamAddress, _lendflareTokenFee);

        lendflareToken.approve(
            address(uniswapRouter),
            half.sub(_lendflareTokenFee)
        );

        (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        ) = uniswapRouter.addLiquidityETH{value: _balance}(
                address(lendflareToken),
                half.sub(_lendflareTokenFee),
                0,
                0,
                address(0x0),
                block.timestamp
            );

        globals.liquidity = true;
        globals.endTimeAt = block.timestamp;

        lendflareToken.setLiquidityFinish();

        emit UniSwapResult(
            amountToken,
            amountETH,
            liquidity,
            globals.endTimeAt
        );
    }

    function getMyTokens() external afterUniswapTransfer nonReentrant {
        require(globals.liquidity, "!globals.liquidity");
        require(investorBalances[msg.sender] > 0, "!balance");

        uint256 myTokens = checkMyTokens(msg.sender);

        investorHistory[msg.sender][0] = investorBalances[msg.sender];
        investorHistory[msg.sender][1] = myTokens;
        investorBalances[msg.sender] = 0;

        IERC20(lendflareToken).safeTransfer(msg.sender, myTokens);

        globals.transferredUsers++;

        if (globals.transferredUsers == globals.totalUsers) {
            uint256 surplusBalance = IERC20(lendflareToken).balanceOf(
                address(this)
            );

            if (surplusBalance > 0) {
                IERC20(lendflareToken).safeTransfer(
                    0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE,
                    surplusBalance
                );
            }
        }
    }

    /* view functions */
    function WETH() public pure returns (address) {
        return IUniswapV2Router02(uniswapRouter).WETH();
    }

    function checkMyTokens(address _sender) public view returns (uint256) {
        if (
            globals.totalWeiContributed == 0 || investorBalances[_sender] == 0
        ) {
            return 0;
        }

        uint256 half = liquifyTokens.div(2);
        uint256 otherHalf = liquifyTokens.sub(half);
        uint256 percent = investorBalances[_sender].mul(100e18).div(
            globals.totalWeiContributed
        );
        uint256 myTokens = otherHalf.mul(percent).div(100e18);

        return myTokens;
    }

    function factory() public pure returns (address) {
        return IUniswapV2Router02(uniswapRouter).factory();
    }

    function getInvestorHistory(address _sender)
        public
        view
        returns (uint256[2] memory)
    {
        return investorHistory[_sender];
    }

    function preparePath(address _tokenAddress)
        internal
        pure
        returns (address[] memory _path)
    {
        _path = new address[](2);
        _path[0] = _tokenAddress;
        _path[1] = WETH();
    }
}

File 2 of 6 : SafeERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

import "./IERC20.sol";
import "../../math/SafeMath.sol";
import "../../utils/Address.sol";

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

File 3 of 6 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor () internal {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

File 4 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 6 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @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, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @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) {
        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, reverting 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) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting 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) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * 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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * 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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

File 6 of 6 : Address.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.2 <0.8.0;

/**
 * @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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @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].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lendflareToken","type":"address"},{"internalType":"address payable","name":"_teamAddress","type":"address"},{"internalType":"uint256","name":"_launchTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTimeAt","type":"uint256"}],"name":"UniSwapResult","type":"event"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"checkMyTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forwardLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getInvestorHistory","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"globals","outputs":[{"internalType":"uint256","name":"totalUsers","type":"uint256"},{"internalType":"uint256","name":"totalBuys","type":"uint256"},{"internalType":"uint256","name":"transferredUsers","type":"uint256"},{"internalType":"uint256","name":"totalWeiContributed","type":"uint256"},{"internalType":"bool","name":"liquidity","type":"bool"},{"internalType":"uint256","name":"endTimeAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"investmentTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investorBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lendflareToken","outputs":[{"internalType":"contract ILendFlareToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minInvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reserve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"reserveWithToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051611ab0380380611ab08339818101604052606081101561003357600080fd5b5080516020820151604090920151600160005590919042811161008c576040805162461bcd60e51b815260206004820152600c60248201526b215f6c61756e636854696d6560a01b604482015290519081900360640190fd5b600655600180546001600160a01b039384166001600160a01b0319918216179091556003805492909316911617905567016345785d8a000060055562093a806004556119d3806100dd6000396000f3fe6080604052600436106101185760003560e01c8063ad5c4648116100a0578063c816841b11610064578063c816841b146103e3578063cd3293de146103f8578063d73792a914610400578063e7cbe05a14610415578063ed2b21ea1461042a5761019c565b8063ad5c464814610327578063b29a61c11461033c578063c31245251461036f578063c45a0155146103b9578063c56c924a146103ce5761019c565b80635b3b136a116100e75780635b3b136a146102be57806363fd9e38146102d3578063735de9f7146102e8578063790ca413146102fd5780639e78fb4f146103125761019c565b80630582484b146101a157806320c1bddd146101da5780632fcfdafe1461021f5780634d823d5e146102505761019c565b3661019c5733737a250d5630b4cf539739df2c5dacb4c659f2488d148061014957506003546001600160a01b031633145b61019a576040805162461bcd60e51b815260206004820152601860248201527f446972656374206465706f736974732064697361626c65640000000000000000604482015290519081900360640190fd5b005b600080fd5b3480156101ad57600080fd5b5061019a600480360360408110156101c457600080fd5b506001600160a01b03813516906020013561043f565b3480156101e657600080fd5b5061020d600480360360208110156101fd57600080fd5b50356001600160a01b03166106a7565b60408051918252519081900360200190f35b34801561022b57600080fd5b50610234610774565b604080516001600160a01b039092168252519081900360200190f35b34801561025c57600080fd5b506102836004803603602081101561027357600080fd5b50356001600160a01b0316610783565b6040518082600260200280838360005b838110156102ab578181015183820152602001610293565b5050505090500191505060405180910390f35b3480156102ca57600080fd5b5061019a6107d4565b3480156102df57600080fd5b5061020d610a3d565b3480156102f457600080fd5b50610234610a43565b34801561030957600080fd5b5061020d610a5b565b34801561031e57600080fd5b5061019a610a61565b34801561033357600080fd5b50610234610b6c565b34801561034857600080fd5b5061020d6004803603602081101561035f57600080fd5b50356001600160a01b0316610bec565b34801561037b57600080fd5b50610384610bfe565b6040805196875260208701959095528585019390935260608501919091521515608084015260a0830152519081900360c00190f35b3480156103c557600080fd5b50610234610c19565b3480156103da57600080fd5b5061020d610c68565b3480156103ef57600080fd5b50610234610c78565b61019a610c87565b34801561040c57600080fd5b5061020d610c93565b34801561042157600080fd5b5061019a610c98565b34801561043657600080fd5b5061020d6110a0565b816104556001600160a01b0382163330856110a6565b6040805163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526024810184905290516001600160a01b0383169163095ea7b39160448083019260209291908290030181600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b505050506040513d60208110156104e257600080fd5b50606090506104f084611106565b90506060737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03166318cbafe5856005548530426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561058e578181015183820152602001610576565b505050509050019650505050505050600060405180830381600087803b1580156105b757600080fd5b505af11580156105cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105f457600080fd5b810190808051604051939291908464010000000082111561061457600080fd5b90830190602082018581111561062957600080fd5b825186602082028301116401000000008211171561064657600080fd5b82525081516020918201928201910280838360005b8381101561067357818101518382015260200161065b565b5050505090500160405250505090506106a0338260018151811061069357fe5b602002602001015161118e565b5050505050565b600a5460009015806106cf57506001600160a01b0382166000908152600d6020526040902054155b156106dc5750600061076f565b60006106f56b02effb7ced1d7b3e4f540000600261134a565b9050600061070f6b02effb7ced1d7b3e4f540000836113b3565b600a546001600160a01b0386166000908152600d60205260408120549293509161074d91906107479068056bc75e2d63100000611410565b9061134a565b9050600061076868056bc75e2d631000006107478585611410565b9450505050505b919050565b6001546001600160a01b031681565b61078b6118d4565b6001600160a01b0382166000908152600e6020526040908190208151808301928390529160029082845b8154815260200190600101908083116107b55750505050509050919050565b600b5460ff161515600114610830576040805162461bcd60e51b815260206004820152601760248201527f466f7277617264206c6971756964697479206669727374000000000000000000604482015290519081900360640190fd5b60026000541415610888576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055600b5460ff166108d9576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b336000908152600d6020526040902054610925576040805162461bcd60e51b81526020600482015260086024820152672162616c616e636560c01b604482015290519081900360640190fd5b6000610930336106a7565b336000818152600d602081815260408084208054600e845291852091825560019182018790559290915291905554919250610975916001600160a01b03169083611470565b60098054600101908190556007541415610a3557600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d60208110156109fe57600080fd5b505190508015610a3357600154610a33906001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83611470565b505b506001600055565b60055481565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60065481565b6002546001600160a01b031615610aae576040805162461bcd60e51b815260206004820152600c60248201526b10bab734b9bbb0b82830b4b960a11b604482015290519081900360640190fd5b610ab6610c19565b6001600160a01b031663c9c65396610acc610b6c565b600154604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b505050506040513d6020811015610b4957600080fd5b5051600280546001600160a01b0319166001600160a01b03909216919091179055565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbb57600080fd5b505afa158015610bcf573d6000803e3d6000fd5b505050506040513d6020811015610be557600080fd5b5051905090565b600d6020526000908152604090205481565b600754600854600954600a54600b54600c5460ff9091169086565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbb57600080fd5b6b02effb7ced1d7b3e4f54000081565b6002546001600160a01b031681565b610c91333461118e565b565b600a81565b60026000541415610cf0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055333214610d32576040805162461bcd60e51b8152602060048083019190915260248201526321454f4160e01b604482015290519081900360640190fd5b600b5460ff1615610d7f576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b600454600654610d8e916114c7565b4211610dd0576040805162461bcd60e51b815260206004820152600c60248201526b139bdd081bdd995c881e595d60a21b604482015290519081900360640190fd5b600a8054600091610de1919061134a565b600a54909150600090610df490836113b3565b600354909150610e0d906001600160a01b031683611521565b6000610e266b02effb7ced1d7b3e4f540000600261134a565b90506000610e3582600a61134a565b600354600154919250610e55916001600160a01b03908116911683611470565b6001546001600160a01b031663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d610e8585856113b3565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610ecb57600080fd5b505af1158015610edf573d6000803e3d6000fd5b505050506040513d6020811015610ef557600080fd5b505060015460009081908190737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d7199088906001600160a01b0316610f3289896113b3565b604080516001600160e01b031960e087901b1681526001600160a01b03909316600484015260248301919091526000604483018190526064830181905260848301524260a48301525160c480830192606092919082900301818588803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b50505050506040513d6060811015610fc657600080fd5b5080516020820151604092830151600b805460ff1916600190811790915542600c55548451636283088b60e11b8152945193975091955093506001600160a01b03169163c506111691600482810192600092919082900301818387803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b5050600c5460408051878152602081018790528082018690526060810192909252517fa88b730835686ac0bb722f9aa74e0d4819af08fbf044c7985fc5f1da2b755cf29350908190036080019150a1505060016000555050505050565b60045481565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611100908590611606565b50505050565b6040805160028082526060808301845292602083019080368337019050509050818160008151811061113457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061115c610b6c565b8160018151811061116957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050919050565b6006544210156111d3576040805162461bcd60e51b815260206004820152600b60248201526a139bdd081cdd185c9d195960aa1b604482015290519081900360640190fd5b6004546006546111e2916114c7565b421115611226576040805162461bcd60e51b815260206004820152600d60248201526c125113c81a185cc8195b991959609a1b604482015290519081900360640190fd5b600b5460ff1615611273576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b6005548110156112ca576040805162461bcd60e51b815260206004820152601860248201527f496e766573746d656e742062656c6f77206d696e696d756d0000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600d60205260409020546112f1576007805460010190555b6001600160a01b0382166000908152600d602052604090205461131490826114c7565b6001600160a01b0383166000908152600d6020526040902055600a5461133a90826114c7565b600a555050600880546001019055565b60008082116113a0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816113a957fe5b0490505b92915050565b60008282111561140a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261141f575060006113ad565b8282028284828161142c57fe5b04146114695760405162461bcd60e51b81526004018080602001828103825260218152602001806119536021913960400191505060405180910390fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526114c2908490611606565b505050565b600082820183811015611469576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80471015611576576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146115c1576040519150601f19603f3d011682016040523d82523d6000602084013e6115c6565b606091505b50509050806114c25760405162461bcd60e51b815260040180806020018281038252603a8152602001806118f3603a913960400191505060405180910390fd5b606061165b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116b79092919063ffffffff16565b8051909150156114c25780806020019051602081101561167a57600080fd5b50516114c25760405162461bcd60e51b815260040180806020018281038252602a815260200180611974602a913960400191505060405180910390fd5b60606116c684846000856116ce565b949350505050565b60608247101561170f5760405162461bcd60e51b815260040180806020018281038252602681526020018061192d6026913960400191505060405180910390fd5b6117188561182a565b611769576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106117a85780518252601f199092019160209182019101611789565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461180a576040519150601f19603f3d011682016040523d82523d6000602084013e61180f565b606091505b509150915061181f828286611830565b979650505050505050565b3b151590565b6060831561183f575081611469565b82511561184f5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611899578181015183820152602001611881565b50505050905090810190601f1680156118c65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600290602082028036833750919291505056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122070120d508e1d3bb63367bb72e67366d82436280599412d51ed8705827abf809564736f6c634300060c0033000000000000000000000000b620be8a1949aa9532e6a3510132864ef9bc3f820000000000000000000000006c91a4a2a2ba651f5dad331ae0c29b6d83143002000000000000000000000000000000000000000000000000000000006241a340

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063ad5c4648116100a0578063c816841b11610064578063c816841b146103e3578063cd3293de146103f8578063d73792a914610400578063e7cbe05a14610415578063ed2b21ea1461042a5761019c565b8063ad5c464814610327578063b29a61c11461033c578063c31245251461036f578063c45a0155146103b9578063c56c924a146103ce5761019c565b80635b3b136a116100e75780635b3b136a146102be57806363fd9e38146102d3578063735de9f7146102e8578063790ca413146102fd5780639e78fb4f146103125761019c565b80630582484b146101a157806320c1bddd146101da5780632fcfdafe1461021f5780634d823d5e146102505761019c565b3661019c5733737a250d5630b4cf539739df2c5dacb4c659f2488d148061014957506003546001600160a01b031633145b61019a576040805162461bcd60e51b815260206004820152601860248201527f446972656374206465706f736974732064697361626c65640000000000000000604482015290519081900360640190fd5b005b600080fd5b3480156101ad57600080fd5b5061019a600480360360408110156101c457600080fd5b506001600160a01b03813516906020013561043f565b3480156101e657600080fd5b5061020d600480360360208110156101fd57600080fd5b50356001600160a01b03166106a7565b60408051918252519081900360200190f35b34801561022b57600080fd5b50610234610774565b604080516001600160a01b039092168252519081900360200190f35b34801561025c57600080fd5b506102836004803603602081101561027357600080fd5b50356001600160a01b0316610783565b6040518082600260200280838360005b838110156102ab578181015183820152602001610293565b5050505090500191505060405180910390f35b3480156102ca57600080fd5b5061019a6107d4565b3480156102df57600080fd5b5061020d610a3d565b3480156102f457600080fd5b50610234610a43565b34801561030957600080fd5b5061020d610a5b565b34801561031e57600080fd5b5061019a610a61565b34801561033357600080fd5b50610234610b6c565b34801561034857600080fd5b5061020d6004803603602081101561035f57600080fd5b50356001600160a01b0316610bec565b34801561037b57600080fd5b50610384610bfe565b6040805196875260208701959095528585019390935260608501919091521515608084015260a0830152519081900360c00190f35b3480156103c557600080fd5b50610234610c19565b3480156103da57600080fd5b5061020d610c68565b3480156103ef57600080fd5b50610234610c78565b61019a610c87565b34801561040c57600080fd5b5061020d610c93565b34801561042157600080fd5b5061019a610c98565b34801561043657600080fd5b5061020d6110a0565b816104556001600160a01b0382163330856110a6565b6040805163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526024810184905290516001600160a01b0383169163095ea7b39160448083019260209291908290030181600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b505050506040513d60208110156104e257600080fd5b50606090506104f084611106565b90506060737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03166318cbafe5856005548530426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561058e578181015183820152602001610576565b505050509050019650505050505050600060405180830381600087803b1580156105b757600080fd5b505af11580156105cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105f457600080fd5b810190808051604051939291908464010000000082111561061457600080fd5b90830190602082018581111561062957600080fd5b825186602082028301116401000000008211171561064657600080fd5b82525081516020918201928201910280838360005b8381101561067357818101518382015260200161065b565b5050505090500160405250505090506106a0338260018151811061069357fe5b602002602001015161118e565b5050505050565b600a5460009015806106cf57506001600160a01b0382166000908152600d6020526040902054155b156106dc5750600061076f565b60006106f56b02effb7ced1d7b3e4f540000600261134a565b9050600061070f6b02effb7ced1d7b3e4f540000836113b3565b600a546001600160a01b0386166000908152600d60205260408120549293509161074d91906107479068056bc75e2d63100000611410565b9061134a565b9050600061076868056bc75e2d631000006107478585611410565b9450505050505b919050565b6001546001600160a01b031681565b61078b6118d4565b6001600160a01b0382166000908152600e6020526040908190208151808301928390529160029082845b8154815260200190600101908083116107b55750505050509050919050565b600b5460ff161515600114610830576040805162461bcd60e51b815260206004820152601760248201527f466f7277617264206c6971756964697479206669727374000000000000000000604482015290519081900360640190fd5b60026000541415610888576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055600b5460ff166108d9576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b336000908152600d6020526040902054610925576040805162461bcd60e51b81526020600482015260086024820152672162616c616e636560c01b604482015290519081900360640190fd5b6000610930336106a7565b336000818152600d602081815260408084208054600e845291852091825560019182018790559290915291905554919250610975916001600160a01b03169083611470565b60098054600101908190556007541415610a3557600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d60208110156109fe57600080fd5b505190508015610a3357600154610a33906001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83611470565b505b506001600055565b60055481565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60065481565b6002546001600160a01b031615610aae576040805162461bcd60e51b815260206004820152600c60248201526b10bab734b9bbb0b82830b4b960a11b604482015290519081900360640190fd5b610ab6610c19565b6001600160a01b031663c9c65396610acc610b6c565b600154604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b505050506040513d6020811015610b4957600080fd5b5051600280546001600160a01b0319166001600160a01b03909216919091179055565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbb57600080fd5b505afa158015610bcf573d6000803e3d6000fd5b505050506040513d6020811015610be557600080fd5b5051905090565b600d6020526000908152604090205481565b600754600854600954600a54600b54600c5460ff9091169086565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbb57600080fd5b6b02effb7ced1d7b3e4f54000081565b6002546001600160a01b031681565b610c91333461118e565b565b600a81565b60026000541415610cf0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600055333214610d32576040805162461bcd60e51b8152602060048083019190915260248201526321454f4160e01b604482015290519081900360640190fd5b600b5460ff1615610d7f576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b600454600654610d8e916114c7565b4211610dd0576040805162461bcd60e51b815260206004820152600c60248201526b139bdd081bdd995c881e595d60a21b604482015290519081900360640190fd5b600a8054600091610de1919061134a565b600a54909150600090610df490836113b3565b600354909150610e0d906001600160a01b031683611521565b6000610e266b02effb7ced1d7b3e4f540000600261134a565b90506000610e3582600a61134a565b600354600154919250610e55916001600160a01b03908116911683611470565b6001546001600160a01b031663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d610e8585856113b3565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610ecb57600080fd5b505af1158015610edf573d6000803e3d6000fd5b505050506040513d6020811015610ef557600080fd5b505060015460009081908190737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d7199088906001600160a01b0316610f3289896113b3565b604080516001600160e01b031960e087901b1681526001600160a01b03909316600484015260248301919091526000604483018190526064830181905260848301524260a48301525160c480830192606092919082900301818588803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b50505050506040513d6060811015610fc657600080fd5b5080516020820151604092830151600b805460ff1916600190811790915542600c55548451636283088b60e11b8152945193975091955093506001600160a01b03169163c506111691600482810192600092919082900301818387803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b5050600c5460408051878152602081018790528082018690526060810192909252517fa88b730835686ac0bb722f9aa74e0d4819af08fbf044c7985fc5f1da2b755cf29350908190036080019150a1505060016000555050505050565b60045481565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611100908590611606565b50505050565b6040805160028082526060808301845292602083019080368337019050509050818160008151811061113457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061115c610b6c565b8160018151811061116957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050919050565b6006544210156111d3576040805162461bcd60e51b815260206004820152600b60248201526a139bdd081cdd185c9d195960aa1b604482015290519081900360640190fd5b6004546006546111e2916114c7565b421115611226576040805162461bcd60e51b815260206004820152600d60248201526c125113c81a185cc8195b991959609a1b604482015290519081900360640190fd5b600b5460ff1615611273576040805162461bcd60e51b815260206004820152601260248201527121676c6f62616c732e6c697175696469747960701b604482015290519081900360640190fd5b6005548110156112ca576040805162461bcd60e51b815260206004820152601860248201527f496e766573746d656e742062656c6f77206d696e696d756d0000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600d60205260409020546112f1576007805460010190555b6001600160a01b0382166000908152600d602052604090205461131490826114c7565b6001600160a01b0383166000908152600d6020526040902055600a5461133a90826114c7565b600a555050600880546001019055565b60008082116113a0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816113a957fe5b0490505b92915050565b60008282111561140a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261141f575060006113ad565b8282028284828161142c57fe5b04146114695760405162461bcd60e51b81526004018080602001828103825260218152602001806119536021913960400191505060405180910390fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526114c2908490611606565b505050565b600082820183811015611469576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80471015611576576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146115c1576040519150601f19603f3d011682016040523d82523d6000602084013e6115c6565b606091505b50509050806114c25760405162461bcd60e51b815260040180806020018281038252603a8152602001806118f3603a913960400191505060405180910390fd5b606061165b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116b79092919063ffffffff16565b8051909150156114c25780806020019051602081101561167a57600080fd5b50516114c25760405162461bcd60e51b815260040180806020018281038252602a815260200180611974602a913960400191505060405180910390fd5b60606116c684846000856116ce565b949350505050565b60608247101561170f5760405162461bcd60e51b815260040180806020018281038252602681526020018061192d6026913960400191505060405180910390fd5b6117188561182a565b611769576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106117a85780518252601f199092019160209182019101611789565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461180a576040519150601f19603f3d011682016040523d82523d6000602084013e61180f565b606091505b509150915061181f828286611830565b979650505050505050565b3b151590565b6060831561183f575081611469565b82511561184f5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611899578181015183820152602001611881565b50505050905090810190601f1680156118c65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600290602082028036833750919291505056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122070120d508e1d3bb63367bb72e67366d82436280599412d51ed8705827abf809564736f6c634300060c0033

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

000000000000000000000000b620be8a1949aa9532e6a3510132864ef9bc3f820000000000000000000000006c91a4a2a2ba651f5dad331ae0c29b6d83143002000000000000000000000000000000000000000000000000000000006241a340

-----Decoded View---------------
Arg [0] : _lendflareToken (address): 0xB620Be8a1949AA9532e6a3510132864EF9Bc3F82
Arg [1] : _teamAddress (address): 0x6c91A4A2A2Ba651f5dAd331Ae0C29B6D83143002
Arg [2] : _launchTime (uint256): 1648468800

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b620be8a1949aa9532e6a3510132864ef9bc3f82
Arg [1] : 0000000000000000000000006c91a4a2a2ba651f5dad331ae0c29b6d83143002
Arg [2] : 000000000000000000000000000000000000000000000000000000006241a340


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.