Contract 0x642E7fb78A719133f15A73E14ac5801048aD79Bc

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1127d9d054b430d933ca0b71d8be045251569adae98b343c2f637f8ebcb75b92Set Router64676582021-04-11 8:47:12198 days 6 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.000141835
0x4c0c7c6bbd89fe3877af25e26e6b13cc7f026b5b3b5e60460c988e35fa618093Set Router59326852021-03-23 13:22:25217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.00086734
0xdcde32fffb0da05163eee260bcb3388517814fd718a1ac0cb673d74c92899292Create Pair59326792021-03-23 13:22:07217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365536
0x21d3b3c4042fe3f69c983e455ec42d0a91ea5580becce89f9f5d4246040edecfCreate Pair59326762021-03-23 13:21:58217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365492
0xf89b899688ef062239b1dae7ec936e440d8517042ba52f6b6e8438573714919aCreate Pair59326732021-03-23 13:21:49217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0x354ce0c897a89533d275c4bdb11c20658bec03c350ded50350409b93325dd447Create Pair59326702021-03-23 13:21:40217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365536
0xef6ee526c678965234cf37c28b7aa2b8999bd33bdfbafb54be3a4b6cda50a66cCreate Pair59326662021-03-23 13:21:28217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0xd5f565612da931fb43be75634ee12088252e25dd93be48079cdd9e948a668ac6Create Pair59326632021-03-23 13:21:19217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365536
0x998cbfdd135b0de6addac9af3406ef8acac2af26cd8aa19694c7e6174fec6373Create Pair59325802021-03-23 13:17:10217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0x063aea192731fd35b6261171a408b541696b47dc6fb13c18783cccc470d4c54cCreate Pair59325662021-03-23 13:16:28217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0x2053096a1bfd3d792e4642373f688ae4fe5cdadf4365dbc2cbf04e67e18cce38Create Pair59325602021-03-23 13:16:10217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0x1aeed289effcd466cd50e34d691e49223b32af46ed20d6cd7d228e184b866f93Create Pair59325562021-03-23 13:15:58217 days 2 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365536
0x974dd47569f8659813c4a3911bb5da9cfa3e30ba0d9374be679898dc939a26f8Create Pair59302242021-03-23 11:17:32217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0xa8ba4a24efdce8dbace508845612541a2510b23acd21c9175f5c53818116d05aCreate Pair59302222021-03-23 11:17:26217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0xdde0b83e6bb5cb6c3abfdf797b4d79a13dd71d12b29028115e04e2cda9f5fde0Create Pair59302202021-03-23 11:17:20217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0x3e4badcf31eba62038bd2aaeb7a77edea6b81b5e4c684e3a8347659c3f2736daCreate Pair59302182021-03-23 11:17:14217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04365516
0xd3a9170ddb606e775e4d6e7afe878aa8f573651ebac212ee239615ecf5c9c982Create Pair59302152021-03-23 11:17:05217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.04395516
0x164ea90a9b6800ae8b34a26f194074ee485a7a85f8c913650ae99c2ccbdd0f5dSet Pair Governo...59302132021-03-23 11:16:59217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.00086778
0x700fa6251c521a5c1fbba0852619a8878fd0274c528c6b02b2e4b0abe5c1c554Set Fee To59302112021-03-23 11:16:53217 days 4 hrs agoProxima: Deployer IN  0x642e7fb78a719133f15a73e14ac5801048ad79bc0 BNB0.00086866
0xeaaa45a9103aca6f90130b1815a13de128f93f6bb1aeeae4cbb438d13a1d56240x6080604059301952021-03-23 11:16:05217 days 4 hrs agoProxima: Deployer IN  Contract Creation0 BNB0.05808432
[ Download CSV Export 
Latest 17 internal transactions
Parent Txn Hash Block From To Value
0xbef8de75feba8b92f69c13216c6f1ad9577a1c3306237396013a7fe0c4dad6ff60230572021-03-26 17:14:43213 days 22 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x5246c23ac3a679bad2301bd93486641eb02d415b99e9bdd29ccc6c4ccdfd941a59928642021-03-25 15:48:55214 days 23 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xdcde32fffb0da05163eee260bcb3388517814fd718a1ac0cb673d74c9289929259326792021-03-23 13:22:07217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x21d3b3c4042fe3f69c983e455ec42d0a91ea5580becce89f9f5d4246040edecf59326762021-03-23 13:21:58217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xf89b899688ef062239b1dae7ec936e440d8517042ba52f6b6e8438573714919a59326732021-03-23 13:21:49217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x354ce0c897a89533d275c4bdb11c20658bec03c350ded50350409b93325dd44759326702021-03-23 13:21:40217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xef6ee526c678965234cf37c28b7aa2b8999bd33bdfbafb54be3a4b6cda50a66c59326662021-03-23 13:21:28217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xd5f565612da931fb43be75634ee12088252e25dd93be48079cdd9e948a668ac659326632021-03-23 13:21:19217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x998cbfdd135b0de6addac9af3406ef8acac2af26cd8aa19694c7e6174fec637359325802021-03-23 13:17:10217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x063aea192731fd35b6261171a408b541696b47dc6fb13c18783cccc470d4c54c59325662021-03-23 13:16:28217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x2053096a1bfd3d792e4642373f688ae4fe5cdadf4365dbc2cbf04e67e18cce3859325602021-03-23 13:16:10217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x1aeed289effcd466cd50e34d691e49223b32af46ed20d6cd7d228e184b866f9359325562021-03-23 13:15:58217 days 2 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x974dd47569f8659813c4a3911bb5da9cfa3e30ba0d9374be679898dc939a26f859302242021-03-23 11:17:32217 days 4 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xa8ba4a24efdce8dbace508845612541a2510b23acd21c9175f5c53818116d05a59302222021-03-23 11:17:26217 days 4 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xdde0b83e6bb5cb6c3abfdf797b4d79a13dd71d12b29028115e04e2cda9f5fde059302202021-03-23 11:17:20217 days 4 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0x3e4badcf31eba62038bd2aaeb7a77edea6b81b5e4c684e3a8347659c3f2736da59302182021-03-23 11:17:14217 days 4 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
0xd3a9170ddb606e775e4d6e7afe878aa8f573651ebac212ee239615ecf5c9c98259302152021-03-23 11:17:05217 days 4 hrs ago 0x642e7fb78a719133f15a73e14ac5801048ad79bc  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniswapV2Factory

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 9 : UniswapV2ERC20.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import "./libraries/SafeMath.sol";

contract UniswapV2ERC20 {
    using SafeMathUniswap for uint256;

    string public constant name = "Proxima LP Token";
    string public constant symbol = "PLP";
    uint8 public constant decimals = 18;
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH =
        0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint256) public nonces;

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

    constructor() public {
        uint256 chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256(
                    "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
                ),
                keccak256(bytes(name)),
                keccak256(bytes("1")),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint256 value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint256 value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 value
    ) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint256 value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint256 value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool) {
        if (allowance[from][msg.sender] != uint256(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(
                value
            );
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(deadline >= block.timestamp, "UniswapV2: EXPIRED");
        bytes32 digest =
            keccak256(
                abi.encodePacked(
                    "\x19\x01",
                    DOMAIN_SEPARATOR,
                    keccak256(
                        abi.encode(
                            PERMIT_TYPEHASH,
                            owner,
                            spender,
                            value,
                            nonces[owner]++,
                            deadline
                        )
                    )
                )
            );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(
            recoveredAddress != address(0) && recoveredAddress == owner,
            "UniswapV2: INVALID_SIGNATURE"
        );
        _approve(owner, spender, value);
    }
}

File 2 of 9 : UniswapV2Factory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import "./interfaces/IUniswapV2Factory.sol";
import "./UniswapV2Pair.sol";

interface IProximaPairGovernor {
    function propose(
        address _pair,
        address _token0,
        address _token1,
        address _proposer
    ) external returns (bool);
}

interface IProximaLiquidityRewardVault {
    function exemptedPair(address _pair) external returns (bool);
}

contract UniswapV2Factory is IUniswapV2Factory {
    address public override feeTo;
    address public override feeToSetter;
    address public override proximaToken;
    address public override rewardVault;
    address public override pairGovernor;
    address public override router;
    address public override migrator;

    mapping(address => mapping(address => address)) public override getPair;
    address[] public override allPairs;

    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    constructor(
        address _feeToSetter,
        address _proximaToken,
        address _rewardVault
    ) public {
        feeToSetter = _feeToSetter;
        proximaToken = _proximaToken;
        rewardVault = _rewardVault;
    }

    function allPairsLength() external view override returns (uint256) {
        return allPairs.length;
    }

    function pairCodeHash() external pure returns (bytes32) {
        return keccak256(type(UniswapV2Pair).creationCode);
    }

    function createPair(
        address tokenA,
        address tokenB,
        address proposer,
        bool pairGovernance
    ) external override returns (address pair) {
        bool pRes;
        if (router != address(0)) {
            require(
                msg.sender == router || msg.sender == migrator,
                "UniswapFactory: FORBIDDEN"
            );
        }
        require(tokenA != tokenB, "UniswapFactory: IDENTICAL_ADDRESSES");
        (address token0, address token1) =
            tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), "UniswapFactory: ZERO_ADDRESS");
        require(
            getPair[token0][token1] == address(0),
            "UniswapFactory: PAIR_EXISTS"
        ); // single check is sufficient
        bytes memory bytecode = type(UniswapV2Pair).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(token0, token1));
        assembly {
            pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        UniswapV2Pair(pair).initialize(token0, token1);
        getPair[token0][token1] = pair;
        getPair[token1][token0] = pair; // populate mapping in the reverse direction
        allPairs.push(pair);
        if (pairGovernance) {
            pRes = IProximaPairGovernor(pairGovernor).propose(
                pair,
                token0,
                token1,
                proposer
            );
            require(pRes == true, "UnswapV2: PROPOSAL_FAILED");
        } else {
            pRes = IProximaLiquidityRewardVault(rewardVault).exemptedPair(pair);
            require(pRes == true, "UnswapV2: EXEMPTION_FAILED");
        }
        emit PairCreated(token0, token1, pair, allPairs.length);
    }

    function setFeeTo(address _feeTo) external override {
        require(msg.sender == feeToSetter, "UniswapFactory: FORBIDDEN");
        feeTo = _feeTo;
    }

    function setMigrator(address _migrator) external override {
        require(msg.sender == feeToSetter, "UniswapFactory: FORBIDDEN");
        migrator = _migrator;
    }

    function setRouter(address _router) external override {
        require(msg.sender == feeToSetter, "UniswapFactory: FORBIDDEN");
        router = _router;
    }

    function setPairGovernor(address _pairGovernor) external override {
        require(msg.sender == feeToSetter, "UniswapFactory: FORBIDDEN");
        pairGovernor = _pairGovernor;
    }

    function setFeeToSetter(address _feeToSetter) external override {
        require(msg.sender == feeToSetter, "UniswapFactory: FORBIDDEN");
        feeToSetter = _feeToSetter;
    }
}

File 3 of 9 : UniswapV2Pair.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import "./UniswapV2ERC20.sol";
import "./libraries/Math.sol";
import "./libraries/UQ112x112.sol";
import "./interfaces/IERC20.sol";
import "./interfaces/IUniswapV2Factory.sol";
import "./interfaces/IUniswapV2Callee.sol";

interface ILiquidityRewardVault {
    function releasePairShare() external returns (bool);

    function getPairPendingShares(address _who) external returns (uint256);
}

contract UniswapV2Pair is UniswapV2ERC20 {
    using SafeMathUniswap for uint256;
    using UQ112x112 for uint224;

    uint256 public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR =
        bytes4(keccak256(bytes("transfer(address,uint256)")));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0; // uses single storage slot, accessible via getReserves
    uint112 private reserve1; // uses single storage slot, accessible via getReserves
    uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint256 public price0CumulativeLast;
    uint256 public price1CumulativeLast;
    uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint256 private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, "UniswapV2: LOCKED");
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves()
        public
        view
        returns (
            uint112 _reserve0,
            uint112 _reserve1,
            uint32 _blockTimestampLast
        )
    {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(
        address token,
        address to,
        uint256 value
    ) private {
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "UniswapV2: TRANSFER_FAILED"
        );
    }

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, "UniswapV2: FORBIDDEN"); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(
        uint256 balance0,
        uint256 balance1,
        uint112 _reserve0,
        uint112 _reserve1
    ) private {
        require(
            balance0 <= uint112(-1) && balance1 <= uint112(-1),
            "UniswapV2: OVERFLOW"
        );
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast +=
                uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *
                timeElapsed;
            price1CumulativeLast +=
                uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *
                timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 3/6(~ 1/2)th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1)
        private
        returns (bool feeOn)
    {
        address feeTo = IUniswapV2Factory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint256 _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));
                uint256 rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));
                    // To take 0.15% trade fee out of 0.30% ,charge of 15-basis-point fee is applied
                    //, which is taken as a 1/2 cut of the 30-basis-point fees earned by liquidity providers
                    // in compensation to fee losses, Lp's are given native protocol tokens W.R.T current weight of reward pool
                    uint256 denominator = rootK.mul(1).add(rootKLast); //routing 50% of fees to Proxima reward pool for buyBack protocol
                    uint256 liquidity = numerator / denominator;
                    if (liquidity > 0) {
                        _mint(feeTo, liquidity);
                    }
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint256 liquidity) {
        (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings
        uint256 balance0 = IERC20Uniswap(token0).balanceOf(address(this));
        uint256 balance1 = IERC20Uniswap(token1).balanceOf(address(this));
        uint256 amount0 = balance0.sub(_reserve0);
        uint256 amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
            _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
        } else {
            liquidity = Math.min(
                amount0.mul(_totalSupply) / _reserve0,
                amount1.mul(_totalSupply) / _reserve1
            );
        }
        require(liquidity > 0, "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED");
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to)
        external
        lock
        returns (uint256 amount0, uint256 amount1)
    {
        (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        uint256 balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        uint256 balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        uint256 liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(
            amount0 > 0 && amount1 > 0,
            "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED"
        );
        _gainRewards(to, liquidity, _totalSupply);
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        balance1 = IERC20Uniswap(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    function _gainRewards(
        address to,
        uint256 liquidity,
        uint256 totalSupply
    ) internal {
        address feeTo = IUniswapV2Factory(factory).feeTo();
        if (to != feeTo) {
            address rewardVault = IUniswapV2Factory(factory).rewardVault();
            address tokenPxa = IUniswapV2Factory(factory).proximaToken();
            uint256 pendingPxa =
                ILiquidityRewardVault(rewardVault).getPairPendingShares(
                    address(this)
                );
            if (pendingPxa > 0) {
                bool res =
                    ILiquidityRewardVault(rewardVault).releasePairShare();
                require(
                    res == true,
                    "UniswapV2Router : REWARD_RETRIEVAL_FAILED"
                );
            }
            uint256 balancePxa =
                IERC20Uniswap(tokenPxa).balanceOf(address(this));

            if (balancePxa > 0) {
                uint256 amountPxa =
                    (liquidity.mul(balancePxa)) /
                        (totalSupply.sub(balanceOf[feeTo])); //calculating LP's PXA claim by deducting "feeTo" liquidity
                _safeTransfer(tokenPxa, to, amountPxa);
            }
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external lock {
        require(
            amount0Out > 0 || amount1Out > 0,
            "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT"
        );
        (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings
        require(
            amount0Out < _reserve0 && amount1Out < _reserve1,
            "UniswapV2: INSUFFICIENT_LIQUIDITY"
        );

        uint256 balance0;
        uint256 balance1;
        {
            // scope for _token{0,1}, avoids stack too deep errors
            address _token0 = token0;
            address _token1 = token1;
            require(to != _token0 && to != _token1, "UniswapV2: INVALID_TO");
            if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
            if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
            if (data.length > 0)
                IUniswapV2Callee(to).uniswapV2Call(
                    msg.sender,
                    amount0Out,
                    amount1Out,
                    data
                );
            balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
            balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        }
        uint256 amount0In =
            balance0 > _reserve0 - amount0Out
                ? balance0 - (_reserve0 - amount0Out)
                : 0;
        uint256 amount1In =
            balance1 > _reserve1 - amount1Out
                ? balance1 - (_reserve1 - amount1Out)
                : 0;
        require(
            amount0In > 0 || amount1In > 0,
            "UniswapV2: INSUFFICIENT_INPUT_AMOUNT"
        );
        {
            // scope for reserve{0,1}Adjusted, avoids stack too deep errors
            uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
            uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
            require(
                balance0Adjusted.mul(balance1Adjusted) >=
                    uint256(_reserve0).mul(_reserve1).mul(1000**2),
                "UniswapV2: K"
            );
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(
            _token0,
            to,
            IERC20Uniswap(_token0).balanceOf(address(this)).sub(reserve0)
        );
        _safeTransfer(
            _token1,
            to,
            IERC20Uniswap(_token1).balanceOf(address(this)).sub(reserve1)
        );
    }

    // force reserves to match balances
    function sync() external lock {
        _update(
            IERC20Uniswap(token0).balanceOf(address(this)),
            IERC20Uniswap(token1).balanceOf(address(this)),
            reserve0,
            reserve1
        );
    }
}

File 4 of 9 : IERC20.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

interface IERC20Uniswap {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

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

File 5 of 9 : IUniswapV2Callee.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

interface IUniswapV2Callee {
    function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

File 6 of 9 : IUniswapV2Factory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function proximaToken() external view returns (address);

    function rewardVault() external view returns (address);

    function pairGovernor() external view returns (address);

    function router() external view returns (address);

    function migrator() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB,
        address proposer,
        bool pairGovernance
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;

    function setRouter(address) external;

    function setPairGovernor(address) external;

    function setMigrator(address) external;
}

File 7 of 9 : Math.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    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;
        }
    }
}

File 8 of 9 : SafeMath.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMathUniswap {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

File 9 of 9 : UQ112x112.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"},{"internalType":"address","name":"_proximaToken","type":"address"},{"internalType":"address","name":"_rewardVault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"bool","name":"pairGovernance","type":"bool"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pairGovernor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proximaToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeTo","type":"address"}],"name":"setFeeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairGovernor","type":"address"}],"name":"setPairGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516132ee3803806132ee8339818101604052606081101561003357600080fd5b5080516020820151604090920151600180546001600160a01b03199081166001600160a01b0394851617909155600280548216948416949094179093556003805490931691161790556132638061008b6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637cd07e47116100a2578063c0d7865511610071578063c0d7865514610227578063d78e88601461024d578063e6a4390514610273578063f46901ed146102a1578063f887ea40146102c75761010b565b80637cd07e47146101e95780639a3dfb58146101f15780639aab9248146101f9578063a2e74af6146102015761010b565b806323cf3118116100de57806323cf31181461016157806339c135da146101895780633a2c6777146101c7578063574f2ba3146101cf5761010b565b8063017e7e5814610110578063094b74151461013457806315897d051461013c5780631e3dd18b14610144575b600080fd5b6101186102cf565b604080516001600160a01b039092168252519081900360200190f35b6101186102de565b6101186102ed565b6101186004803603602081101561015a57600080fd5b50356102fc565b6101876004803603602081101561017757600080fd5b50356001600160a01b0316610323565b005b6101186004803603608081101561019f57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001351515610392565b610118610903565b6101d7610912565b60408051918252519081900360200190f35b610118610918565b610118610927565b6101d7610936565b6101876004803603602081101561021757600080fd5b50356001600160a01b0316610968565b6101876004803603602081101561023d57600080fd5b50356001600160a01b03166109d7565b6101876004803603602081101561026357600080fd5b50356001600160a01b0316610a46565b6101186004803603604081101561028957600080fd5b506001600160a01b0381358116916020013516610ab5565b610187600480360360208110156102b757600080fd5b50356001600160a01b0316610adb565b610118610b4a565b6000546001600160a01b031681565b6001546001600160a01b031681565b6004546001600160a01b031681565b6008818154811061030957fe5b6000918252602090912001546001600160a01b0316905081565b6001546001600160a01b03163314610370576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081906001600160a01b03161561040a576005546001600160a01b03163314806103cb57506006546001600160a01b031633145b61040a576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b846001600160a01b0316866001600160a01b0316141561045b5760405162461bcd60e51b81526004018080602001828103825260238152602001806131eb6023913960400191505060405180910390fd5b600080866001600160a01b0316886001600160a01b03161061047e578688610481565b87875b90925090506001600160a01b0382166104e1576040805162461bcd60e51b815260206004820152601c60248201527f556e6973776170466163746f72793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526007602090815260408083208585168452909152902054161561055b576040805162461bcd60e51b815260206004820152601b60248201527f556e6973776170466163746f72793a20504149525f4558495354530000000000604482015290519081900360640190fd5b60606040518060200161056d90610b59565b6020820181038252601f19601f8201166040525090506000838360405160200180836001600160a01b031660601b8152601401826001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f59550856001600160a01b031663485cc95585856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b15801561063a57600080fd5b505af115801561064e573d6000803e3d6000fd5b5050506001600160a01b0380861660008181526007602081815260408084208a8716855282528084208054968e166001600160a01b0319978816811790915592825280842094845293905291812080548416831790556008805460018101825591527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180549092161790555086156107d65760048054604080516319cde89b60e11b81526001600160a01b038a811694820194909452878416602482015286841660448201528b841660648201529051929091169163339bd136916084808201926020929091908290030181600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b505194506001851515146107d1576040805162461bcd60e51b815260206004820152601960248201527f556e7377617056323a2050524f504f53414c5f4641494c454400000000000000604482015290519081900360640190fd5b6108a9565b6003546040805162caabbf60e11b81526001600160a01b03898116600483015291519190921691630195577e9160248083019260209291908290030181600087803b15801561082457600080fd5b505af1158015610838573d6000803e3d6000fd5b505050506040513d602081101561084e57600080fd5b505194506001851515146108a9576040805162461bcd60e51b815260206004820152601a60248201527f556e7377617056323a204558454d5054494f4e5f4641494c4544000000000000604482015290519081900360640190fd5b600854604080516001600160a01b03898116825260208201939093528151838716938816927f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9928290030190a35050505050949350505050565b6003546001600160a01b031681565b60085490565b6006546001600160a01b031681565b6002546001600160a01b031681565b60006040518060200161094890610b59565b6020820181038252601f19601f8201166040525080519060200120905090565b6001546001600160a01b031633146109b5576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610a24576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610a93576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60076020908152600092835260408084209091529082529020546001600160a01b031681565b6001546001600160a01b03163314610b28576040805162461bcd60e51b8152602060048201526019602482015260008051602061320e833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031681565b61268480610b678339019056fe60806040526001600c5534801561001557600080fd5b50604080518082018252601081526f283937bc34b6b0902628102a37b5b2b760811b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f6bcb83b6e60d0472e7a315d9ea497e3fbbbeee33f2013f7fb3599fba62334d61818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b031916331790556125768061010e6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af7565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b21565b604080519115158252519081900360200190f35b610339610b38565b604080516001600160a01b039092168252519081900360200190f35b61035d610b47565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4d565b61035d610be1565b6103b5610c05565b6040805160ff9092168252519081900360200190f35b61035d610c0a565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c10565b61035d610c94565b61035d610c9a565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca0565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b0316610f7c565b61035d610f8e565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316610f94565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316610fa6565b6040805192835260208301919091528051918290030190f35b610244611345565b61031d600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611364565b61035d611371565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b0316611377565b6103396114e9565b6103396114f8565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611507565b61035d600480360360408110156105a357600080fd5b506001600160a01b0381358116916020013516611709565b61023a611726565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b815260040180806020018281038252602581526020018061245e6025913960400191505060405180910390fd5b600080610667610af7565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806124a76021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611888565b891561077057610770818a8c611888565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806124836024913960400191505060405180910390fd5b60006109d46109c2846003611a22565b6109ce876103e8611a22565b90611a85565b905060006109e66109c2846003611a22565b9050610a0b620f4240610a056001600160701b038b8116908b16611a22565b90611a22565b610a158383611a22565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611ad5565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601081526020016f283937bc34b6b0902628102a37b5b2b760811b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b2e338484611c94565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bcc576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba79083611a85565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd7848484611cf6565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c66576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610ced576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cfd610af7565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5157600080fd5b505afa158015610d65573d6000803e3d6000fd5b505050506040513d6020811015610d7b57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dce57600080fd5b505afa158015610de2573d6000803e3d6000fd5b505050506040513d6020811015610df857600080fd5b505190506000610e11836001600160701b038716611a85565b90506000610e28836001600160701b038716611a85565b90506000610e368787611da4565b60005490915080610e6d57610e596103e86109ce610e548787611a22565b611ee4565b9850610e6860006103e8611f36565b610eb0565b610ead6001600160701b038916610e848684611a22565b81610e8b57fe5b046001600160701b038916610ea08685611a22565b81610ea757fe5b04611fc0565b98505b60008911610eef5760405162461bcd60e51b81526004018080602001828103825260288152602001806124f06028913960400191505060405180910390fd5b610ef98a8a611f36565b610f0586868a8a611ad5565b8115610f2f57600854610f2b906001600160701b0380821691600160701b900416611a22565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114610ff4576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580611004610af7565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561106057600080fd5b505afa158015611074573d6000803e3d6000fd5b505050506040513d602081101561108a57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156110d857600080fd5b505afa1580156110ec573d6000803e3d6000fd5b505050506040513d602081101561110257600080fd5b5051306000908152600160205260408120549192506111218888611da4565b600054909150806111328487611a22565b8161113957fe5b049a50806111478486611a22565b8161114e57fe5b04995060008b118015611161575060008a115b61119c5760405162461bcd60e51b81526004018080602001828103825260288152602001806124c86028913960400191505060405180910390fd5b6111a78c8483611fd8565b6111b13084612345565b6111bc878d8d611888565b6111c7868d8c611888565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d602081101561123757600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561128357600080fd5b505afa158015611297573d6000803e3d6000fd5b505050506040513d60208110156112ad57600080fd5b505193506112bd85858b8b611ad5565b81156112e7576008546112e3906001600160701b0380821691600160701b900416611a22565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620504c560ec1b81525081565b6000610b2e338484611cf6565b6103e881565b600c546001146113c2576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261146b9285928792611466926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561143457600080fd5b505afa158015611448573d6000803e3d6000fd5b505050506040513d602081101561145e57600080fd5b505190611a85565b611888565b6114df81846114666008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561143457600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611551576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561166c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116a25750886001600160a01b0316816001600160a01b0316145b6116f3576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b6116fe898989611c94565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611771576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611881926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156117c257600080fd5b505afa1580156117d6573d6000803e3d6000fd5b505050506040513d60208110156117ec57600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561183957600080fd5b505afa15801561184d573d6000803e3d6000fd5b505050506040513d602081101561186357600080fd5b50516008546001600160701b0380821691600160701b900416611ad5565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b602083106119355780518252601f199092019160209182019101611916565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611997576040519150601f19603f3d011682016040523d82523d6000602084013e61199c565b606091505b50915091508180156119ca5750805115806119ca57508080602001905160208110156119c757600080fd5b50515b611a1b576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611a3d57505080820282828281611a3a57fe5b04145b610b32576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b32576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611af357506001600160701b038311155b611b3a576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611b6a57506001600160701b03841615155b8015611b7e57506001600160701b03831615155b15611be9578063ffffffff16611ba685611b97866123d7565b6001600160e01b0316906123e9565b600980546001600160e01b03929092169290920201905563ffffffff8116611bd184611b97876123d7565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d199082611a85565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611d48908261240e565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611df557600080fd5b505afa158015611e09573d6000803e3d6000fd5b505050506040513d6020811015611e1f57600080fd5b5051600b546001600160a01b038216158015945091925090611ed0578015611ecb576000611e5c610e546001600160701b03888116908816611a22565b90506000611e6983611ee4565b905080821115611ec8576000611e8b611e828484611a85565b60005490611a22565b90506000611ea483611e9e866001611a22565b9061240e565b90506000818381611eb157fe5b0490508015611ec457611ec48782611f36565b5050505b50505b611edc565b8015611edc576000600b555b505092915050565b60006003821115611f27575080600160028204015b81811015611f2157809150600281828581611f1057fe5b040181611f1957fe5b049050611ef9565b50611f31565b8115611f31575060015b919050565b600054611f43908261240e565b60009081556001600160a01b038316815260016020526040902054611f68908261240e565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310611fcf5781611fd1565b825b9392505050565b60055460408051622fcfcb60e31b815290516000926001600160a01b03169163017e7e58916004808301926020929190829003018186803b15801561201c57600080fd5b505afa158015612030573d6000803e3d6000fd5b505050506040513d602081101561204657600080fd5b505190506001600160a01b038481169082161461233f5760055460408051633a2c677760e01b815290516000926001600160a01b031691633a2c6777916004808301926020929190829003018186803b1580156120a257600080fd5b505afa1580156120b6573d6000803e3d6000fd5b505050506040513d60208110156120cc57600080fd5b505160055460408051631347bf6b60e31b815290519293506000926001600160a01b0390921691639a3dfb5891600480820192602092909190829003018186803b15801561211957600080fd5b505afa15801561212d573d6000803e3d6000fd5b505050506040513d602081101561214357600080fd5b5051604080516370eb01cb60e01b815230600482015290519192506000916001600160a01b038516916370eb01cb91602480830192602092919082900301818787803b15801561219257600080fd5b505af11580156121a6573d6000803e3d6000fd5b505050506040513d60208110156121bc57600080fd5b505190508015612274576000836001600160a01b031663057ed46a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561220357600080fd5b505af1158015612217573d6000803e3d6000fd5b505050506040513d602081101561222d57600080fd5b505190506001811515146122725760405162461bcd60e51b81526004018080602001828103825260298152602001806125186029913960400191505060405180910390fd5b505b6000826001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50519050801561233a576001600160a01b03851660009081526001602052604081205461231b908890611a85565b6123258984611a22565b8161232c57fe5b0490506116fe848a83611888565b505050505b50505050565b6001600160a01b0382166000908152600160205260409020546123689082611a85565b6001600160a01b0383166000908152600160205260408120919091555461238f9082611a85565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161240657fe5b049392505050565b80820182811015610b32576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544556e69737761705632526f75746572203a205245574152445f52455452494556414c5f4641494c4544a2646970667358221220ac4f56581bfd928e3d11fd4e09d1bb8578057e3684d9f7916438d2c22dbdce0c64736f6c634300060c0033556e6973776170466163746f72793a204944454e544943414c5f414444524553534553556e6973776170466163746f72793a20464f5242494444454e00000000000000a2646970667358221220f354390e5c43b20026c8f5e024ab3849992f2dbfbefcafb25cc7ec838d9519df64736f6c634300060c0033000000000000000000000000690a4f012c626339083c5a920e3f767152737316000000000000000000000000086b098699a219903f5a7df526ba2874f1637f30000000000000000000000000b761cdeb75746345c398b394a3e88443d368cc6c

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

000000000000000000000000690a4f012c626339083c5a920e3f767152737316000000000000000000000000086b098699a219903f5a7df526ba2874f1637f30000000000000000000000000b761cdeb75746345c398b394a3e88443d368cc6c

-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0x690a4f012c626339083c5a920e3f767152737316
Arg [1] : _proximaToken (address): 0x086b098699a219903f5a7df526ba2874f1637f30
Arg [2] : _rewardVault (address): 0xb761cdeb75746345c398b394a3e88443d368cc6c

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000690a4f012c626339083c5a920e3f767152737316
Arg [1] : 000000000000000000000000086b098699a219903f5a7df526ba2874f1637f30
Arg [2] : 000000000000000000000000b761cdeb75746345c398b394a3e88443d368cc6c


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.