Contract 0xbcfccbde45ce874adcb698cc183debcf17952812

 
 
Txn Hash
Block
From
To
Value [Txn Fee]
0x345e81a5a74b3a8e3d94129269a4add0980f512e9f5f06d9ad0c553af224b38593573232021-07-21 17:56:472 days 7 hrs ago0xd4a0c4f78f90b3013658ad315920aface3c3c85a IN  PancakeSwap: Factory0 BNB0.009858815
0xaa3ff7650a4792ad7bbbd8b3c506acaeb46e3a44e3f4fb7fd33b81276fbf919c90946912021-07-12 14:58:3611 days 10 hrs ago0x16667f855f1e14705850c2877d3f9ac856c07e52 IN  PancakeSwap: Factory0 BNB0.009858875
0xc37f233f8eea7cd505b1441e1d25188adbc064f0a0a7cc3def0108237ce57b8390403162021-07-10 17:39:3313 days 7 hrs ago0x1fe1eb6154df921da858e287cfe0a2d4a4d37da3 IN  PancakeSwap: Factory0 BNB0.009858875
0x33875d4052b41659f327430a9676bf0d100c220198219cc8eacb49bb16e8f50e89686732021-07-08 5:56:0215 days 19 hrs ago0xe0a12b1e7a288a4cfd1af34c8af4351352578e8c IN  PancakeSwap: Factory0 BNB0.009858875
0x22ad69608c004040ad687bfca4e9508d424ddc5c9998c3969871c4d582c330f589088032021-07-06 3:55:5717 days 21 hrs ago0x9d41d89374547f383c47799f7b27cfadc0133d75 IN  PancakeSwap: Factory0 BNB0.009858925
0x43f8bc4649a02b6a27b39ead45908d47a568009eea9b03f784daa3d9a7925c7188747512021-07-04 23:15:0819 days 1 hr ago0x9f4dd9b633fccd4d8375f78d80198761e0c8a6c6 IN  PancakeSwap: Factory0 BNB0.009858925
0xc81f67b63492092de5e74e584e10184718344cfd151e3a9633dcdb58cb1f334688747452021-07-04 23:14:5019 days 1 hr ago0x9f4dd9b633fccd4d8375f78d80198761e0c8a6c6 IN  PancakeSwap: Factory0 BNB0.009858925
0x19e94fc932680abf549dfc1fa41851eeb019b9b9112d426d16eae05f70b0acf088681112021-07-04 17:41:2219 days 7 hrs ago0x3b7b8d99827b1059459a745d7989d6548cfeea87 IN  PancakeSwap: Factory0 BNB0.009858875
0xf963f93bf589649674f4e96ec25d9a232a70f39e6d273d61890dbaf346fc6ca888310622021-07-03 10:37:0420 days 14 hrs ago0xb120c16c0f4befbb25dfe34d57ab9f431d616ff9 IN  PancakeSwap: Factory0 BNB0.009858875
0x6a6278e0364a1b86ad7244ff7553f4acab8e87dae0b60e35f3e6d28c01cbb30988183892021-07-02 23:56:3621 days 1 hr ago0xb5de724942a62b634d2c404c08369545a285e33b IN  PancakeSwap: Factory0 BNB0.009858925
0x7e1baa5f910ccbb7a4ccbab180e6ace879a40c336e465758d4f8680653dc05fb87803282021-07-01 15:51:4722 days 9 hrs ago0x0ae39b13a5ef09c189ad2fae7206b643a3950813 IN  PancakeSwap: Factory0 BNB0.00010672
0xce7192c86980c0400781d0dc7ea5fcd558958dbd9ed5d4975b7b0a926ddf43f287802702021-07-01 15:48:5322 days 9 hrs ago0x0ae39b13a5ef09c189ad2fae7206b643a3950813 IN  PancakeSwap: Factory0 BNB0.00010672
0x8cd9541e693a68e794e0f8ea18bd39d43bac797ef254849496b05bbff3008cc787695712021-07-01 6:48:4722 days 18 hrs ago0xf2e3de7af0994c39718a3e62e3fce8cd58ca0972 IN  PancakeSwap: Factory0 BNB0.009858865
0x6243feb4e2c93a401c894a3426e6fdfe238e6940bd30ce76dcb43b495b76451e87664272021-07-01 4:10:4822 days 20 hrs ago0xd27a94225253669ff0bdeb2f6af375ac67a8c52d IN  PancakeSwap: Factory0 BNB0.009858875
0x705222f12d4771780cc4425733e9474d8b4e5c04dc1b8dcd0809c0743864e34987558272021-06-30 19:17:0123 days 5 hrs ago0xd27a94225253669ff0bdeb2f6af375ac67a8c52d IN  PancakeSwap: Factory0 BNB0.009858875
0x318da5307b9f98e2afdf646cbb6122d390962df06b5e87c9b4862bc3482f695d87556822021-06-30 19:09:4423 days 5 hrs ago0xd27a94225253669ff0bdeb2f6af375ac67a8c52d IN  PancakeSwap: Factory0 BNB0.009858875
0xa580952e00e3974d64974720c3a05aceacc5f0eda745d3d7e5bef59e75ca681585560232021-06-23 19:57:3630 days 5 hrs ago0x72b14e959bd479ff8ee98bb35755630bf9c169f8 IN  PancakeSwap: Factory0 BNB0.009858875
0x183f8c238846d1ba678e26846695fc54ec7018ace23834caaed5dd58b5f2bd0085339962021-06-23 1:31:4030 days 23 hrs ago0x61c85203c76faf9ddb2af84990402c922663a299 IN  PancakeSwap: Factory0 BNB0.009858875
0x4c09009162f6c98b2ce70014060a5acf86ce86b6704725fd6f5c05d3e5dc2aa084585542021-06-20 10:23:4633 days 14 hrs ago0x97a27a6a48adec7830ac76745c912a599fc406e9 IN  PancakeSwap: Factory0 BNB0.009858875
0x84e5369ba1e64c087331da54437dd383611039f007e0cf109519737e6217bbfd84542792021-06-20 6:49:0233 days 18 hrs ago0x7e9dab0b9657211fbb8d11fa73a6848a81f82582 IN  PancakeSwap: Factory0 BNB0.009858925
0x9eb27267f3ae5598e95c4b3872809e56d49684e885945a255581214cfe99531f84455322021-06-19 23:31:1334 days 1 hr agoOnion Mixer: Deployer IN  PancakeSwap: Factory0 BNB0.009858925
0x8545d3f59d6fed1b6f3d769db4a372e635331ba0d07221875fa15593a8fb96fa83293552021-06-15 21:52:1738 days 3 hrs agoKesef Finance: Deployer IN  PancakeSwap: Factory0 BNB0.009858865
0x1216c8a8d6748311333de0af4bbf431de896d234f9f5493b2a71466a3b91ba9a82639672021-06-13 14:37:3540 days 10 hrs ago0xaf7ebf3480b5684e4f40ae435074c09e6dc0d2a9 IN  PancakeSwap: Factory0 BNB0.009858925
0x53d1174636232537ebab22b2dd147ba97bc4b63371a3e05b6d3663fd048e4c5382235682021-06-12 4:43:3241 days 20 hrs ago0x98f15627c3b4849fe9f31da2a983dceb3ccc911d IN  PancakeSwap: Factory0 BNB0.009858925
0xa5ff7cd5754162f2eab22ec737c87313a534a66f22f1aeec800129901839e03d81594412021-06-09 23:05:0644 days 2 hrs agoVegan Finance: Deployer IN  PancakeSwap: Factory0 BNB0.009858875
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcb937b3f2e21f200f6d1cfcd76a9b676f043be78f1f92e0166f18f38ffa7564c94233122021-07-24 1:04:294 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x70412d8af2c0ed8e1969638bc8733b937c4e53c86e357554a915d6742a2d84af94231712021-07-24 0:57:2611 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x1574155dd67c3613f7d69c41f8df7bd4d9385dd81451f7d81387c12fce6cca4894230452021-07-24 0:51:0817 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xe63aedbdeae03e691cc4e7eed03b119301de691e14efe58bb2ecdb6eb71d176d94221772021-07-24 0:07:441 hr 1 min ago PancakeSwap: Factory  Contract Creation0 BNB
0xa1ed6d2f353f8cd2ca6c8159ef2ca1626988d2b6a6440a2ed9ff22a98bf13e9e94219182021-07-23 23:54:471 hr 14 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xf90f4d7ff87f9755557487f5ea63d56241fbf0a0d3e21de1d3c92bdd9ab8677294218162021-07-23 23:49:411 hr 19 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xb8cbcaea3738f6b819384c6da0712caf5a44d92c2f27aa06219427361f15fe8294216042021-07-23 23:39:051 hr 29 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x8b07de44f193c34163b4641cee407f9c6062362032707f71d5328b3e0469827f94214242021-07-23 23:30:051 hr 38 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x7e29cc626606927b72f21ee767c4d5a7ddcffa9d3afbfdd97b3cbb44c1a9aedd94213682021-07-23 23:27:171 hr 41 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x69bf6d2bf1ee666f4265a0b6240411149e46ce629fb5556d713e858397a8e43994212022021-07-23 23:18:591 hr 49 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x4fdc5445417eae7e0f72529fe9e5a74696df20e5ce14d1c147e39fb24993c35094208722021-07-23 23:02:292 hrs 6 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xe6405180dfe25db6d33945bd5f8343793ca87b247f9d8b9a52084652a935f75394207692021-07-23 22:57:202 hrs 11 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x601d9e30ad9b7a568c427eb236a631ba5bd7c76c0af6637e7b2c9b993b9b3c7294206832021-07-23 22:53:022 hrs 15 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xad9c0ea5195c941aa5e9eca8b1d07fe486123d9aa43b8fda9b925526bd55678494206492021-07-23 22:51:202 hrs 17 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x2b38c28319046108fa18bc4ad603d563419a082a4746d8328f456ce5c6ffaabc94206362021-07-23 22:50:412 hrs 18 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x22f65695b818b8aa93f5ba82a02ccef1afee01d9ceb4da7b678c28c4ea51b44f94204612021-07-23 22:41:562 hrs 27 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x0ded46023b2d13ed520adca83042cec86eb260273b4e9baa60be21d7f38c201094204602021-07-23 22:41:532 hrs 27 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x1e161d3da85fe5b93b0559399f0862774748845489783a97093d514d07da5bf494202692021-07-23 22:32:122 hrs 36 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x9bf1ba29beb4b775a2075de748ab9c179f51de8f064bd19ef673bc69a5834ac294201802021-07-23 22:27:452 hrs 41 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x173c471fcb3e3bae6239b861e5be73033cf2c288b5c2048d3edc327d2c1023d994199772021-07-23 22:17:362 hrs 51 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xd6909d9c39ea680f799627377d2c94d5fc93e05baecb9b500b01bd459e3d7f5a94196492021-07-23 22:01:123 hrs 7 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x5bd2f7640702982dd25809e3eec39486f6a536d4aaae8368647bd25de7f1ef0094194842021-07-23 21:52:573 hrs 15 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0xfae90562ed091b3ec4247b126b746e56a09ea4084ef8974429f33263667bb05a94194512021-07-23 21:51:183 hrs 17 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x4ee819a6a5cdbe5c95f64ceb7810e816522185c532dc1e8cb255ea81be0879c894194392021-07-23 21:50:423 hrs 18 mins ago PancakeSwap: Factory  Contract Creation0 BNB
0x3a2f6d43b41eed6487e7c9dda8eb5df1c4b2fc7659c13c79f5c5aab1d00e225b94191342021-07-23 21:35:273 hrs 33 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.