Contract 0x46ac9383d3e23167be2e4e728a11a49643514ed3 6

 

Contract Overview

Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1d2b40eef62107f4b2e5288c1701597a462418986bdaaef2b710a4ac4baefb42Add Liquidity579533492023-03-20 1:47:111 day 9 hrs ago0x16c5d7862f5e42b578c5b86bdf1f3887fdc0f412 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.036215647017
0x55a15d9d61cea276daf8f033df4039e6286b07667cdd56edc837e532fde50187Add Liquidity FT...579287142023-03-19 17:31:481 day 18 hrs ago0x91817a270fb9f03e00918fae83b3fe718c1426e8 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed333 FTM0.054231931878
0x5c509f787d73ef1c0eb1cd3b2a3ea602b1cc66652f4d5c363cf6759c841eceb4Remove Liquidity579240782023-03-19 16:00:101 day 19 hrs ago0x91817a270fb9f03e00918fae83b3fe718c1426e8 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM1.440671334011
0xdc8e22d73191f6dc8b2d8aeaf7fb47b3075951e3b7245f70faa710bcfb32b26bRemove Liquidity579055352023-03-19 9:38:242 days 2 hrs ago0xf7ab5f9db3b621877c123d4f7f9ec61997cca0a4 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.028631361046
0x71e3dcae4a6dd8388ddad747c737bfcb763b81914367f4c138f8f300abbab7c5Add Liquidity578838412023-03-19 0:43:282 days 11 hrs ago0x45a6194d91156e0b6b54bb2cb816fead54593dcc IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.042308749648
0x8df53780b661d08c1ee289293c5ed1785f6e2aabbfb7f1b092dc02fd4a75d9f4Add Liquidity578823762023-03-19 0:11:392 days 11 hrs ago0x45a6194d91156e0b6b54bb2cb816fead54593dcc IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.132130317607
0x824d61519db5a9cc92b21c4455f72070f6bd9e12923decf624f93c587408d617Remove Liquidity...577361062023-03-16 23:42:474 days 12 hrs ago0xa24b12943dd600052ba36a2543f3598c5b6baf3b IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.028926626174
0xa7e1ed2c45c9f5786c44bf130485a4856c80768dc2ceee74d408b10f8fbeff3fAdd Liquidity577354612023-03-16 23:28:494 days 12 hrs ago0x343b2412745f5211596af10bef24f6c87f9b00d6 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.037516463496
0xce6a85427eb57065ae0cd690cb0d7a4a657d2e92da62628925ef0436dbf7e6bdAdd Liquidity577035242023-03-16 12:30:574 days 23 hrs ago0xb9c0aba138b98656ffea4309bfe2881b0b7c1d96 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.040949570357
0xd70b448d8e300423d69d3a677313a76f399957b2c7b23b1eac7e72d839c82d01Add Liquidity FT...576236032023-03-15 9:50:126 days 1 hr ago0x77642db8d8316ac720d186abd037e5ea287b6e63 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed33.5 FTM2.915540619457
0x4026985bb016c09938bd15ccf98406d755c4d86e1e5a84a37c3120ddffe6d86eAdd Liquidity576224512023-03-15 9:06:326 days 2 hrs ago0x77642db8d8316ac720d186abd037e5ea287b6e63 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.030542722945
0x13b93ecac0bd9a8a2f01c09c50ee140756d736127739abf1d6950653cff73e53Remove Liquidity576222312023-03-15 8:58:236 days 2 hrs ago0x77642db8d8316ac720d186abd037e5ea287b6e63 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.032560812916
0xb5af1fd10a32122afdd95dcf061ab528abe2d9066a85cafc5d1106a84f19c9aeRemove Liquidity...576221472023-03-15 8:56:106 days 2 hrs ago0x488d39b4eb0a35d493fbd744611a410fc96bf865 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.027352690551
0xe3a4f9092fed5ab326122aafc5bceb505b1ec4b43e117f64ecb5b710716a550cRemove Liquidity...576220292023-03-15 8:53:046 days 2 hrs ago0x488d39b4eb0a35d493fbd744611a410fc96bf865 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.031471099209
0x8cce21af95b74eefa7a6d0c9b67f9cdd624c76eb3c81e2c6b43a53f79d7daa48Remove Liquidity576162092023-03-15 5:20:406 days 6 hrs ago0xaa790b70a787cc9890f0cb16cccb1ad362d7d2cd IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.040301127957
0x147ce81b978d445d055d6da6c52a14e6dd9910f125060d0e321e0d1fccff81d7Add Liquidity576016472023-03-15 0:15:546 days 11 hrs ago0x16c5d7862f5e42b578c5b86bdf1f3887fdc0f412 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.123757470224
0x04e255df22999c763296e32379bdb3c0fec450eda497dd52db53a4ea00635224Add Liquidity FT...575804182023-03-14 17:23:106 days 18 hrs ago0x43dd14ca56c86c55f5cbdeb9a4515784f76a5134 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed3236.822984973790704 FTM0.31653365936
0x1918c501a59c65c6103bb0c7fb93adac696cbc4554b1567c6fbcec9f3e28e5b0Remove Liquidity575743182023-03-14 15:45:206 days 19 hrs ago0x77b523fb6900f62af9f404fb7cfcfc1a08b7ecc0 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.338803909665
0xbf4ad5d4857ac87d8052788735bc80b6535d8fecee5def4a0ec5ee2b1d30ba5aAdd Liquidity575640692023-03-14 12:28:496 days 23 hrs ago0x343b2412745f5211596af10bef24f6c87f9b00d6 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.076554635523
0x84cb0c972bc4c31b90b1e0d028332cca22e4bc7756e3b3a815fde164af216171Add Liquidity575640232023-03-14 12:26:536 days 23 hrs ago0x343b2412745f5211596af10bef24f6c87f9b00d6 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.031669722819
0x29c956e784ec8a6dd3d8d21f53578dd933b916845b02a7c2ffa167f1e12229d7Add Liquidity575032872023-03-13 9:39:458 days 2 hrs ago0x343b2412745f5211596af10bef24f6c87f9b00d6 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.177757537457
0x37454a1d476d20115371acd3249310e378ee8bda1c44f782d97dfb8517500660Remove Liquidity...574561022023-03-12 17:17:208 days 18 hrs ago0xde01051a9f9343252e7a74219296c4387378fa68 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.039723029213
0xf1b7bbd0e2c32a19ca01003098bdf4501d996e469ebbcfda05d4eed6e42488fdRemove Liquidity574560512023-03-12 17:15:508 days 18 hrs ago0xde01051a9f9343252e7a74219296c4387378fa68 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.083721512519
0x6674a6f64efc674af036975b97510db949c1611ea1ca09dbee9e7294fecfaad2Remove Liquidity574385422023-03-12 8:04:009 days 3 hrs ago0x4375113e04f8a1132e699457239fad34e6ee4383 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.116902539226
0x1b60152116304bba003dcf620df7f8e314af2abc84fafc00af3965a94af105e9Remove Liquidity574384762023-03-12 8:01:199 days 3 hrs ago0x4375113e04f8a1132e699457239fad34e6ee4383 IN  0x46ac9383d3e23167be2e4e728a11a49643514ed30 FTM0.131428998576
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x55a15d9d61cea276daf8f033df4039e6286b07667cdd56edc837e532fde50187579287142023-03-19 17:31:481 day 18 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token33 FTM
0x824d61519db5a9cc92b21c4455f72070f6bd9e12923decf624f93c587408d617577361062023-03-16 23:42:474 days 12 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xa24b12943dd600052ba36a2543f3598c5b6baf3b4.414626910472387018 FTM
0x824d61519db5a9cc92b21c4455f72070f6bd9e12923decf624f93c587408d617577361062023-03-16 23:42:474 days 12 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed34.414626910472387018 FTM
0xd70b448d8e300423d69d3a677313a76f399957b2c7b23b1eac7e72d839c82d01576236032023-03-15 9:50:126 days 1 hr ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token3.5 FTM
0xb5af1fd10a32122afdd95dcf061ab528abe2d9066a85cafc5d1106a84f19c9ae576221472023-03-15 8:56:106 days 2 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30x488d39b4eb0a35d493fbd744611a410fc96bf8654,644.640238382670196519 FTM
0xb5af1fd10a32122afdd95dcf061ab528abe2d9066a85cafc5d1106a84f19c9ae576221472023-03-15 8:56:106 days 2 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed34,644.640238382670196519 FTM
0xe3a4f9092fed5ab326122aafc5bceb505b1ec4b43e117f64ecb5b710716a550c576220292023-03-15 8:53:046 days 2 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30x488d39b4eb0a35d493fbd744611a410fc96bf8651.874549318831465271 FTM
0xe3a4f9092fed5ab326122aafc5bceb505b1ec4b43e117f64ecb5b710716a550c576220292023-03-15 8:53:046 days 2 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed31.874549318831465271 FTM
0x04e255df22999c763296e32379bdb3c0fec450eda497dd52db53a4ea00635224575804182023-03-14 17:23:106 days 18 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token236.822984973790704883 FTM
0x37454a1d476d20115371acd3249310e378ee8bda1c44f782d97dfb8517500660574561022023-03-12 17:17:208 days 18 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xde01051a9f9343252e7a74219296c4387378fa6866.396062320818151443 FTM
0x37454a1d476d20115371acd3249310e378ee8bda1c44f782d97dfb8517500660574561022023-03-12 17:17:208 days 18 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed366.396062320818151443 FTM
0xce510338619f5d042ca73b057158d0b0f42ca81fd48e5088d2dd538624d36837569258142023-03-04 11:45:0416 days 23 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30x5e5c16513ffd42a593299d1953bf03e748bc7fb50.075604767358081043 FTM
0xce510338619f5d042ca73b057158d0b0f42ca81fd48e5088d2dd538624d36837569258142023-03-04 11:45:0416 days 23 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token4.624395232641918957 FTM
0x8790acb85dcae46f8a602d86a1063c44290e4df7cbe8a16e48a1c4e5a7af4439567012402023-03-01 0:52:3620 days 10 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token3.546551601844387329 FTM
0xbdcb79c0cfe370c408dabfaeafbd6bfe11e5e40b410a8968df0efc06e6a64579567010622023-03-01 0:48:4420 days 10 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token0.004601475428241173 FTM
0x0482eaa2c6daa125588ca4f841875f1c99457fdc7ca10a364c83d3344576e64c567009802023-03-01 0:46:5920 days 10 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xf9d287ddc3b7e7e0cc153d157b5aa1adaaaef24a1 wei
0x0482eaa2c6daa125588ca4f841875f1c99457fdc7ca10a364c83d3344576e64c567009802023-03-01 0:46:5920 days 10 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token0.10805796153234333 FTM
0x0fef4252a0baf8b38d20280856911e6a3a29bb27543241ac0a162631c2e6a719564507392023-02-24 22:35:1124 days 13 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30x91817a270fb9f03e00918fae83b3fe718c1426e80.034648484992459784 FTM
0x0fef4252a0baf8b38d20280856911e6a3a29bb27543241ac0a162631c2e6a719564507392023-02-24 22:35:1124 days 13 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed3 Fantom Finance: Wrapped Fantom Token2.115351515007540216 FTM
0xdfcc6470361f652a80874f28af0f8cec8e443cd397b1e0fa353d2b5849e77f25563100252023-02-22 17:11:0726 days 18 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xdea2d0e86f3b867b217c680638ef24f1bf87202027.631033066860954021 FTM
0xdfcc6470361f652a80874f28af0f8cec8e443cd397b1e0fa353d2b5849e77f25563100252023-02-22 17:11:0726 days 18 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed327.631033066860954021 FTM
0x684cf24555f9628742b51d7c6bf380a2b7a9166719ab39c7d2ce1f4cb51c34d8563099822023-02-22 17:10:0426 days 18 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xdea2d0e86f3b867b217c680638ef24f1bf8720201.496908468784807001 FTM
0x684cf24555f9628742b51d7c6bf380a2b7a9166719ab39c7d2ce1f4cb51c34d8563099822023-02-22 17:10:0426 days 18 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed31.496908468784807001 FTM
0x3157e60a8812ea8cb98f4d213757aa914e2524745be4858180da17c8ad7bc752561406392023-02-20 3:57:3129 days 7 hrs ago 0x46ac9383d3e23167be2e4e728a11a49643514ed30xdbe20622c6e570996e0c3fe824695d2d75d51d4014.696020796704225823 FTM
0x3157e60a8812ea8cb98f4d213757aa914e2524745be4858180da17c8ad7bc752561406392023-02-20 3:57:3129 days 7 hrs ago Fantom Finance: Wrapped Fantom Token 0x46ac9383d3e23167be2e4e728a11a49643514ed314.696020796704225823 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SolidexDepositZap

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2022-02-25
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.12;


interface IBaseV1Factory {
    function pairCodeHash() external pure returns (bytes32);
    function getPair(address tokenA, address token, bool stable) external view returns (address);
    function createPair(address tokenA, address tokenB, bool stable) external returns (address pair);
}

interface IBaseV1Pair {
    function burn(address to) external returns (uint amount0, uint amount1);
    function mint(address to) external returns (uint liquidity);
    function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function transfer(address recipient, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    function approve(address spender, uint value) external returns (bool);
}

interface IWFTM {
    function deposit() external payable returns (uint);
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external returns (uint);
}

interface ILpDepositor {
    function deposit(address pool, uint256 amount) external;
    function withdraw(address pool, uint256 amount) external;
    function tokenForPool(address pool) external view returns (IERC20);
}

contract SolidexDepositZap {

    IBaseV1Factory public immutable factory;
    IWFTM public immutable wftm;
    ILpDepositor public immutable lpDepositor;

    uint internal constant MINIMUM_LIQUIDITY = 10**3;
    bytes32 immutable pairCodeHash;

    mapping (address => IERC20) public depositTokenForPair;

    constructor(IBaseV1Factory _factory, IWFTM _wftm, ILpDepositor _lpDepositor) {
        factory = _factory;
        pairCodeHash = IBaseV1Factory(_factory).pairCodeHash();
        wftm = _wftm;
        lpDepositor = _lpDepositor;
    }

    receive() external payable {
        assert(msg.sender == address(wftm)); // only accept ETH via fallback from the WETH contract
    }

    function min(uint a, uint b) internal pure returns (uint) {
        return a < b ? a : b;
    }

    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }

    function sortTokens(address tokenA, address tokenB) public pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'BaseV1Router: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'BaseV1Router: ZERO_ADDRESS');
    }

    // calculates the CREATE2 address for a pair without making any external calls
    function pairFor(address tokenA, address tokenB, bool stable) public view returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint160(uint256(keccak256(abi.encodePacked(
            hex'ff',
            factory,
            keccak256(abi.encodePacked(token0, token1, stable)),
            pairCodeHash // init code hash
        )))));
    }

    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset
    function quoteLiquidity(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {
        require(amountA > 0, 'BaseV1Router: INSUFFICIENT_AMOUNT');
        require(reserveA > 0 && reserveB > 0, 'BaseV1Router: INSUFFICIENT_LIQUIDITY');
        amountB = amountA * reserveB / reserveA;
    }

    // fetches and sorts the reserves for a pair
    function getReserves(address tokenA, address tokenB, bool stable) public view returns (uint reserveA, uint reserveB) {
        (address token0,) = sortTokens(tokenA, tokenB);
        (uint reserve0, uint reserve1,) = IBaseV1Pair(pairFor(tokenA, tokenB, stable)).getReserves();
        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
    }

    function quoteAddLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint amountADesired,
        uint amountBDesired
    ) external view returns (uint amountA, uint amountB, uint liquidity) {
        // create the pair if it doesn't exist yet
        address _pair = factory.getPair(tokenA, tokenB, stable);
        (uint reserveA, uint reserveB) = (0,0);
        uint _totalSupply = 0;
        if (_pair != address(0)) {
            _totalSupply = IERC20(_pair).totalSupply();
            (reserveA, reserveB) = getReserves(tokenA, tokenB, stable);
        }
        if (reserveA == 0 && reserveB == 0) {
            (amountA, amountB) = (amountADesired, amountBDesired);
            liquidity = sqrt(amountA * amountB) - MINIMUM_LIQUIDITY;
        } else {

            uint amountBOptimal = quoteLiquidity(amountADesired, reserveA, reserveB);
            if (amountBOptimal <= amountBDesired) {
                (amountA, amountB) = (amountADesired, amountBOptimal);
                liquidity = min(amountA * _totalSupply / reserveA, amountB * _totalSupply / reserveB);
            } else {
                uint amountAOptimal = quoteLiquidity(amountBDesired, reserveB, reserveA);
                (amountA, amountB) = (amountAOptimal, amountBDesired);
                liquidity = min(amountA * _totalSupply / reserveA, amountB * _totalSupply / reserveB);
            }
        }
    }

    function quoteRemoveLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint liquidity
    ) external view returns (uint amountA, uint amountB) {
        // create the pair if it doesn't exist yet
        address _pair = factory.getPair(tokenA, tokenB, stable);

        if (_pair == address(0)) {
            return (0,0);
        }

        (uint reserveA, uint reserveB) = getReserves(tokenA, tokenB, stable);
        uint _totalSupply = IERC20(_pair).totalSupply();

        amountA = liquidity * reserveA / _totalSupply; // using balances ensures pro-rata distribution
        amountB = liquidity * reserveB / _totalSupply; // using balances ensures pro-rata distribution
    }

    function _addLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin
    ) internal returns (uint amountA, uint amountB) {
        require(amountADesired >= amountAMin);
        require(amountBDesired >= amountBMin);
        // create the pair if it doesn't exist yet
        address _pair = factory.getPair(tokenA, tokenB, stable);
        if (_pair == address(0)) {
            _pair = factory.createPair(tokenA, tokenB, stable);
        }
        (uint reserveA, uint reserveB) = getReserves(tokenA, tokenB, stable);
        if (reserveA == 0 && reserveB == 0) {
            (amountA, amountB) = (amountADesired, amountBDesired);
        } else {
            uint amountBOptimal = quoteLiquidity(amountADesired, reserveA, reserveB);
            if (amountBOptimal <= amountBDesired) {
                require(amountBOptimal >= amountBMin, 'BaseV1Router: INSUFFICIENT_B_AMOUNT');
                (amountA, amountB) = (amountADesired, amountBOptimal);
            } else {
                uint amountAOptimal = quoteLiquidity(amountBDesired, reserveB, reserveA);
                assert(amountAOptimal <= amountADesired);
                require(amountAOptimal >= amountAMin, 'BaseV1Router: INSUFFICIENT_A_AMOUNT');
                (amountA, amountB) = (amountAOptimal, amountBDesired);
            }
        }
    }

    function _getDepositToken(address pair) internal returns (IERC20) {
        IERC20 token = depositTokenForPair[pair];
        if (address(token) == address(0)) {
            IERC20(pair).approve(address(lpDepositor), type(uint).max);
            token = lpDepositor.tokenForPool(pair);
            depositTokenForPair[pair] = token;
        }
        return token;
    }

    function addLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to
    ) external returns (uint amountA, uint amountB, uint liquidity) {
        (amountA, amountB) = _addLiquidity(tokenA, tokenB, stable, amountADesired, amountBDesired, amountAMin, amountBMin);
        address pair = pairFor(tokenA, tokenB, stable);
        _safeTransferFrom(tokenA, msg.sender, pair, amountA);
        _safeTransferFrom(tokenB, msg.sender, pair, amountB);
        liquidity = IBaseV1Pair(pair).mint(address(this));

        IERC20 lpToken = _getDepositToken(pair);
        lpDepositor.deposit(pair, liquidity);
        lpToken.transfer(to, liquidity);
    }

    function addLiquidityFTM(
        address token,
        bool stable,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountFTMMin,
        address to
    ) external payable returns (uint amountToken, uint amountFTM, uint liquidity) {
        (amountToken, amountFTM) = _addLiquidity(
            token,
            address(wftm),
            stable,
            amountTokenDesired,
            msg.value,
            amountTokenMin,
            amountFTMMin
        );
        address pair = pairFor(token, address(wftm), stable);
        _safeTransferFrom(token, msg.sender, pair, amountToken);
        wftm.deposit{value: amountFTM}();
        assert(wftm.transfer(pair, amountFTM));

        liquidity = IBaseV1Pair(pair).mint(address(this));
        IERC20 lpToken = _getDepositToken(pair);
        lpDepositor.deposit(pair, liquidity);
        lpToken.transfer(to, liquidity);

        if (msg.value > amountFTM) _safeTransferFTM(msg.sender, msg.value - amountFTM);
    }

    // **** REMOVE LIQUIDITY ****
    function removeLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to
    ) public returns (uint amountA, uint amountB) {
        address pair = pairFor(tokenA, tokenB, stable);

        IERC20 lpToken = _getDepositToken(pair);
        lpToken.transferFrom(msg.sender, address(this), liquidity);
        lpDepositor.withdraw(pair, liquidity);

        IERC20(pair).transfer(pair, liquidity); // send liquidity to pair
        (uint amount0, uint amount1) = IBaseV1Pair(pair).burn(to);
        (address token0,) = sortTokens(tokenA, tokenB);
        (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0);
        require(amountA >= amountAMin, 'BaseV1Router: INSUFFICIENT_A_AMOUNT');
        require(amountB >= amountBMin, 'BaseV1Router: INSUFFICIENT_B_AMOUNT');
    }

    function removeLiquidityFTM(
        address token,
        bool stable,
        uint liquidity,
        uint amountTokenMin,
        uint amountFTMMin,
        address to
    ) public returns (uint amountToken, uint amountFTM) {
        (amountToken, amountFTM) = removeLiquidity(
            token,
            address(wftm),
            stable,
            liquidity,
            amountTokenMin,
            amountFTMMin,
            address(this)
        );
        _safeTransfer(token, to, amountToken);
        wftm.withdraw(amountFTM);
        _safeTransferFTM(to, amountFTM);
    }

    function _safeTransferFTM(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }

    function _safeTransfer(address token, address to, uint256 value) internal {
        require(token.code.length > 0);
        (bool success, bytes memory data) =
        token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
    }

    function _safeTransferFrom(address token, address from, address to, uint256 value) internal {
        require(token.code.length > 0);
        (bool success, bytes memory data) =
        token.call(abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IBaseV1Factory","name":"_factory","type":"address"},{"internalType":"contract IWFTM","name":"_wftm","type":"address"},{"internalType":"contract ILpDepositor","name":"_lpDepositor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountFTMMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"addLiquidityFTM","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountFTM","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositTokenForPair","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IBaseV1Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"name":"getReserves","outputs":[{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpDepositor","outputs":[{"internalType":"contract ILpDepositor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"}],"name":"pairFor","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"}],"name":"quoteAddLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"quoteRemoveLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"stable","type":"bool"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountFTMMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"removeLiquidityFTM","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountFTM","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"sortTokens","outputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"wftm","outputs":[{"internalType":"contract IWFTM","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040523480156200001257600080fd5b5060405162002100380380620021008339810160408190526200003591620000db565b6001600160a01b038316608081905260408051631355724960e31b81529051639aab9248916004808201926020929091908290030181865afa15801562000080573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a691906200012f565b60e0526001600160a01b0391821660a0521660c0525062000149565b6001600160a01b0381168114620000d857600080fd5b50565b600080600060608486031215620000f157600080fd5b8351620000fe81620000c2565b60208501519093506200011181620000c2565b60408501519092506200012481620000c2565b809150509250925092565b6000602082840312156200014257600080fd5b5051919050565b60805160a05160c05160e051611f07620001f9600039600061062801526000818161011c01528181610aaa01528181610c8501528181610e25015281816116fc015261179901526000818160d60152818161033a01528181610365015281816103b40152818161087c015281816108b2015281816108e7015261099101526000818161030601528181610446015281816105ed01528181610ff8015281816113e401526114850152611f076000f3fe6080604052600436106100c65760003560e01c80635e60dab51161007f57806395ef2b4b1161005957806395ef2b4b146102b457806398a0fb3c146102d4578063c45a0155146102f4578063f4f45b461461032857600080fd5b80635e60dab5146102465780636aa792b814610266578063790ba7b51461029457600080fd5b806302f283be1461010a5780633e7815ad1461015b5780634386e63c146101905780634c1ee03e146101b0578063544caa56146101d05780635b4265461461021057600080fd5b3661010557336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610103576101036119a3565b005b600080fd5b34801561011657600080fd5b5061013e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016757600080fd5b5061017b6101763660046119df565b61035c565b60408051928352602083019190915201610152565b34801561019c57600080fd5b5061017b6101ab366004611a46565b61043f565b3480156101bc57600080fd5b5061013e6101cb366004611a97565b6105a6565b3480156101dc57600080fd5b506101f06101eb366004611ae2565b6106ae565b604080516001600160a01b03938416815292909116602083015201610152565b34801561021c57600080fd5b5061013e61022b366004611b1b565b6000602081905290815260409020546001600160a01b031681565b34801561025257600080fd5b5061017b610261366004611a97565b6107a7565b6102796102743660046119df565b610871565b60408051938452602084019290925290820152606001610152565b3480156102a057600080fd5b506102796102af366004611b38565b610ba5565b3480156102c057600080fd5b5061017b6102cf366004611bbd565b610d67565b3480156102e057600080fd5b506102796102ef366004611c38565b610ff0565b34801561030057600080fd5b5061013e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033457600080fd5b5061013e7f000000000000000000000000000000000000000000000000000000000000000081565b60008061038e887f00000000000000000000000000000000000000000000000000000000000000008989898930610d67565b909250905061039e8884846111f0565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024016020604051808303816000875af1158015610405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104299190611c93565b5061043483826112df565b965096945050505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636801cc308888886040518463ffffffff1660e01b815260040161049493929190611cac565b602060405180830381865afa1580156104b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d59190611cd0565b90506001600160a01b0381166104f257600080925092505061059d565b6000806105008989896107a7565b915091506000836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190611c93565b9050806105758489611d03565b61057f9190611d22565b95508061058c8389611d03565b6105969190611d22565b9450505050505b94509492505050565b60008060006105b586866106ae565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015286151560f81b604882015291935091507f000000000000000000000000000000000000000000000000000000000000000090604901604051602081830303815290604052805190602001207f000000000000000000000000000000000000000000000000000000000000000060405160200161068c939291906001600160f81b0319815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b600080826001600160a01b0316846001600160a01b031614156107225760405162461bcd60e51b815260206004820152602160248201527f426173655631526f757465723a204944454e544943414c5f41444452455353456044820152605360f81b60648201526084015b60405180910390fd5b826001600160a01b0316846001600160a01b031610610742578284610745565b83835b90925090506001600160a01b0382166107a05760405162461bcd60e51b815260206004820152601a60248201527f426173655631526f757465723a205a45524f5f414444524553530000000000006044820152606401610719565b9250929050565b60008060006107b686866106ae565b5090506000806107c78888886105a6565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610804573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108289190611d5b565b506001600160701b031691506001600160701b03169150826001600160a01b0316886001600160a01b03161461085f578082610862565b81815b90999098509650505050505050565b60008060006108a5897f00000000000000000000000000000000000000000000000000000000000000008a8a348b8b6113ad565b909350915060006108d78a7f00000000000000000000000000000000000000000000000000000000000000008b6105a6565b90506108e58a3383876115cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0846040518263ffffffff1660e01b815260040160206040518083038185885af1158015610945573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061096a9190611c93565b5060405163a9059cbb60e01b81526001600160a01b038281166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190611da0565b610a0a57610a0a6119a3565b6040516335313c2160e11b81523060048201526001600160a01b03821690636a627842906024016020604051808303816000875af1158015610a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a749190611c93565b91506000610a81826116c3565b6040516311f9fbc960e21b81526001600160a01b038481166004830152602482018690529192507f0000000000000000000000000000000000000000000000000000000000000000909116906347e7ef2490604401600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038981166004830152602482018790528416925063a9059cbb91506044016020604051808303816000875af1158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190611da0565b5083341115610b9757610b9733610b928634611dbd565b6112df565b505096509650969350505050565b6000806000610bb98b8b8b8b8b8b8b6113ad565b90935091506000610bcb8c8c8c6105a6565b9050610bd98c3383876115cb565b610be58b3383866115cb565b6040516335313c2160e11b81523060048201526001600160a01b03821690636a627842906024016020604051808303816000875af1158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611c93565b91506000610c5c826116c3565b6040516311f9fbc960e21b81526001600160a01b038481166004830152602482018690529192507f0000000000000000000000000000000000000000000000000000000000000000909116906347e7ef2490604401600060405180830381600087803b158015610ccb57600080fd5b505af1158015610cdf573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038981166004830152602482018790528416925063a9059cbb91506044016020604051808303816000875af1158015610d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d569190611da0565b505050985098509895505050505050565b6000806000610d778a8a8a6105a6565b90506000610d84826116c3565b6040516323b872dd60e01b8152336004820152306024820152604481018a90529091506001600160a01b038216906323b872dd906064016020604051808303816000875af1158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190611da0565b5060405163f3fef3a360e01b81526001600160a01b038381166004830152602482018a90527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610e6957600080fd5b505af1158015610e7d573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b03851660048201819052602482018c9052925063a9059cbb91506044016020604051808303816000875af1158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611da0565b5060405163226bf2d160e21b81526001600160a01b03868116600483015260009182918516906389afcb449060240160408051808303816000875af1158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190611dd4565b915091506000610f748e8e6106ae565b509050806001600160a01b03168e6001600160a01b031614610f97578183610f9a565b82825b909750955089871015610fbf5760405162461bcd60e51b815260040161071990611df8565b88861015610fdf5760405162461bcd60e51b815260040161071990611e3b565b505050505097509795505050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636801cc308a8a8a6040518463ffffffff1660e01b815260040161104693929190611cac565b602060405180830381865afa158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190611cd0565b9050600080806001600160a01b0384161561111157836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190611c93565b905061110b8c8c8c6107a7565b90935091505b8215801561111d575081155b1561114e578896508795506103e861113d611138888a611d03565b61183b565b6111479190611dbd565b94506111e1565b600061115b8a85856118ab565b90508881116111a35789975095508561119c84611178848b611d03565b6111829190611d22565b8461118d858b611d03565b6111979190611d22565b61198b565b95506111df565b60006111b08a85876118ab565b98508997508890506111db856111c68584611d03565b6111d09190611d22565b8561118d868c611d03565b9650505b505b50505050955095509592505050565b6000836001600160a01b03163b1161120757600080fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916112639190611e7e565b6000604051808303816000865af19150503d80600081146112a0576040519150601f19603f3d011682016040523d82523d6000602084013e6112a5565b606091505b50915091508180156112cf5750805115806112cf5750808060200190518101906112cf9190611da0565b6112d857600080fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040516113099190611e7e565b60006040518083038185875af1925050503d8060008114611346576040519150601f19603f3d011682016040523d82523d6000602084013e61134b565b606091505b50509050806113a85760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610719565b505050565b600080838610156113bd57600080fd5b828510156113ca57600080fd5b6040516306801cc360e41b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636801cc309061141d908d908d908d90600401611cac565b602060405180830381865afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190611cd0565b90506001600160a01b038116611504576040516320b7f73960e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906382dfdce4906114be908d908d908d90600401611cac565b6020604051808303816000875af11580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190611cd0565b90505b6000806115128c8c8c6107a7565b91509150816000148015611524575080155b15611534578894508793506115bc565b60006115418a84846118ab565b9050888111611575578681101561156a5760405162461bcd60e51b815260040161071990611e3b565b8995509350836115ba565b60006115828a84866118ab565b90508a811115611594576115946119a3565b888110156115b45760405162461bcd60e51b815260040161071990611df8565b95508894505b505b50505097509795505050505050565b6000846001600160a01b03163b116115e257600080fd5b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916116469190611e7e565b6000604051808303816000865af19150503d8060008114611683576040519150601f19603f3d011682016040523d82523d6000602084013e611688565b606091505b50915091508180156116b25750805115806116b25750808060200190518101906116b29190611da0565b6116bb57600080fd5b505050505050565b6001600160a01b03808216600090815260208190526040812054909116806118355760405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af1158015611755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117799190611da0565b50604051630d816d3360e41b81526001600160a01b0384811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063d816d33090602401602060405180830381865afa1580156117e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118049190611cd0565b6001600160a01b03848116600090815260208190526040902080546001600160a01b03191691831691909117905590505b92915050565b6000600382111561189c5750806000611855600283611d22565b611860906001611eb9565b90505b818110156118965790508060028161187b8186611d22565b6118859190611eb9565b61188f9190611d22565b9050611863565b50919050565b81156118a6575060015b919050565b60008084116119065760405162461bcd60e51b815260206004820152602160248201527f426173655631526f757465723a20494e53554646494349454e545f414d4f554e6044820152601560fa1b6064820152608401610719565b6000831180156119165750600082115b61196e5760405162461bcd60e51b8152602060048201526024808201527f426173655631526f757465723a20494e53554646494349454e545f4c495155496044820152634449545960e01b6064820152608401610719565b826119798386611d03565b6119839190611d22565b949350505050565b600081831061199a578161199c565b825b9392505050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03811681146119ce57600080fd5b50565b80151581146119ce57600080fd5b60008060008060008060c087890312156119f857600080fd5b8635611a03816119b9565b95506020870135611a13816119d1565b945060408701359350606087013592506080870135915060a0870135611a38816119b9565b809150509295509295509295565b60008060008060808587031215611a5c57600080fd5b8435611a67816119b9565b93506020850135611a77816119b9565b92506040850135611a87816119d1565b9396929550929360600135925050565b600080600060608486031215611aac57600080fd5b8335611ab7816119b9565b92506020840135611ac7816119b9565b91506040840135611ad7816119d1565b809150509250925092565b60008060408385031215611af557600080fd5b8235611b00816119b9565b91506020830135611b10816119b9565b809150509250929050565b600060208284031215611b2d57600080fd5b813561199c816119b9565b600080600080600080600080610100898b031215611b5557600080fd5b8835611b60816119b9565b97506020890135611b70816119b9565b96506040890135611b80816119d1565b9550606089013594506080890135935060a0890135925060c0890135915060e0890135611bac816119b9565b809150509295985092959890939650565b600080600080600080600060e0888a031215611bd857600080fd5b8735611be3816119b9565b96506020880135611bf3816119b9565b95506040880135611c03816119d1565b9450606088013593506080880135925060a0880135915060c0880135611c28816119b9565b8091505092959891949750929550565b600080600080600060a08688031215611c5057600080fd5b8535611c5b816119b9565b94506020860135611c6b816119b9565b93506040860135611c7b816119d1565b94979396509394606081013594506080013592915050565b600060208284031215611ca557600080fd5b5051919050565b6001600160a01b039384168152919092166020820152901515604082015260600190565b600060208284031215611ce257600080fd5b815161199c816119b9565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611d1d57611d1d611ced565b500290565b600082611d3f57634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160701b03811681146118a657600080fd5b600080600060608486031215611d7057600080fd5b611d7984611d44565b9250611d8760208501611d44565b9150604084015163ffffffff81168114611ad757600080fd5b600060208284031215611db257600080fd5b815161199c816119d1565b600082821015611dcf57611dcf611ced565b500390565b60008060408385031215611de757600080fd5b505080516020909101519092909150565b60208082526023908201527f426173655631526f757465723a20494e53554646494349454e545f415f414d4f60408201526215539560ea1b606082015260800190565b60208082526023908201527f426173655631526f757465723a20494e53554646494349454e545f425f414d4f60408201526215539560ea1b606082015260800190565b6000825160005b81811015611e9f5760208186018101518583015201611e85565b81811115611eae576000828501525b509190910192915050565b60008219821115611ecc57611ecc611ced565b50019056fea2646970667358221220e4727272fbce100b8d0dfa98836fae0dc09a8abf6ab0fcaa91bf1249b9b679c164736f6c634300080c00330000000000000000000000003faab499b519fdc5819e3d7ed0c26111904cbc2800000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c8300000000000000000000000026e1a0d851cf28e697870e1b7f053b605c8b060f

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

0000000000000000000000003faab499b519fdc5819e3d7ed0c26111904cbc2800000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c8300000000000000000000000026e1a0d851cf28e697870e1b7f053b605c8b060f

-----Decoded View---------------
Arg [0] : _factory (address): 0x3faab499b519fdc5819e3d7ed0c26111904cbc28
Arg [1] : _wftm (address): 0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83
Arg [2] : _lpDepositor (address): 0x26e1a0d851cf28e697870e1b7f053b605c8b060f

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000003faab499b519fdc5819e3d7ed0c26111904cbc28
Arg [1] : 00000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83
Arg [2] : 00000000000000000000000026e1a0d851cf28e697870e1b7f053b605c8b060f


Deployed ByteCode Sourcemap

1431:11282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2046:10;-1:-1:-1;;;;;2068:4:0;2046:27;;2039:35;;;;:::i;:::-;1431:11282;;;;;1547:41;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;330:32:1;;;312:51;;300:2;285:18;1547:41:0;;;;;;;;11199:609;;;;;;;;;;-1:-1:-1;11199:609:0;;;;;:::i;:::-;;:::i;:::-;;;;1542:25:1;;;1598:2;1583:18;;1576:34;;;;1515:18;11199:609:0;1368:248:1;5747:736:0;;;;;;;;;;-1:-1:-1;5747:736:0;;;;;:::i;:::-;;:::i;2992:415::-;;;;;;;;;;-1:-1:-1;2992:415:0;;;;;:::i;:::-;;:::i;2561:339::-;;;;;;;;;;-1:-1:-1;2561:339:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;3577:15:1;;;3559:34;;3629:15;;;;3624:2;3609:18;;3602:43;3494:18;2561:339:0;3347:304:1;1691:54:0;;;;;;;;;;-1:-1:-1;1691:54:0;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1691:54:0;;;3897:381;;;;;;;;;;-1:-1:-1;3897:381:0;;;;;:::i;:::-;;:::i;9184:1032::-;;;;;;:::i;:::-;;:::i;:::-;;;;4331:25:1;;;4387:2;4372:18;;4365:34;;;;4415:18;;;4408:34;4319:2;4304:18;9184:1032:0;4129:319:1;8363:813:0;;;;;;;;;;-1:-1:-1;8363:813:0;;;;;:::i;:::-;;:::i;10259:932::-;;;;;;;;;;-1:-1:-1;10259:932:0;;;;;:::i;:::-;;:::i;4286:1453::-;;;;;;;;;;-1:-1:-1;4286:1453:0;;;;;:::i;:::-;;:::i;1467:39::-;;;;;;;;;;;;;;;1513:27;;;;;;;;;;;;;;;11199:609;11400:16;11418:14;11472:203;11502:5;11530:4;11550:6;11571:9;11595:14;11624:12;11659:4;11472:15;:203::i;:::-;11445:230;;-1:-1:-1;11445:230:0;-1:-1:-1;11686:37:0;11700:5;11707:2;11445:230;11686:13;:37::i;:::-;11734:24;;-1:-1:-1;;;11734:24:0;;;;;7538:25:1;;;11734:4:0;-1:-1:-1;;;;;11734:13:0;;;;7511:18:1;;11734:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11769:31;11786:2;11790:9;11769:16;:31::i;:::-;11199:609;;;;;;;;;:::o;5747:736::-;5904:12;5918;5995:13;6011:7;-1:-1:-1;;;;;6011:15:0;;6027:6;6035;6043;6011:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5995:55;-1:-1:-1;;;;;;6067:19:0;;6063:64;;6111:1;6113;6103:12;;;;;;;6063:64;6140:13;6155;6172:35;6184:6;6192;6200;6172:11;:35::i;:::-;6139:68;;;;6218:17;6245:5;-1:-1:-1;;;;;6238:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6218:47;-1:-1:-1;6218:47:0;6288:20;6300:8;6288:9;:20;:::i;:::-;:35;;;;:::i;:::-;6278:45;-1:-1:-1;6415:12:0;6392:20;6404:8;6392:9;:20;:::i;:::-;:35;;;;:::i;:::-;6382:45;;5932:551;;;;5747:736;;;;;;;;:::o;2992:415::-;3075:12;3101:14;3117;3135:26;3146:6;3154;3135:10;:26::i;:::-;3298:40;;-1:-1:-1;;9185:2:1;9181:15;;;9177:24;;3298:40:0;;;9165:37:1;9236:15;;;9232:24;9218:12;;;9211:46;9303:14;;9296:22;9291:3;9287:32;9273:12;;;9266:54;3100:61:0;;-1:-1:-1;3100:61:0;-1:-1:-1;3266:7:0;;9336:12:1;;3298:40:0;;;;;;;;;;;;3288:51;;;;;;3354:12;3213:182;;;;;;;;;-1:-1:-1;;;;;;9666:26:1;;9729:2;9725:15;;;;-1:-1:-1;;9721:53:1;9717:1;9708:11;;9701:74;9800:2;9791:12;;9784:28;;;;9837:2;9828:12;;9821:28;9874:2;9865:12;;9359:524;3213:182:0;;;;-1:-1:-1;;3213:182:0;;;;;;;;;3203:193;;3213:182;3203:193;;;;;2992:415;-1:-1:-1;;;;;;2992:415:0:o;2561:339::-;2634:14;2650;2695:6;-1:-1:-1;;;;;2685:16:0;:6;-1:-1:-1;;;;;2685:16:0;;;2677:62;;;;-1:-1:-1;;;2677:62:0;;10090:2:1;2677:62:0;;;10072:21:1;10129:2;10109:18;;;10102:30;10168:34;10148:18;;;10141:62;-1:-1:-1;;;10219:18:1;;;10212:31;10260:19;;2677:62:0;;;;;;;;;2778:6;-1:-1:-1;;;;;2769:15:0;:6;-1:-1:-1;;;;;2769:15:0;;:53;;2807:6;2815;2769:53;;;2788:6;2796;2769:53;2750:72;;-1:-1:-1;2750:72:0;-1:-1:-1;;;;;;2841:20:0;;2833:59;;;;-1:-1:-1;;;2833:59:0;;10492:2:1;2833:59:0;;;10474:21:1;10531:2;10511:18;;;10504:30;10570:28;10550:18;;;10543:56;10616:18;;2833:59:0;10290:350:1;2833:59:0;2561:339;;;;;:::o;3897:381::-;3984:13;3999;4026:14;4045:26;4056:6;4064;4045:10;:26::i;:::-;4025:46;;;4083:13;4098;4128:31;4136:6;4144;4152;4128:7;:31::i;:::-;-1:-1:-1;;;;;4116:56:0;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4082:92;-1:-1:-1;;;;;4082:92:0;;;-1:-1:-1;;;;;4082:92:0;;;4218:6;-1:-1:-1;;;;;4208:16:0;:6;-1:-1:-1;;;;;4208:16:0;;:62;;4251:8;4261;4208:62;;;4228:8;4238;4208:62;4185:85;;;;-1:-1:-1;3897:381:0;-1:-1:-1;;;;;;;3897:381:0:o;9184:1032::-;9401:16;9419:14;9435;9489:206;9517:5;9545:4;9565:6;9586:18;9619:9;9643:14;9672:12;9489:13;:206::i;:::-;9462:233;;-1:-1:-1;9462:233:0;-1:-1:-1;9706:12:0;9721:37;9729:5;9744:4;9751:6;9721:7;:37::i;:::-;9706:52;;9769:55;9787:5;9794:10;9806:4;9812:11;9769:17;:55::i;:::-;9835:4;-1:-1:-1;;;;;9835:12:0;;9855:9;9835:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9885:30:0;;-1:-1:-1;;;9885:30:0;;-1:-1:-1;;;;;11485:32:1;;;9885:30:0;;;11467:51:1;11534:18;;;11527:34;;;9885:4:0;:13;;;;11440:18:1;;9885:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9878:38;;;;:::i;:::-;9941:37;;-1:-1:-1;;;9941:37:0;;9972:4;9941:37;;;312:51:1;-1:-1:-1;;;;;9941:22:0;;;;;285:18:1;;9941:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9929:49;;9989:14;10006:22;10023:4;10006:16;:22::i;:::-;10039:36;;-1:-1:-1;;;10039:36:0;;-1:-1:-1;;;;;11485:32:1;;;10039:36:0;;;11467:51:1;11534:18;;;11527:34;;;9989:39:0;;-1:-1:-1;10039:11:0;:19;;;;;;11440:18:1;;10039:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10086:31:0;;-1:-1:-1;;;10086:31:0;;-1:-1:-1;;;;;11485:32:1;;;10086:31:0;;;11467:51:1;11534:18;;;11527:34;;;10086:16:0;;;-1:-1:-1;10086:16:0;;-1:-1:-1;11440:18:1;;10086:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10146:9;10134;:21;10130:78;;;10157:51;10174:10;10186:21;10198:9;10186;:21;:::i;:::-;10157:16;:51::i;:::-;9451:765;;9184:1032;;;;;;;;;;:::o;8363:813::-;8615:12;8629;8643:14;8691:93;8705:6;8713;8721;8729:14;8745;8761:10;8773;8691:13;:93::i;:::-;8670:114;;-1:-1:-1;8670:114:0;-1:-1:-1;8795:12:0;8810:31;8818:6;8826;8834;8810:7;:31::i;:::-;8795:46;;8852:52;8870:6;8878:10;8890:4;8896:7;8852:17;:52::i;:::-;8915;8933:6;8941:10;8953:4;8959:7;8915:17;:52::i;:::-;8990:37;;-1:-1:-1;;;8990:37:0;;9021:4;8990:37;;;312:51:1;-1:-1:-1;;;;;8990:22:0;;;;;285:18:1;;8990:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8978:49;;9040:14;9057:22;9074:4;9057:16;:22::i;:::-;9090:36;;-1:-1:-1;;;9090:36:0;;-1:-1:-1;;;;;11485:32:1;;;9090:36:0;;;11467:51:1;11534:18;;;11527:34;;;9040:39:0;;-1:-1:-1;9090:11:0;:19;;;;;;11440:18:1;;9090:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9137:31:0;;-1:-1:-1;;;9137:31:0;;-1:-1:-1;;;;;11485:32:1;;;9137:31:0;;;11467:51:1;11534:18;;;11527:34;;;9137:16:0;;;-1:-1:-1;9137:16:0;;-1:-1:-1;11440:18:1;;9137:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8659:517;;8363:813;;;;;;;;;;;;:::o;10259:932::-;10477:12;10491;10516;10531:31;10539:6;10547;10555;10531:7;:31::i;:::-;10516:46;;10575:14;10592:22;10609:4;10592:16;:22::i;:::-;10625:58;;-1:-1:-1;;;10625:58:0;;10646:10;10625:58;;;12192:34:1;10666:4:0;12242:18:1;;;12235:43;12294:18;;;12287:34;;;10575:39:0;;-1:-1:-1;;;;;;10625:20:0;;;;;12127:18:1;;10625:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10694:37:0;;-1:-1:-1;;;10694:37:0;;-1:-1:-1;;;;;11485:32:1;;;10694:37:0;;;11467:51:1;11534:18;;;11527:34;;;10694:11:0;:20;;;;11440:18:1;;10694:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10744:38:0;;-1:-1:-1;;;10744:38:0;;-1:-1:-1;;;;;10744:21:0;;:38;;;11467:51:1;;;11534:18;;;11527:34;;;10744:21:0;-1:-1:-1;10744:21:0;;-1:-1:-1;11440:18:1;;10744:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10850:26:0;;-1:-1:-1;;;10850:26:0;;-1:-1:-1;;;;;330:32:1;;;10850:26:0;;;312:51:1;10820:12:0;;;;10850:22;;;;;285:18:1;;10850:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10819:57;;;;10888:14;10907:26;10918:6;10926;10907:10;:26::i;:::-;10887:46;;;10975:6;-1:-1:-1;;;;;10965:16:0;:6;-1:-1:-1;;;;;10965:16:0;;:58;;11006:7;11015;10965:58;;;10985:7;10994;10965:58;10944:79;;-1:-1:-1;10944:79:0;-1:-1:-1;11042:21:0;;;;11034:69;;;;-1:-1:-1;;;11034:69:0;;;;;;;:::i;:::-;11133:10;11122:7;:21;;11114:69;;;;-1:-1:-1;;;11114:69:0;;;;;;;:::i;:::-;10505:686;;;;;10259:932;;;;;;;;;;:::o;4286:1453::-;4475:12;4489;4503:14;4582:13;4598:7;-1:-1:-1;;;;;4598:15:0;;4614:6;4622;4630;4598:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4582:55;-1:-1:-1;4649:13:0;;;-1:-1:-1;;;;;4733:19:0;;;4729:167;;4791:5;-1:-1:-1;;;;;4784:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4769:42;;4849:35;4861:6;4869;4877;4849:11;:35::i;:::-;4826:58;;-1:-1:-1;4826:58:0;-1:-1:-1;4729:167:0;4910:13;;:30;;;;-1:-1:-1;4927:13:0;;4910:30;4906:826;;;4979:14;;-1:-1:-1;4995:14:0;;-1:-1:-1;1640:5:0;5037:23;5042:17;4995:14;4979;5042:17;:::i;:::-;5037:4;:23::i;:::-;:43;;;;:::i;:::-;5025:55;;4906:826;;;5115:19;5137:50;5152:14;5168:8;5178;5137:14;:50::i;:::-;5115:72;;5224:14;5206;:32;5202:519;;5281:14;;-1:-1:-1;5297:14:0;-1:-1:-1;5297:14:0;5343:73;5372:8;5347:22;5357:12;5281:14;5347:22;:::i;:::-;:33;;;;:::i;:::-;5407:8;5382:22;5392:12;5382:7;:22;:::i;:::-;:33;;;;:::i;:::-;5343:3;:73::i;:::-;5331:85;;5202:519;;;5457:19;5479:50;5494:14;5510:8;5520;5479:14;:50::i;:::-;5457:72;-1:-1:-1;5586:14:0;;-1:-1:-1;5457:72:0;;-1:-1:-1;5632:73:0;5661:8;5636:22;5646:12;5457:72;5636:22;:::i;:::-;:33;;;;:::i;:::-;5696:8;5671:22;5681:12;5671:7;:22;:::i;5632:73::-;5620:85;;5438:283;5202:519;5098:634;4906:826;4519:1220;;;;4286:1453;;;;;;;;;:::o;12020:327::-;12133:1;12113:5;-1:-1:-1;;;;;12113:17:0;;:21;12105:30;;;;;;12202:59;;;-1:-1:-1;;;;;11485:32:1;;;12202:59:0;;;11467:51:1;11534:18;;;;11527:34;;;12202:59:0;;;;;;;;;;11440:18:1;;;;12202:59:0;;;;;;;-1:-1:-1;;;;;12202:59:0;-1:-1:-1;;;12202:59:0;;;12191:71;;-1:-1:-1;;;;12191:10:0;;;;:71;;12202:59;12191:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12146:116;;;;12281:7;:57;;;;-1:-1:-1;12293:11:0;;:16;;:44;;;12324:4;12313:24;;;;;;;;;;;;:::i;:::-;12273:66;;;;;;12094:253;;12020:327;;;:::o;11816:196::-;11925:12;;;11887;11925;;;;;;;;;-1:-1:-1;;;;;11904:7:0;;;11918:5;;11904:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11886:52;;;11957:7;11949:55;;;;-1:-1:-1;;;11949:55:0;;14155:2:1;11949:55:0;;;14137:21:1;14194:2;14174:18;;;14167:30;14233:34;14213:18;;;14206:62;-1:-1:-1;;;14284:18:1;;;14277:33;14327:19;;11949:55:0;13953:399:1;11949:55:0;11875:137;11816:196;;:::o;6491:1478::-;6723:12;6737;6788:10;6770:14;:28;;6762:37;;;;;;6836:10;6818:14;:28;;6810:37;;;;;;6926:39;;-1:-1:-1;;;6926:39:0;;6910:13;;-1:-1:-1;;;;;6926:7:0;:15;;;;:39;;6942:6;;6950;;6958;;6926:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6910:55;-1:-1:-1;;;;;;6980:19:0;;6976:102;;7024:42;;-1:-1:-1;;;7024:42:0;;-1:-1:-1;;;;;7024:7:0;:18;;;;:42;;7043:6;;7051;;7059;;7024:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7016:50;;6976:102;7089:13;7104;7121:35;7133:6;7141;7149;7121:11;:35::i;:::-;7088:68;;;;7171:8;7183:1;7171:13;:30;;;;-1:-1:-1;7188:13:0;;7171:30;7167:795;;;7240:14;;-1:-1:-1;7256:14:0;;-1:-1:-1;7167:795:0;;;7304:19;7326:50;7341:14;7357:8;7367;7326:14;:50::i;:::-;7304:72;;7413:14;7395;:32;7391:560;;7474:10;7456:14;:28;;7448:76;;;;-1:-1:-1;;;7448:76:0;;;;;;;:::i;:::-;7565:14;;-1:-1:-1;7581:14:0;-1:-1:-1;7581:14:0;7391:560;;;7637:19;7659:50;7674:14;7690:8;7700;7659:14;:50::i;:::-;7637:72;;7753:14;7735;:32;;7728:40;;;;:::i;:::-;7813:10;7795:14;:28;;7787:76;;;;-1:-1:-1;;;7787:76:0;;;;;;;:::i;:::-;7904:14;-1:-1:-1;7920:14:0;;-1:-1:-1;7391:560:0;7289:673;7167:795;6751:1218;;;6491:1478;;;;;;;;;;:::o;12355:355::-;12486:1;12466:5;-1:-1:-1;;;;;12466:17:0;;:21;12458:30;;;;;;12555:69;;;-1:-1:-1;;;;;12210:15:1;;;12555:69:0;;;12192:34:1;12262:15;;;12242:18;;;12235:43;12294:18;;;;12287:34;;;12555:69:0;;;;;;;;;;12127:18:1;;;;12555:69:0;;;;;;;-1:-1:-1;;;;;12555:69:0;-1:-1:-1;;;12555:69:0;;;12544:81;;-1:-1:-1;;;;12544:10:0;;;;:81;;12555:69;12544:81;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12499:126;;;;12644:7;:57;;;;-1:-1:-1;12656:11:0;;:16;;:44;;;12687:4;12676:24;;;;;;;;;;;;:::i;:::-;12636:66;;;;;;12447:263;;12355:355;;;;:::o;7977:378::-;-1:-1:-1;;;;;8069:25:0;;;8035:6;8069:25;;;;;;;;;;;8035:6;;8069:25;8109:28;8105:220;;8154:58;;-1:-1:-1;;;8154:58:0;;-1:-1:-1;;;;;8183:11:0;11485:32:1;;8154:58:0;;;11467:51:1;-1:-1:-1;;11534:18:1;;;11527:34;8154:20:0;;;;;11440:18:1;;8154:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8235:30:0;;-1:-1:-1;;;8235:30:0;;-1:-1:-1;;;;;330:32:1;;;8235:30:0;;;312:51:1;8235:11:0;:24;;;;285:18:1;;8235:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8280:25:0;;;:19;:25;;;;;;;;;;:33;;-1:-1:-1;;;;;;8280:33:0;;;;;;;;;;;-1:-1:-1;8105:220:0;8342:5;7977:378;-1:-1:-1;;7977:378:0:o;2250:303::-;2295:6;2322:1;2318;:5;2314:232;;;-1:-1:-1;2344:1:0;2360:6;2369:5;2373:1;2344;2369:5;:::i;:::-;:9;;2377:1;2369:9;:::i;:::-;2360:18;;2393:92;2404:1;2400;:5;2393:92;;;2430:1;-1:-1:-1;2430:1:0;2468;2430;2455:5;2430:1;2455;:5;:::i;:::-;:9;;;;:::i;:::-;2454:15;;;;:::i;:::-;2450:19;;2393:92;;;2325:171;2250:303;;;:::o;2314:232::-;2506:6;;2502:44;;-1:-1:-1;2533:1:0;2502:44;2250:303;;;:::o;3520:319::-;3611:12;3654:1;3644:7;:11;3636:57;;;;-1:-1:-1;;;3636:57:0;;14961:2:1;3636:57:0;;;14943:21:1;15000:2;14980:18;;;14973:30;15039:34;15019:18;;;15012:62;-1:-1:-1;;;15090:18:1;;;15083:31;15131:19;;3636:57:0;14759:397:1;3636:57:0;3723:1;3712:8;:12;:28;;;;;3739:1;3728:8;:12;3712:28;3704:77;;;;-1:-1:-1;;;3704:77:0;;15363:2:1;3704:77:0;;;15345:21:1;15402:2;15382:18;;;15375:30;15441:34;15421:18;;;15414:62;-1:-1:-1;;;15492:18:1;;;15485:34;15536:19;;3704:77:0;15161:400:1;3704:77:0;3823:8;3802:18;3812:8;3802:7;:18;:::i;:::-;:29;;;;:::i;:::-;3792:39;3520:319;-1:-1:-1;;;;3520:319:0:o;2145:97::-;2197:4;2225:1;2221;:5;:13;;2233:1;2221:13;;;2229:1;2221:13;2214:20;2145:97;-1:-1:-1;;;2145:97:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;374:131;-1:-1:-1;;;;;449:31:1;;439:42;;429:70;;495:1;492;485:12;429:70;374:131;:::o;510:118::-;596:5;589:13;582:21;575:5;572:32;562:60;;618:1;615;608:12;633:730;734:6;742;750;758;766;774;827:3;815:9;806:7;802:23;798:33;795:53;;;844:1;841;834:12;795:53;883:9;870:23;902:31;927:5;902:31;:::i;:::-;952:5;-1:-1:-1;1009:2:1;994:18;;981:32;1022:30;981:32;1022:30;:::i;:::-;1071:7;-1:-1:-1;1125:2:1;1110:18;;1097:32;;-1:-1:-1;1176:2:1;1161:18;;1148:32;;-1:-1:-1;1227:3:1;1212:19;;1199:33;;-1:-1:-1;1284:3:1;1269:19;;1256:33;1298;1256;1298;:::i;:::-;1350:7;1340:17;;;633:730;;;;;;;;:::o;1621:592::-;1704:6;1712;1720;1728;1781:3;1769:9;1760:7;1756:23;1752:33;1749:53;;;1798:1;1795;1788:12;1749:53;1837:9;1824:23;1856:31;1881:5;1856:31;:::i;:::-;1906:5;-1:-1:-1;1963:2:1;1948:18;;1935:32;1976:33;1935:32;1976:33;:::i;:::-;2028:7;-1:-1:-1;2087:2:1;2072:18;;2059:32;2100:30;2059:32;2100:30;:::i;:::-;1621:592;;;;-1:-1:-1;2149:7:1;;2203:2;2188:18;2175:32;;-1:-1:-1;;1621:592:1:o;2218:523::-;2292:6;2300;2308;2361:2;2349:9;2340:7;2336:23;2332:32;2329:52;;;2377:1;2374;2367:12;2329:52;2416:9;2403:23;2435:31;2460:5;2435:31;:::i;:::-;2485:5;-1:-1:-1;2542:2:1;2527:18;;2514:32;2555:33;2514:32;2555:33;:::i;:::-;2607:7;-1:-1:-1;2666:2:1;2651:18;;2638:32;2679:30;2638:32;2679:30;:::i;:::-;2728:7;2718:17;;;2218:523;;;;;:::o;2954:388::-;3022:6;3030;3083:2;3071:9;3062:7;3058:23;3054:32;3051:52;;;3099:1;3096;3089:12;3051:52;3138:9;3125:23;3157:31;3182:5;3157:31;:::i;:::-;3207:5;-1:-1:-1;3264:2:1;3249:18;;3236:32;3277:33;3236:32;3277:33;:::i;:::-;3329:7;3319:17;;;2954:388;;;;;:::o;3656:247::-;3715:6;3768:2;3756:9;3747:7;3743:23;3739:32;3736:52;;;3784:1;3781;3774:12;3736:52;3823:9;3810:23;3842:31;3867:5;3842:31;:::i;4453:941::-;4572:6;4580;4588;4596;4604;4612;4620;4628;4681:3;4669:9;4660:7;4656:23;4652:33;4649:53;;;4698:1;4695;4688:12;4649:53;4737:9;4724:23;4756:31;4781:5;4756:31;:::i;:::-;4806:5;-1:-1:-1;4863:2:1;4848:18;;4835:32;4876:33;4835:32;4876:33;:::i;:::-;4928:7;-1:-1:-1;4987:2:1;4972:18;;4959:32;5000:30;4959:32;5000:30;:::i;:::-;5049:7;-1:-1:-1;5103:2:1;5088:18;;5075:32;;-1:-1:-1;5154:3:1;5139:19;;5126:33;;-1:-1:-1;5206:3:1;5191:19;;5178:33;;-1:-1:-1;5258:3:1;5243:19;;5230:33;;-1:-1:-1;5315:3:1;5300:19;;5287:33;5329;5287;5329;:::i;:::-;5381:7;5371:17;;;4453:941;;;;;;;;;;;:::o;5399:872::-;5509:6;5517;5525;5533;5541;5549;5557;5610:3;5598:9;5589:7;5585:23;5581:33;5578:53;;;5627:1;5624;5617:12;5578:53;5666:9;5653:23;5685:31;5710:5;5685:31;:::i;:::-;5735:5;-1:-1:-1;5792:2:1;5777:18;;5764:32;5805:33;5764:32;5805:33;:::i;:::-;5857:7;-1:-1:-1;5916:2:1;5901:18;;5888:32;5929:30;5888:32;5929:30;:::i;:::-;5978:7;-1:-1:-1;6032:2:1;6017:18;;6004:32;;-1:-1:-1;6083:3:1;6068:19;;6055:33;;-1:-1:-1;6135:3:1;6120:19;;6107:33;;-1:-1:-1;6192:3:1;6177:19;;6164:33;6206;6164;6206;:::i;:::-;6258:7;6248:17;;;5399:872;;;;;;;;;;:::o;6276:661::-;6368:6;6376;6384;6392;6400;6453:3;6441:9;6432:7;6428:23;6424:33;6421:53;;;6470:1;6467;6460:12;6421:53;6509:9;6496:23;6528:31;6553:5;6528:31;:::i;:::-;6578:5;-1:-1:-1;6635:2:1;6620:18;;6607:32;6648:33;6607:32;6648:33;:::i;:::-;6700:7;-1:-1:-1;6759:2:1;6744:18;;6731:32;6772:30;6731:32;6772:30;:::i;:::-;6276:661;;;;-1:-1:-1;6821:7:1;;6875:2;6860:18;;6847:32;;-1:-1:-1;6926:3:1;6911:19;6898:33;;6276:661;-1:-1:-1;;6276:661:1:o;7574:184::-;7644:6;7697:2;7685:9;7676:7;7672:23;7668:32;7665:52;;;7713:1;7710;7703:12;7665:52;-1:-1:-1;7736:16:1;;7574:184;-1:-1:-1;7574:184:1:o;7763:385::-;-1:-1:-1;;;;;8015:15:1;;;7997:34;;8067:15;;;;8062:2;8047:18;;8040:43;8126:14;;8119:22;8114:2;8099:18;;8092:50;7947:2;7932:18;;7763:385::o;8153:251::-;8223:6;8276:2;8264:9;8255:7;8251:23;8247:32;8244:52;;;8292:1;8289;8282:12;8244:52;8324:9;8318:16;8343:31;8368:5;8343:31;:::i;8409:127::-;8470:10;8465:3;8461:20;8458:1;8451:31;8501:4;8498:1;8491:15;8525:4;8522:1;8515:15;8541:168;8581:7;8647:1;8643;8639:6;8635:14;8632:1;8629:21;8624:1;8617:9;8610:17;8606:45;8603:71;;;8654:18;;:::i;:::-;-1:-1:-1;8694:9:1;;8541:168::o;8714:217::-;8754:1;8780;8770:132;;8824:10;8819:3;8815:20;8812:1;8805:31;8859:4;8856:1;8849:15;8887:4;8884:1;8877:15;8770:132;-1:-1:-1;8916:9:1;;8714:217::o;10645:188::-;10724:13;;-1:-1:-1;;;;;10766:42:1;;10756:53;;10746:81;;10823:1;10820;10813:12;10838:450;10925:6;10933;10941;10994:2;10982:9;10973:7;10969:23;10965:32;10962:52;;;11010:1;11007;11000:12;10962:52;11033:40;11063:9;11033:40;:::i;:::-;11023:50;;11092:49;11137:2;11126:9;11122:18;11092:49;:::i;:::-;11082:59;;11184:2;11173:9;11169:18;11163:25;11228:10;11221:5;11217:22;11210:5;11207:33;11197:61;;11254:1;11251;11244:12;11572:245;11639:6;11692:2;11680:9;11671:7;11667:23;11663:32;11660:52;;;11708:1;11705;11698:12;11660:52;11740:9;11734:16;11759:28;11781:5;11759:28;:::i;11822:125::-;11862:4;11890:1;11887;11884:8;11881:34;;;11895:18;;:::i;:::-;-1:-1:-1;11932:9:1;;11822:125::o;12332:245::-;12411:6;12419;12472:2;12460:9;12451:7;12447:23;12443:32;12440:52;;;12488:1;12485;12478:12;12440:52;-1:-1:-1;;12511:16:1;;12567:2;12552:18;;;12546:25;12511:16;;12546:25;;-1:-1:-1;12332:245:1:o;12582:399::-;12784:2;12766:21;;;12823:2;12803:18;;;12796:30;12862:34;12857:2;12842:18;;12835:62;-1:-1:-1;;;12928:2:1;12913:18;;12906:33;12971:3;12956:19;;12582:399::o;12986:::-;13188:2;13170:21;;;13227:2;13207:18;;;13200:30;13266:34;13261:2;13246:18;;13239:62;-1:-1:-1;;;13332:2:1;13317:18;;13310:33;13375:3;13360:19;;12986:399::o;13390:426::-;13519:3;13557:6;13551:13;13582:1;13592:129;13606:6;13603:1;13600:13;13592:129;;;13704:4;13688:14;;;13684:25;;13678:32;13665:11;;;13658:53;13621:12;13592:129;;;13739:6;13736:1;13733:13;13730:48;;;13774:1;13765:6;13760:3;13756:16;13749:27;13730:48;-1:-1:-1;13794:16:1;;;;;13390:426;-1:-1:-1;;13390:426:1:o;14626:128::-;14666:3;14697:1;14693:6;14690:1;14687:13;14684:39;;;14703:18;;:::i;:::-;-1:-1:-1;14739:9:1;;14626:128::o

Swarm Source

ipfs://e4727272fbce100b8d0dfa98836fae0dc09a8abf6ab0fcaa91bf1249b9b679c1
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.