Contract 0xbcfccbde45ce874adcb698cc183debcf17952812

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x20df84c74a487734869706125cf7f13bea2f81d8732e8b3ffbb5d0f2ac6a4d0865429012021-04-13 23:33:044 mins ago0x8310826301f0dabdb64fbfc509f9571d6c1ced2f IN  PancakeSwap: Factory0 BNB0.009858875
0xe7f4e551dbf0f264409792c673cc4a0f4a33260b32ba3af3f5884a7f0e9fb87c65382952021-04-13 19:42:463 hrs 54 mins ago0x803c475262c7e60ec15659413d9ef4dec3d6c6de IN  PancakeSwap: Factory0 BNB0.009858925
0xe3f0b3b3facab4d5680add094e87bbfa6ca7045772af27b85b5f0b0a438918a365314782021-04-13 14:01:559 hrs 35 mins ago0xb1011cbbf850a4bae37ee21c96970eaab4eafd05 IN  PancakeSwap: Factory0 BNB0.009858875
0xe328f5c492d2a8c22c5aaee4ef58e52ca87b5fdfc2642a9cfef9515611a5d27365303882021-04-13 13:07:2510 hrs 29 mins ago0xb1011cbbf850a4bae37ee21c96970eaab4eafd05 IN  PancakeSwap: Factory0 BNB0.009858875
0x0fa95289b6a51daf71896645f7ae2fc5b0284c680dbf5ce6f8e5ba3c82447b4565286972021-04-13 11:42:5211 hrs 54 mins ago0xec6876784a5af73b657c5f9769a1cccd00000000 IN  PancakeSwap: Factory0 BNB0.009858875
0x4d5ca3c26040ac7802b176ae473ecfab8447d5882de135036f0da06a7a15bdd565244702021-04-13 8:11:3115 hrs 25 mins ago0x00681ee6ec980a3d25ddddf14dddeb31d9763877 IN  PancakeSwap: Factory0 BNB0.00022544
0x579835095cd8dc0596255107e8d2690efda86918935cde3d9e46b15ca9d9842f65165022021-04-13 1:32:3422 hrs 4 mins ago0x580245401d70f578693b0aae0a5e8f8b8e4b7c9e IN  PancakeSwap: Factory0 BNB0.009858925
0x2005651dc6aa09a20d97ba4490d38e1d87d56283bd2f644b2198bf424c6923ed65165002021-04-13 1:32:2822 hrs 4 mins ago0x580245401d70f578693b0aae0a5e8f8b8e4b7c9e IN  PancakeSwap: Factory0 BNB0.009858925
0xd19e749ecf2fe7f2219090769f91958621a3f7061afcbcbda145d0756df7344c65146342021-04-12 23:59:1023 hrs 38 mins ago0x580245401d70f578693b0aae0a5e8f8b8e4b7c9e IN  PancakeSwap: Factory0 BNB0.009858875
0xdbc1a1cbf5314cee5e643c1795b01c315f09e430ebe935686cf9aaaedbc2fbea65087662021-04-12 19:05:461 day 4 hrs ago0x1b9f64fd1c3957b0d9b538a4429efd0cc767fb92 IN  PancakeSwap: Factory0 BNB0.0236613
0x983c031ca1646b3e27e49a83e292d93c669f0f86bf8cc3c76eaa923259b7d05265038922021-04-12 15:02:041 day 8 hrs ago0xec6876784a5af73b657c5f9769a1cccd00000000 IN  PancakeSwap: Factory0 BNB0.009858815
0x5a4cb33e6d01778fbf5802907dd5aff29daaabb5f5632acf7af2800b6324455364986222021-04-12 10:36:071 day 13 hrs ago0x7e36e4a3e3e9f0c6cc1b2217dcfda703f1268131 IN  PancakeSwap: Factory0 BNB0.009858875
0x7164ef0284a8f309fabfc524de50a3ff48821b8b6cc6d659a09b19767479433d64878192021-04-12 1:35:291 day 22 hrs ago0x8118938999f2109fd421cb6d8441f52d317cadf9 IN  PancakeSwap: Factory0 BNB0.009858875
0xa80a4784ab2cf05b383fa911cf88681c7a4618ea68ffd8b3442947c0ea8ec39764878052021-04-12 1:34:471 day 22 hrs ago0x8118938999f2109fd421cb6d8441f52d317cadf9 IN  PancakeSwap: Factory0 BNB0.009858875
0x4e2e27b42e629524bbe9812c51ecef29f07232648496d2ef4f7005e0715a949f64870212021-04-12 0:55:351 day 22 hrs ago0x8118938999f2109fd421cb6d8441f52d317cadf9 IN  PancakeSwap: Factory0 BNB0.009858925
0x8ac13345e3d6526218d546194617b839d01e0192cb0839cba834fed40f728ee364786522021-04-11 17:57:022 days 5 hrs ago0x1b9f64fd1c3957b0d9b538a4429efd0cc767fb92 IN  PancakeSwap: Factory0 BNB0.009858925
0x9b0def6685f8b37ce26bbf51f1bb515eda670dcfb8d607dc706d5048dad12a1064647352021-04-11 6:20:192 days 17 hrs ago0x8118938999f2109fd421cb6d8441f52d317cadf9 IN  PancakeSwap: Factory0 BNB0.00099352
0x9a327b1329790899f5e82b46a2a20e032db6dbdbd79d3a931accbd3f8dcbd06a64633342021-04-11 5:09:042 days 18 hrs ago0xe31be902e186aa0fbf9237d967e2dba43fb1896b IN  PancakeSwap: Factory0 BNB0.00011709
0xcd157f56322e73ac0c5aa0b8049e7f17346e6bb5d073268eab4d8540d8c2ae3d64630812021-04-11 4:56:252 days 18 hrs ago0x037554e904a929f502e896a7a0ad43c0fbcd95c9 IN  PancakeSwap: Factory0 BNB0.009858815
0x3008fca1e0f5163e7a8396897bf19ecf499996d40fca6900657dcacd5c7c897f64629962021-04-11 4:52:102 days 18 hrs ago0xb8d0e9a0d79559cc93a268910188ca1e866c6a6a IN  PancakeSwap: Factory0 BNB0.009858925
0x7632e41cc422534c2f375b786810ac10753759d5db93c004c3222dde8d2be1c564626622021-04-11 4:35:282 days 19 hrs ago0x2935f4d101341d8302e1d7a9aa4a8febccc238a9 IN  PancakeSwap: Factory0 BNB0.009858875
0x05c53c7a09cf202e2bf28828b89081505ea921bd3bc3c567c7242789e5ab6d9264576752021-04-11 0:26:072 days 23 hrs ago0x95030e9a016997a5b98ad6055b2bb3bf83802274 IN  PancakeSwap: Factory0 BNB0.009858925
0xd6de3d82f25261f74749772b1c94bd58dcd344b3ff7ca7859a8e7e67b8c471da64574262021-04-11 0:13:402 days 23 hrs ago0xb7ee69ca09f21937ec84a2b2a70fa56b9781b29c IN  PancakeSwap: Factory0 BNB0.009858875
0x9627e57c88a96ca43ba992e0e82ac97b252518941459d2942e5bdbba33dca38664569962021-04-10 23:52:102 days 23 hrs ago0x5e9b1947346a27b9129a97e2820c515516661509 IN  PancakeSwap: Factory0 BNB0.009858875
0xf500c71c21c001701a6134987512b00a99a0348c05d49e96afa3e861f559a0dc64567022021-04-10 23:37:282 days 23 hrs ago0x150c1b9ef485c62342a67d286ff26fdfa80c54fb IN  PancakeSwap: Factory0 BNB0.009858875
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x05f3da1e1a8acf8b41308df808047ad2f0c34eeaf129dd5d29faf0df3443df7065429762021-04-13 23:36:4921 secs ago PancakeSwap: Factory  Contract Creation0 BNB
0xc95ad0cab28784dc192791ca537d09451cde7daf0fecdc44db1cc0633a37d3c865429022021-04-13 23:33:074 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x20df84c74a487734869706125cf7f13bea2f81d8732e8b3ffbb5d0f2ac6a4d0865429012021-04-13 23:33:044 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xa11027c47982bd8f1d8fa7d119aee4a3e0929054599bc98143a5bc3f018168fc65428802021-04-13 23:32:015 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x0d009fb8c65805256a19731995346b3459adfe6e540b906da2845e72954231e265428642021-04-13 23:31:135 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x0f9d00e6ee00bd6511f97af2558f554da97daa175607f2e3d9dbd7be4aac65a465428312021-04-13 23:29:347 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xb130b97c00dce5263b68abc1c921793a3a88c2a5757798c1a1b1c9ee1387558e65428122021-04-13 23:28:378 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xdad1ffdc95072134811a30a2076ac862716bfe58f80f57f36439f0a7071d612e65428102021-04-13 23:28:318 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xff7a08fb3a4f7063d230e54ca2ac80078d5564d846933c49f9469f18b7ae619b65427902021-04-13 23:27:319 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xa8f99b0d47e7298e199b46359a9d27a75a1c5af6f96d1dee2dbdc63aceb08d7c65427332021-04-13 23:24:4012 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xafb0536ff423946187e52609d522335d9b858832931ef0631f92d4b0fc67834365427142021-04-13 23:23:4313 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xfad3c34d7b230d753013a7724ec908d32e01ee2b0cd8acf7cebfa1d9ee9f2c9365426932021-04-13 23:22:4014 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xfdc8661560cfb0aabd23a799699a98b00234eadd909552e06836d70d5fb05be565426892021-04-13 23:22:2814 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x4c65d8023cd97a5c8e05305231cd4b8e78f19ba0ca8693556ad6070d50be6da865426582021-04-13 23:20:5516 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x4fe0aa82f8c3281469de6f739b2eb8e2523a44dd2df0c48be18c0c25f477c2e265426382021-04-13 23:19:5517 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x292b2df7d4e05f145731e2076c728ee19e02e57d5100f9bc87d94a49f67c3c6365426362021-04-13 23:19:4917 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x2f8da96b387f906eb6b384b3ff8151f75e1e76e9f557dc00854357ae4a3ac2f065426142021-04-13 23:18:4318 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xdec47c54ed7f8a442ec844cbf9c0a1004253c8030c1151056fcb4e37ad8af18965426012021-04-13 23:18:0419 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xe85c9c0500494b4f27e7983b1bacefbd425110d6a188b40aa87794bf1bf72e6565425912021-04-13 23:17:3419 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x8983c324687231957398d64c718742562dfeabe4dd90d37231158bc2bb62b77265425912021-04-13 23:17:3419 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x155c2f7d0d570c892ab76b7e165a5a51c2440150a11c7de7dbf40eb48764b82d65425302021-04-13 23:14:3122 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xa62172180766204da2258134d27feaf7bd630ea53bc7a35ad5a5e1a9c711a7ee65424582021-04-13 23:10:5526 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x914cbc37c8d27644b406a2d130553ad58c7f4cb2efaaac90100f73af5810151865424472021-04-13 23:10:2226 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xa056dd013a416939efeac83e6f07fcaf6dfe89a7edb22b74b5a1500e1ff3577865424322021-04-13 23:09:3727 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x2dfb5c0a8af08ae0bf0e4db85e8f416550fca7b4d224a31d9cf2c8ae56aef16165424132021-04-13 23:08:4028 mins ago PancakeSwap: Factory  Contract Creation0 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.