Contract 0xbcfccbde45ce874adcb698cc183debcf17952812

 
Txn Hash
Block
From
To
Value [Txn Fee]
0xf73aafaf21d79d4852f7abecb43621bed9cd76e622cda504d95ffcde63c5bcb139865292021-01-14 15:47:304 days 11 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.00046856
0xfdffc35e9729d81f1a2ff43aab0e46ed2a2e19858d8d24b22487cce5f605664339424662021-01-13 3:04:195 days 23 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x9a1c370cc267225b0ffa3e296fdd3939c94462e37934fcdf27835619b893310839278942021-01-12 14:55:076 days 12 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x593d0ca87a901ce0744c97f6c72139c7854537fce3ca037041c7d97d420d33de39253352021-01-12 12:47:106 days 14 hrs ago0xb519dc8707ce2f52683d08a918b434ff8a077b06 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0xe7ee90489d7628b2e49ee02aa0aa6f8541d3984cd361bcc4328c4910a7277b5d39206402021-01-12 8:52:256 days 18 hrs ago0xb519dc8707ce2f52683d08a918b434ff8a077b06 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0xa47a7374072ced286a48832994dc59c46974d51e1842b260db5868d9dd50f68638505772021-01-09 22:29:099 days 4 hrs ago0xb519dc8707ce2f52683d08a918b434ff8a077b06 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x7019af1eff7151ef3e3cd121c6104b3c98e20f847e5803d4ce5d08a72941b60438505452021-01-09 22:27:339 days 4 hrs ago0xb519dc8707ce2f52683d08a918b434ff8a077b06 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x33a32614600e6c012451721a2968f363e86de33ec8f3f4641bbc12e32579829b38264722021-01-09 2:23:2710 days 36 mins ago0x22cb7365cabbc1618b57730a1759e2d06957ddf6 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0xc1bc26107cb3aae45c1e5f4f669d80d3f1dc4b75fc4d02a2890a09a1667644ec37172622021-01-05 7:20:5913 days 19 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.00046856
0x65723bec406161f0df6c59b67ffdf01eaf625095268dcc27fc1829878e9288aa34982282020-12-28 16:41:4021 days 10 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0xc032c919fbfa6f7a749c724c58e2d12f23dfd5337864c1a987ae9f1d2e034dfe33169922020-12-22 9:34:3427 days 17 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.03943546
0x22504fc0abd0937f76dd55c7cbe71ae28dac16bd127d77161c11f9be9e0913d532821292020-12-21 4:29:4828 days 22 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0xfe9de166396af9c84f3fdc8440409ad23663fe461fe5820f0f8234e043574a6632820672020-12-21 4:26:4228 days 22 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0x04c3304730958a9a63ee0c4c3e0c55052a15793b955064a6b447f9139c2e0e7e29250542020-12-08 18:13:2841 days 8 hrs ago0x72396cf44a8240d830aa509313ee5bf1a185fd31 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x37d2c1ea5bbdf20775402d4e57ae5a20fef7b886bbb64198de46f2652abee1e323875122020-11-20 1:39:3960 days 1 hr agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.00046836
0x2d14341da598edb5444383bab5e0499ffa3def0ef2a652405f97a558a967a9f723297532020-11-18 1:27:2262 days 1 hr agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0x7a3e8a702ab0d1ccf85fa6d6e6e6d8e138c7b3da3d4e067f3d46807df2539df117123222020-10-27 14:34:2583 days 12 hrs ago0x07de60de85404b18c775d62332d8bf7032b10fc0 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0x9364a3ed40d0f2408e1241a75bbf5e08a2a63835bdb9932092215d0d2b99c75917123132020-10-27 14:33:5883 days 12 hrs ago0x07de60de85404b18c775d62332d8bf7032b10fc0 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x729648cdbe9a64662715c59ece474e8a49e813a2b072776849bb6bbb5c630e4c13977752020-10-16 16:18:2794 days 10 hrs agoPancakeSwap: Deployer IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.00056998
0x197790463cd4afc0d1e628045ee14252eab2a63c04ac20ef35e3ac12f369274213973862020-10-16 15:59:0094 days 11 hrs ago0x07de60de85404b18c775d62332d8bf7032b10fc0 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0x111b2aad0580a95ae66d11c09ac132d67748bb5c2f5798e8f16fbd78ba959f2212488872020-10-11 12:14:0399 days 14 hrs ago0x20f74357d936f3eb5ba7a4e87fc253608b97557f IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394355
0xc58d125871de6368a239a28abd4e77f1b40cede5b6b9ab3a58b0178c26103eb012486142020-10-11 12:00:2499 days 14 hrs ago0x20f74357d936f3eb5ba7a4e87fc253608b97557f IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0x771675425b5316a2264ef11e0f741e1b0c82e40e90b90562665ee1709223ffb011713102020-10-08 19:35:10102 days 7 hrs ago0xa3acdb663310f0c42dfbb773cca7de9990f952f7 IN  0xbcfccbde45ce874adcb698cc183debcf179528120.01 BNB0.00046299
0x3b3b5bcf72c54fd8b6560475f1570c4e14eadc09a71bf6acfd4d721b31289c7d9467472020-10-01 0:27:01110 days 2 hrs ago0x0fce9273490a5e93bb6b3823adb179ec27f0d1a3 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
0x90a1f0ae1c6e10f8386af8400c707dbc89c7a1d5f7739901e3eb2d11ea13bc729461132020-09-30 23:55:19110 days 3 hrs ago0x0fce9273490a5e93bb6b3823adb179ec27f0d1a3 IN  0xbcfccbde45ce874adcb698cc183debcf179528120 BNB0.0394357
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xbf49d9ed66d9d378cc090c266c2ea3cf33149a56e31ec018e9531a6db13ed0e74115173- PancakeSwap: KEBAB-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xbf49d9ed66d9d378cc090c266c2ea3cf33149a56e31ec018e9531a6db13ed0e74115173- PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xbfbdd63f8591ab1e9eda51388c6dd126664e32b18a1d0c583103ede739fdacfb41151632021-01-19 2:59:1434 secs ago 0x27838d711d16f20a8f5cc681e6433f2512d6bc33 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xbfbdd63f8591ab1e9eda51388c6dd126664e32b18a1d0c583103ede739fdacfb41151632021-01-19 2:59:1434 secs ago 0x27838d711d16f20a8f5cc681e6433f2512d6bc33 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xee86b876a443cea553082d7f226c19bee2df2f98f42f67586bff9590eb0392b041151522021-01-19 2:58:411 min ago 0x27838d711d16f20a8f5cc681e6433f2512d6bc33 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x3f5dee81f061bbfdecdc0a64ee77d2634486d49329a196c359e4661d2e7a9e3241151472021-01-19 2:58:261 min ago PancakeSwap: BFI 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x3f5dee81f061bbfdecdc0a64ee77d2634486d49329a196c359e4661d2e7a9e3241151472021-01-19 2:58:261 min ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xa0db272ee492364f11e457722bb3667fed60dd24f801ab275f748ec9505103a541151442021-01-19 2:58:171 min ago PancakeSwap: BDO-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x1463306b13325182387a29461578f0b0ac8e5b7b5cd8d7b86bb73d917a20fa5241151412021-01-19 2:58:081 min ago PancakeSwap: BDO-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x1463306b13325182387a29461578f0b0ac8e5b7b5cd8d7b86bb73d917a20fa5241151412021-01-19 2:58:081 min ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x134034f37c053e13b5abc92836e597fdcf004e8195ed18c7fa6980890906cd5241151392021-01-19 2:58:021 min ago PancakeSwap: sBDO-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x134034f37c053e13b5abc92836e597fdcf004e8195ed18c7fa6980890906cd5241151392021-01-19 2:58:021 min ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x4d54974aa7cb6022811c62499625d9a6430bbbe452d22fdaf5e8c804fc9b842d41151372021-01-19 2:57:561 min ago PancakeSwap: BELUGA-BUSD 2 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x4d54974aa7cb6022811c62499625d9a6430bbbe452d22fdaf5e8c804fc9b842d41151372021-01-19 2:57:561 min ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xf8c29f3adbdb4a0ff729801a87f263a0da47882f10bae9ec7b5c8d14258edc9641151372021-01-19 2:57:561 min ago PancakeSwap: KEBAB-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xf8c29f3adbdb4a0ff729801a87f263a0da47882f10bae9ec7b5c8d14258edc9641151372021-01-19 2:57:561 min ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x2d01ad1e575443aacc7f2c4402be2074e19852f67d1eab6b1b972654ed03584e41151372021-01-19 2:57:561 min ago 0xc2b4e528dcee54ecce1ff0d3eb64144a41413464 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x2d01ad1e575443aacc7f2c4402be2074e19852f67d1eab6b1b972654ed03584e41151372021-01-19 2:57:561 min ago 0xc2b4e528dcee54ecce1ff0d3eb64144a41413464 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x6bf3191a7b2ea4f1a9f213b8a14acdbcd8e28517b5385c0d5f6f4e2cfe39049b41151372021-01-19 2:57:561 min ago 0x4c35d9646c9e4ce9e57c074822f015581d0e0057 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x49bac3d04384fbcfc61ea6b98cad97ca7ee6cdab059a5fdf77d2d4acad18b5ec41151372021-01-19 2:57:561 min ago 0x4c35d9646c9e4ce9e57c074822f015581d0e0057 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x10a1b335eab460f87522fe5839fce6d5059b88830dab8c2d75e0ee4740a2f50941151352021-01-19 2:57:501 min ago PancakeSwap: Cake 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x7c884dc6351666b6684cf96e5c759318513027b0dd9e73ad5a3e7ba8b9ff92b941151342021-01-19 2:57:472 mins ago PancakeSwap: FIL 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x7c884dc6351666b6684cf96e5c759318513027b0dd9e73ad5a3e7ba8b9ff92b941151342021-01-19 2:57:472 mins ago PancakeSwap: Router 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0x70df7c52c2b1d52f47d8c2810551da4afd57b8a46b7ceb4709d70b66ea1ab0a141151342021-01-19 2:57:472 mins ago 0xc2b4e528dcee54ecce1ff0d3eb64144a41413464 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
0xa766dd9c212e6ea39edc29d3df1b89fd3ff48aff8a7225683785393ccddc167141151292021-01-19 2:57:322 mins ago PancakeSwap: KEBAB-BUSD 0xbcfccbde45ce874adcb698cc183debcf179528120 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PancakeFactory

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-09-19
*/

pragma solidity =0.5.16;


interface IPancakeFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure 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);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure 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);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)
library SafeMath {
    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');
    }
}

contract PancakeERC20 is IPancakeERC20 {
    using SafeMath for uint;

    string public constant name = 'Pancake LPs';
    string public constant symbol = 'Cake-LP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) 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 => uint) public nonces;

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

    constructor() public {
        uint 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, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

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

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

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

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

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

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

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'Pancake: 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, 'Pancake: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

// 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;
        }
    }
}

// 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);
    }
}

interface IERC20 {
    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);
}

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

contract PancakePair is IPancakePair, PancakeERC20 {
    using SafeMath  for uint;
    using UQ112x112 for uint224;

    uint 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

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

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'Pancake: 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, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'Pancake: TRANSFER_FAILED');
    }

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint 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, 'Pancake: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'Pancake: 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 += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(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 1/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IPancakeFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint denominator = rootK.mul(3).add(rootKLast);
                    uint 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 (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _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, 'Pancake: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(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 (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _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, 'Pancake: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));

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

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

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'Pancake: 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) IPancakeCallee(to).pancakeCall(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'Pancake: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(2));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(2));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'Pancake: 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, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

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

contract PancakeFactory is IPancakeFactory {
    bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(PancakePair).creationCode));

    address public feeTo;
    address public feeToSetter;

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

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

    constructor(address _feeToSetter) public {
        feeToSetter = _feeToSetter;
    }

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

    function createPair(address tokenA, address tokenB) external returns (address pair) {
        require(tokenA != tokenB, 'Pancake: IDENTICAL_ADDRESSES');
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'Pancake: ZERO_ADDRESS');
        require(getPair[token0][token1] == address(0), 'Pancake: PAIR_EXISTS'); // single check is sufficient
        bytes memory bytecode = type(PancakePair).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(token0, token1));
        assembly {
            pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        IPancakePair(pair).initialize(token0, token1);
        getPair[token0][token1] = pair;
        getPair[token1][token0] = pair; // populate mapping in the reverse direction
        allPairs.push(pair);
        emit PairCreated(token0, token1, pair, allPairs.length);
    }

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

    function setFeeToSetter(address _feeToSetter) external {
        require(msg.sender == feeToSetter, 'Pancake: FORBIDDEN');
        feeToSetter = _feeToSetter;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"payable":false,"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"},{"constant":true,"inputs":[],"name":"INIT_CODE_PAIR_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeTo","type":"address"}],"name":"setFeeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051612a8b380380612a8b8339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055612a28806100636000396000f3fe608060405234801561001057600080fd5b50600436106100835760003560e01c8063017e7e5814610088578063094b7415146100ac5780631e3dd18b146100b4578063574f2ba3146100d15780635855a25a146100eb578063a2e74af6146100f3578063c9c653961461011b578063e6a4390514610149578063f46901ed14610177575b600080fd5b61009061019d565b604080516001600160a01b039092168252519081900360200190f35b6100906101ac565b610090600480360360208110156100ca57600080fd5b50356101bb565b6100d96101e2565b60408051918252519081900360200190f35b6100d96101e8565b6101196004803603602081101561010957600080fd5b50356001600160a01b031661027b565b005b6100906004803603604081101561013157600080fd5b506001600160a01b03813581169160200135166102f1565b6100906004803603604081101561015f57600080fd5b506001600160a01b0381358116916020013516610618565b6101196004803603602081101561018d57600080fd5b50356001600160a01b031661063e565b6000546001600160a01b031681565b6001546001600160a01b031681565b600381815481106101c857fe5b6000918252602090912001546001600160a01b0316905081565b60035490565b6040516101f7602082016106b4565b6020820181038252601f19601f820116604052506040516020018082805190602001908083835b6020831061023d5780518252601f19909201916020918201910161021e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6001546001600160a01b031633146102cf576040805162461bcd60e51b81526020600482015260126024820152712830b731b0b5b29d102327a92124a22222a760711b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160a01b0316836001600160a01b0316141561035a576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b653a204944454e544943414c5f41444452455353455300000000604482015290519081900360640190fd5b600080836001600160a01b0316856001600160a01b03161061037d578385610380565b84845b90925090506001600160a01b0382166103d8576040805162461bcd60e51b815260206004820152601560248201527450616e63616b653a205a45524f5f4144445245535360581b604482015290519081900360640190fd5b6001600160a01b03828116600090815260026020908152604080832085851684529091529020541615610449576040805162461bcd60e51b815260206004820152601460248201527350616e63616b653a20504149525f45584953545360601b604482015290519081900360640190fd5b60606040518060200161045b906106b4565b6020820181038252601f19601f8201166040525090506000838360405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f56040805163485cc95560e01b81526001600160a01b038781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561052e57600080fd5b505af1158015610542573d6000803e3d6000fd5b505050506001600160a01b0384811660008181526002602081815260408084208987168086529083528185208054978d166001600160a01b031998891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6001546001600160a01b03163314610692576040805162461bcd60e51b81526020600482015260126024820152712830b731b0b5b29d102327a92124a22222a760711b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b612332806106c28339019056fe60806040526001600c5534801561001557600080fd5b5060405146908060526122e08239604080519182900360520182208282018252600b83526a50616e63616b65204c507360a81b6020938401528151808301835260018152603160f81b908401528151808401919091527fe87cb5a4dc26cf9451529a20899fcee996799afd48d7c0db7c25e150b364661d818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b031916331790556121da806101066000396000f3fe608060405234801561001057600080fd5b50600436106101595760003560e01c80636a627842116100c95780636a627842146103bf57806370a08231146103e55780637464fc3d1461040b5780637ecebe001461041357806389afcb441461043957806395d89b4114610478578063a9059cbb14610480578063ba9a7a56146104ac578063bc25cf77146104b4578063c45a0155146104da578063d21220a7146104e2578063d505accf146104ea578063dd62ed3e1461053b578063fff6cae91461056957610159565b8063022c0d9f1461015e57806306fdde03146101ea5780630902f1ac14610267578063095ea7b31461029f5780630dfe1681146102df57806318160ddd1461030357806323b872dd1461031d57806330adf81f14610353578063313ce5671461035b5780633644e51514610379578063485cc955146103815780635909c0d5146103af5780635a3d5493146103b7575b600080fd5b6101e86004803603608081101561017457600080fd5b8135916020810135916001600160a01b036040830135169190810190608081016060820135600160201b8111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460018302840111600160201b831117156101dd57600080fd5b509092509050610571565b005b6101f2610abc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026f610ae3565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6102cb600480360360408110156102b557600080fd5b506001600160a01b038135169060200135610b0d565b604080519115158252519081900360200190f35b6102e7610b24565b604080516001600160a01b039092168252519081900360200190f35b61030b610b33565b60408051918252519081900360200190f35b6102cb6004803603606081101561033357600080fd5b506001600160a01b03813581169160208101359091169060400135610b39565b61030b610bd3565b610363610bf7565b6040805160ff9092168252519081900360200190f35b61030b610bfc565b6101e86004803603604081101561039757600080fd5b506001600160a01b0381358116916020013516610c02565b61030b610c84565b61030b610c8a565b61030b600480360360208110156103d557600080fd5b50356001600160a01b0316610c90565b61030b600480360360208110156103fb57600080fd5b50356001600160a01b0316610f8e565b61030b610fa0565b61030b6004803603602081101561042957600080fd5b50356001600160a01b0316610fa6565b61045f6004803603602081101561044f57600080fd5b50356001600160a01b0316610fb8565b6040805192835260208301919091528051918290030190f35b6101f261135c565b6102cb6004803603604081101561049657600080fd5b506001600160a01b03813516906020013561137f565b61030b61138c565b6101e8600480360360208110156104ca57600080fd5b50356001600160a01b0316611392565b6102e76114fb565b6102e761150a565b6101e8600480360360e081101561050057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611519565b61030b6004803603604081101561055157600080fd5b506001600160a01b0381358116916020013516611716565b6101e8611733565b600c546001146105ba576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55841515806105cd5750600084115b6106085760405162461bcd60e51b815260040180806020018281038252602381526020018061215d6023913960400191505060405180910390fd5b600080610613610ae3565b5091509150816001600160701b0316871080156106385750806001600160701b031686105b610689576040805162461bcd60e51b815260206004820152601f60248201527f50616e63616b653a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b60065460075460009182916001600160a01b039182169190811690891682148015906106c75750806001600160a01b0316896001600160a01b031614155b61070e576040805162461bcd60e51b815260206004820152601360248201527250616e63616b653a20494e56414c49445f544f60681b604482015290519081900360640190fd5b8a1561071f5761071f828a8d611893565b891561073057610730818a8c611893565b86156107eb57886001600160a01b03166384800812338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156107d257600080fd5b505af11580156107e6573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561083157600080fd5b505afa158015610845573d6000803e3d6000fd5b505050506040513d602081101561085b57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d60208110156108d157600080fd5b5051925060009150506001600160701b0385168a900383116108f4576000610903565b89856001600160701b03160383035b9050600089856001600160701b031603831161092057600061092f565b89856001600160701b03160383035b905060008211806109405750600081115b61097b5760405162461bcd60e51b81526004018080602001828103825260228152602001806120f56022913960400191505060405180910390fd5b60006109af61099184600263ffffffff611a2416565b6109a3876103e863ffffffff611a2416565b9063ffffffff611a8716565b905060006109c761099184600263ffffffff611a2416565b90506109f8620f42406109ec6001600160701b038b8116908b1663ffffffff611a2416565b9063ffffffff611a2416565b610a08838363ffffffff611a2416565b1015610a48576040805162461bcd60e51b815260206004820152600a60248201526950616e63616b653a204b60b01b604482015290519081900360640190fd5b5050610a5684848888611ad7565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600b81526020016a50616e63616b65204c507360a81b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b1a338484611c8c565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bbe576001600160a01b0384166000908152600260209081526040808320338452909152902054610b99908363ffffffff611a8716565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bc9848484611cee565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c56576040805162461bcd60e51b81526020600482015260126024820152712830b731b0b5b29d102327a92124a22222a760711b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cdb576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580610ceb610ae3565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d3f57600080fd5b505afa158015610d53573d6000803e3d6000fd5b505050506040513d6020811015610d6957600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dbc57600080fd5b505afa158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b505190506000610e05836001600160701b03871663ffffffff611a8716565b90506000610e22836001600160701b03871663ffffffff611a8716565b90506000610e308787611d96565b60005490915080610e6d57610e596103e86109a3610e54878763ffffffff611a2416565b611ef4565b9850610e6860006103e8611f46565b610ebc565b610eb96001600160701b038916610e8a868463ffffffff611a2416565b81610e9157fe5b046001600160701b038916610eac868563ffffffff611a2416565b81610eb357fe5b04611fca565b98505b60008911610efb5760405162461bcd60e51b81526004018080602001828103825260268152602001806121806026913960400191505060405180910390fd5b610f058a8a611f46565b610f1186868a8a611ad7565b8115610f4157600854610f3d906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611004576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580611014610ae3565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561107057600080fd5b505afa158015611084573d6000803e3d6000fd5b505050506040513d602081101561109a57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d602081101561111257600080fd5b5051306000908152600160205260408120549192506111318888611d96565b60005490915080611148848763ffffffff611a2416565b8161114f57fe5b049a5080611163848663ffffffff611a2416565b8161116a57fe5b04995060008b11801561117d575060008a115b6111b85760405162461bcd60e51b81526004018080602001828103825260268152602001806121176026913960400191505060405180910390fd5b6111c23084611fe2565b6111cd878d8d611893565b6111d8868d8c611893565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561121e57600080fd5b505afa158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561129457600080fd5b505afa1580156112a8573d6000803e3d6000fd5b505050506040513d60208110156112be57600080fd5b505193506112ce85858b8b611ad7565b81156112fe576008546112fa906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b60405180604001604052806007815260200166043616b652d4c560cc1b81525081565b6000610b1a338484611cee565b6103e881565b600c546001146113db576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261148a9285928792611485926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b505afa158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b50519063ffffffff611a8716565b611893565b600854604080516370a0823160e01b815230600482015290516114f1928492879261148592600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611561576040805162461bcd60e51b815260206004820152601060248201526f14185b98d85ad94e881156141254915160821b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561167c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116b25750886001600160a01b0316816001600160a01b0316145b611700576040805162461bcd60e51b815260206004820152601a60248201527950616e63616b653a20494e56414c49445f5349474e415455524560301b604482015290519081900360640190fd5b61170b898989611c8c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5460011461177c576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b8152306004820152905161188c926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d60208110156117f757600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b50516008546001600160701b0380821691600160701b900416611ad7565b6001600c55565b60408051808201825260198152787472616e7366657228616464726573732c75696e743235362960381b60209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061193c5780518252601f19909201916020918201910161191d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461199e576040519150601f19603f3d011682016040523d82523d6000602084013e6119a3565b606091505b50915091508180156119d15750805115806119d157508080602001905160208110156119ce57600080fd5b50515b611a1d576040805162461bcd60e51b815260206004820152601860248201527714185b98d85ad94e881514905394d1915497d1905253115160421b604482015290519081900360640190fd5b5050505050565b6000811580611a3f57505080820282828281611a3c57fe5b04145b610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b1e576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611af557506001600160701b038311155b611b3a576040805162461bcd60e51b815260206004820152601160248201527050616e63616b653a204f564552464c4f5760781b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611b6a57506001600160701b03841615155b8015611b7e57506001600160701b03831615155b15611bef578063ffffffff16611bac85611b978661206e565b6001600160e01b03169063ffffffff61208016565b600980546001600160e01b03929092169290920201905563ffffffff8116611bd784611b978761206e565b600a80546001600160e01b0392909216929092020190555b600880546001600160701b0319166001600160701b0388811691909117600160701b600160e01b031916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d17908263ffffffff611a8716565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611d4c908263ffffffff6120a516565b6001600160a01b03808416600081815260016020908152604091829020949094558051858152905191939287169260008051602061213d83398151915292918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051600b546001600160a01b038216158015945091925090611ee0578015611edb576000611e54610e546001600160701b0388811690881663ffffffff611a2416565b90506000611e6183611ef4565b905080821115611ed8576000611e8f611e80848463ffffffff611a8716565b6000549063ffffffff611a2416565b90506000611eb483611ea886600363ffffffff611a2416565b9063ffffffff6120a516565b90506000818381611ec157fe5b0490508015611ed457611ed48782611f46565b5050505b50505b611eec565b8015611eec576000600b555b505092915050565b60006003821115611f37575080600160028204015b81811015611f3157809150600281828581611f2057fe5b040181611f2957fe5b049050611f09565b50611f41565b8115611f41575060015b919050565b600054611f59908263ffffffff6120a516565b60009081556001600160a01b038316815260016020526040902054611f84908263ffffffff6120a516565b6001600160a01b038316600081815260016020908152604080832094909455835185815293519293919260008051602061213d8339815191529281900390910190a35050565b6000818310611fd95781611fdb565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461200b908263ffffffff611a8716565b6001600160a01b03831660009081526001602052604081209190915554612038908263ffffffff611a8716565b60009081556040805183815290516001600160a01b0385169160008051602061213d833981519152919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161209d57fe5b049392505050565b80820182811015610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e4544ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef50616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582082d63502615ee1d8d2654f9dbbe00633c648597f2419f5919c9a5bd46e1de28c64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a7231582033e8a3d14aff3d6170b9354e85e0c07cdc2a001d6789af79053c7139383257d464736f6c634300051000320000000000000000000000000f9399fc81dac77908a2dde54bb87ee2d17a3373

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

0000000000000000000000000f9399fc81dac77908a2dde54bb87ee2d17a3373

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f9399fc81dac77908a2dde54bb87ee2d17a3373


Deployed ByteCode Sourcemap

20008:1903:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20008:1903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20172:20;;;:::i;:::-;;;;-1:-1:-1;;;;;20172:20:0;;;;;;;;;;;;;;20199:26;;;:::i;20303:25::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20303:25:0;;:::i;20525:96::-;;;:::i;:::-;;;;;;;;;;;;;;;;20058:105;;;:::i;21741:167::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21741:167:0;-1:-1:-1;;;;;21741:167:0;;:::i;:::-;;20629:953;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20629:953:0;;;;;;;;;;:::i;20234:62::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20234:62:0;;;;;;;;;;:::i;21590:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21590:143:0;-1:-1:-1;;;;;21590:143:0;;:::i;20172:20::-;;;-1:-1:-1;;;;;20172:20:0;;:::o;20199:26::-;;;-1:-1:-1;;;;;20199:26:0;;:::o;20303:25::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20303:25:0;;-1:-1:-1;20303:25:0;:::o;20525:96::-;20598:8;:15;20525:96;:::o;20058:105::-;20131:30;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;20131:30:0;20114:48;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;20114:48:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20114:48:0;;;20104:59;;;;;;20058:105;:::o;21741:167::-;21829:11;;-1:-1:-1;;;;;21829:11:0;21815:10;:25;21807:56;;;;;-1:-1:-1;;;21807:56:0;;;;;;;;;;;;-1:-1:-1;;;21807:56:0;;;;;;;;;;;;;;;21874:11;:26;;-1:-1:-1;;;;;;21874:26:0;-1:-1:-1;;;;;21874:26:0;;;;;;;;;;21741:167::o;20629:953::-;20699:12;20742:6;-1:-1:-1;;;;;20732:16:0;:6;-1:-1:-1;;;;;20732:16:0;;;20724:57;;;;;-1:-1:-1;;;20724:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20793:14;20809;20836:6;-1:-1:-1;;;;;20827:15:0;:6;-1:-1:-1;;;;;20827:15:0;;:53;;20865:6;20873;20827:53;;;20846:6;20854;20827:53;20792:88;;-1:-1:-1;20792:88:0;-1:-1:-1;;;;;;20899:20:0;;20891:54;;;;;-1:-1:-1;;;20891:54:0;;;;;;;;;;;;-1:-1:-1;;;20891:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20964:15:0;;;20999:1;20964:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;20956:70;;;;;-1:-1:-1;;;20956:70:0;;;;;;;;;;;;-1:-1:-1;;;20956:70:0;;;;;;;;;;;;;;;21067:21;21091:30;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;21091:30:0;21067:54;;21132:12;21174:6;21182;21157:32;;;;;;-1:-1:-1;;;;;21157:32:0;-1:-1:-1;;;;;21157:32:0;;;;;;;;-1:-1:-1;;;;;21157:32:0;-1:-1:-1;;;;;21157:32:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21157:32:0;;;21147:43;;;;;;21132:58;;21280:4;21269:8;21263:15;21258:2;21248:8;21244:17;21241:1;21233:52;21306:45;;;-1:-1:-1;;;21306:45:0;;-1:-1:-1;;;;;21306:45:0;;;;;;;;;;;;;;;;21225:60;;-1:-1:-1;21306:29:0;;;;;;:45;;;;;-1:-1:-1;;21306:45:0;;;;;;;;-1:-1:-1;21306:29:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;21306:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;21362:15:0;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;-1:-1:-1;;;;;;21362:30:0;;;;;;;;21403:15;;;;;;:23;;;;;;;;:30;;;;;;;;21489:8;27:10:-1;;-1:-1;23:18;;45:23;;21489:19:0;;;;;;;;;;;;;;;;;;21558:15;;21524:50;;;;;;;;;;;;;;;;;;;;;;20629:953;;;;;;;;:::o;20234:62::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20234:62:0;;:::o;21590:143::-;21666:11;;-1:-1:-1;;;;;21666:11:0;21652:10;:25;21644:56;;;;;-1:-1:-1;;;21644:56:0;;;;;;;;;;;;-1:-1:-1;;;21644:56:0;;;;;;;;;;;;;;;21711:5;:14;;-1:-1:-1;;;;;;21711:14:0;-1:-1:-1;;;;;21711:14:0;;;;;;;;;;21590:143::o;20008:1903::-;;;;;;;;:::o

Swarm Source

bzzr://33e8a3d14aff3d6170b9354e85e0c07cdc2a001d6789af79053c7139383257d4
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.