Contract 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0c10acd0ce698737b7b0e9e95172f79648dbf0fe14ca6817cd965d9790168501Create Pair227634782023-06-07 6:57:45118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x133ab0dc639904dbb568c85b7f5293600f0f208d8f917d311ba85563770694a4Create Pair227629702023-06-07 6:40:17118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x53c869d16189fb4f05bb0e50f5b9ee0fc6571e8194ccccf261967feda4a6130fCreate Pair227629542023-06-07 6:39:45118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x3bb811fa11eb7669f95710550a4cd01139f51af69ce93c85ad0db3e97dad5967Create Pair227629392023-06-07 6:39:11118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x02100c50cd458444bd38ce48c70aac80c4ebb65429bd8b4026e685baad397639Create Pair227627532023-06-07 6:32:51118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x10c9003f53f9b84b16cc212da1e0a56586624e1c86cfad080b22807ee97d8b02Create Pair227626242023-06-07 6:28:25118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x047249bf3e76048b290ee91d05394cbcbdbc562a8a252ef7c7734a3e22da6a88Create Pair227626092023-06-07 6:27:51118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x08571a9243a61fa7a9d8d2b8f738830cede0088b5f5900a2bf8abbcefa9eb6a0Create Pair227625912023-06-07 6:27:15118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x55bf4e75d588f5d01650fb4973b2a98d187b14646597075228a3bddd79e654abCreate Pair227625722023-06-07 6:26:37118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x716c52aedb58b8a2a883ccce2dcc09dec2846f388143c0304d2aa6718b4b377cCreate Pair227625482023-06-07 6:25:45118 days 3 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT1,005.372
0x86551ff47aec6318d753330861b87cb1dec25dd9da041e32634ee52f00fca395Create Pair209802202023-04-25 16:58:55160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x6c342c34c9cb69aac78877452133c9bfde194c72bb95908955ad1fabbbf0c373Create Pair209801102023-04-25 16:55:11160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x90da4e4aa4a338cb5a29aa30bbf34253a4334b1b22ab43b7a7f59ffbe8bdd179Create Pair209800862023-04-25 16:54:19160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x807efcb8cf6d17fefa0333b05004a946db3884f78e88923157ec02d4a6fbc3a6Create Pair209800652023-04-25 16:53:37160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x139c28c09e9689b7a3a98942044ccad4852351ba45b75162881b41f140c2b58bCreate Pair209800402023-04-25 16:52:47160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.40996
0x2f22366e129207b787383840b10227cc5ddbebe2a2107ae8262291e2a76c0667Create Pair209800102023-04-25 16:51:43160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x31b735ef251e9284180c689075564d88370756ad66b17bf348098119ed4cdab0Create Pair209799652023-04-25 16:50:09160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x83166c02ea3a47ab9fec13f943e71127a3cbf266d4055b35b64ff391b559f24fCreate Pair209799352023-04-25 16:49:09160 days 17 hrs agoPepMan: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT824.41406
0x53cbff5c8d3741b968d753f03f63d96365be2819cb7821fd780ae483b9460a22Set Fee To63304452022-05-10 18:49:09510 days 15 hrs agoInterCrone World: Deployer IN  0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a0 BTT13.8099
0x51cb77b4a9fb1b1419d7a6fca2cc4014f67995a558d3287ac329b9b395a0a94d0x6080604063165252022-05-10 10:50:37510 days 23 hrs agoInterCrone World: Deployer IN  Create: IswapV1Factory0 BTT733.6137
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xef4533e85badffe21cb0e1fe70a52417a7966b104660db2f301d10d28e8dde0c266596222023-09-08 7:10:4125 days 3 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x100b12803427831adc474ec519e9cb2448d6a0e1995846a802030336c276c637266588802023-09-08 6:45:1325 days 3 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x44ec41cfb76f72a186de09215d5b536785ca6fe12429ade7d9236e7e71c91f88262125012023-08-28 15:00:4435 days 19 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x48201a4dfff80cbfd6b867315adb01df5036e9ca1e4dfa1e8fc33855a7ff7586261701252023-08-27 14:44:0436 days 19 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x0a16fac58afc7db89c9b69ee03cf91e72405ef2ff2c3e87011cb01b101bf6428260291972023-08-24 5:59:4040 days 4 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x304ba553f409ec8ec95914c09f69884b38af149dc1eb95eb237d7ea2d8c72a22257296332023-08-17 2:22:0847 days 7 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x35a51c1aa57a5eb115495c45f96a7f3761d4d10fc11cabb7a2298daaf60b3136256451852023-08-15 1:59:1649 days 8 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x89cdacc8a231c562f225d32931b6d69577d04f2065f7154d2e5e106096e34bfb256446122023-08-15 1:39:3449 days 8 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x4140d6a93b26cc7ac7e7bd6ceaca9997e6d1e42c11709e4fd9bbd191e16b1bb0256443482023-08-15 1:30:2649 days 8 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x8f1f1fa0a9ee670186763570506e246b84e3c4b67682d145878f4d859ec0c8b6256133152023-08-14 7:43:4450 days 2 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0xe319abca54f05aeae5f1f03f61ca52eddc0d9ceaac95e53c7472dbd8ba4cb3df255521392023-08-12 20:40:4851 days 13 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x316905683757a4e26ec1168d5a247f20dfb2279d5f1fd1a27bd58df8a945e331255490002023-08-12 18:52:5451 days 15 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x94acfb055c7dc60b3f2eb0a2dbe063e8238fe43e90a97e757376606d63315401255489092023-08-12 18:49:4451 days 15 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x6ab1628396f127eefa8df2707ab17120631e9cb1cbbb3a8627a93993cc331f48255488642023-08-12 18:48:1451 days 15 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0xd1f263824bedb06a0cf2473574e3fe901173c49f02347555a6471dbf898a8b47253663822023-08-08 10:15:2255 days 23 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x6a8795a43642612e62a02a1583aee299a6090726f08994f9252561bbe5b1aaf8253663662023-08-08 10:14:5055 days 23 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x06b8174c30b4af6ea2e2fc1c248b93bed91c9c91dfbf24c7865952e50e7aece1253585552023-08-08 5:46:2056 days 4 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x93f36c92748530beb34984c14f1955e11a4b5edf6097b74c0f3c998bf5a1e553253583512023-08-08 5:39:2056 days 4 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x20dce3c9c4b4bbd5e113644952ae9c8d1439cc10f4cc83982523eadd6d6ff8fa253582762023-08-08 5:36:4656 days 4 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x158ed9ce6e0cf40c716822e101b3dd85b4562918fa9afcacb439f83cc0f2e29f253348232023-08-07 16:10:3256 days 18 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0xb13b16227e2f35910ff756cf8ec4207d2aa238b3e41736c96b9676d7f7492da0250539402023-07-31 23:14:2963 days 10 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x5b35dc321428935a9b2e8973e3e50b0fedea2cfa51973d4a40e0acff9576fe7c247023772023-07-23 13:49:3171 days 20 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0xd319cf4bca9320b8c500c9d1b3aa296bc967d7d9cbe786e5d49fa615f182d218247023442023-07-23 13:48:2571 days 20 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0xaf20398ba0d120fdd5ea0513e48235a9653ae199c0a00558114b6bef4ddb09ea247023082023-07-23 13:47:0971 days 20 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
0x9549eb1438f6e839f292e137334bdc537a8f681fe4423d3fc7528a3442d205e7247022752023-07-23 13:46:0371 days 20 hrs ago 0x0cee0dfb5c680e3ccaa46fa28d5057f204e24f0a  Contract Creation0 BTT
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IswapV1Factory

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at bttcscan.com on 2022-05-10
*/

/*! IswapV2Factory.sol | SPDX-License-Identifier: MIT License */

pragma solidity ^0.5.16;

interface IIswapV1Factory {
    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 IIswapV1Pair {
    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 IIswapV1ERC20 {
    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 IswapV1ERC20 is IIswapV1ERC20 {
    using SafeMath for uint;

    string public constant name = 'Iswap LP Token';
    string public constant symbol = 'Iswap 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, 'IswapV1: 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, 'IswapV1: 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 IIswapV1Callee {
    function iswapV1Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

contract IswapV1Pair is IIswapV1Pair, IswapV1ERC20 {
    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, 'IswapV1: 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))), 'IswapV1: 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, 'IswapV1: 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), 'IswapV1: 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 2/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IIswapV1Factory(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)).mul(10);
                    uint denominator = rootK.mul(20).add(rootKLast.mul(10));
                    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, 'IswapV1: 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, 'IswapV1: 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, 'IswapV1: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'IswapV1: 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, 'IswapV1: 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) IIswapV1Callee(to).iswapV1Call(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, 'IswapV1: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = (balance0.mul(10000).sub(amount0In.mul(30)));
        uint balance1Adjusted = (balance1.mul(10000).sub(amount1In.mul(30)));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(10000**2), 'IswapV1: 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 IswapV1Factory is IIswapV1Factory {
	bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(IswapV1Pair).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, 'IswapV1: IDENTICAL_ADDRESSES');
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'IswapV1: ZERO_ADDRESS');
        require(getPair[token0][token1] == address(0), 'IswapV1: PAIR_EXISTS'); // single check is sufficient
        bytes memory bytecode = type(IswapV1Pair).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(token0, token1));
        assembly {
			pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        IswapV1Pair(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, 'IswapV1: FORBIDDEN');
        feeTo = _feeTo;
    }

    function setFeeToSetter(address _feeToSetter) external {
        require(msg.sender == feeToSetter, 'IswapV1: 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"}]

608060405234801561001057600080fd5b50604051612b3a380380612b3a8339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055612ad7806100636000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80635855a25a116100665780635855a25a146100fb578063a2e74af614610103578063c9c653961461012b578063e6a4390514610159578063f46901ed1461018757610093565b8063017e7e5814610098578063094b7415146100bc5780631e3dd18b146100c4578063574f2ba3146100e1575b600080fd5b6100a06101ad565b604080516001600160a01b039092168252519081900360200190f35b6100a06101bc565b6100a0600480360360208110156100da57600080fd5b50356101cb565b6100e96101f2565b60408051918252519081900360200190f35b6100e96101f8565b6101296004803603602081101561011957600080fd5b50356001600160a01b031661028b565b005b6100a06004803603604081101561014157600080fd5b506001600160a01b0381358116916020013516610301565b6100a06004803603604081101561016f57600080fd5b506001600160a01b0381358116916020013516610628565b6101296004803603602081101561019d57600080fd5b50356001600160a01b031661064e565b6000546001600160a01b031681565b6001546001600160a01b031681565b600381815481106101d857fe5b6000918252602090912001546001600160a01b0316905081565b60035490565b604051610207602082016106c4565b6020820181038252601f19601f820116604052506040516020018082805190602001908083835b6020831061024d5780518252601f19909201916020918201910161022e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6001546001600160a01b031633146102df576040805162461bcd60e51b815260206004820152601260248201527124b9bbb0b82b189d102327a92124a22222a760711b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160a01b0316836001600160a01b0316141561036a576040805162461bcd60e51b815260206004820152601c60248201527f497377617056313a204944454e544943414c5f41444452455353455300000000604482015290519081900360640190fd5b600080836001600160a01b0316856001600160a01b03161061038d578385610390565b84845b90925090506001600160a01b0382166103e8576040805162461bcd60e51b8152602060048201526015602482015274497377617056313a205a45524f5f4144445245535360581b604482015290519081900360640190fd5b6001600160a01b03828116600090815260026020908152604080832085851684529091529020541615610459576040805162461bcd60e51b8152602060048201526014602482015273497377617056313a20504149525f45584953545360601b604482015290519081900360640190fd5b60606040518060200161046b906106c4565b6020820181038252601f19601f8201166040525090506000838360405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f56040805163485cc95560e01b81526001600160a01b038781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561053e57600080fd5b505af1158015610552573d6000803e3d6000fd5b505050506001600160a01b0384811660008181526002602081815260408084208987168086529083528185208054978d166001600160a01b031998891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6001546001600160a01b031633146106a2576040805162461bcd60e51b815260206004820152601260248201527124b9bbb0b82b189d102327a92124a22222a760711b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6123d1806106d28339019056fe60806040526001600c5534801561001557600080fd5b50604051469080605261237f8239604080519182900360520182208282018252600e83526d24b9bbb0b8102628102a37b5b2b760911b6020938401528151808301835260018152603160f81b908401528151808401919091527f1cb7be05e5ea6ec10271a219fcd1e40dc87c13348d07cd7dbe436a5f210d58ae818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612276806101096000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610b0f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610b39565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b63565b604080519115158252519081900360200190f35b610339610b7a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b89565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b8f565b61035d610c29565b6103b5610c4d565b6040805160ff9092168252519081900360200190f35b61035d610c52565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c58565b61035d610cda565b61035d610ce0565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ce6565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b0316610fe4565b61035d610ff6565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316610ffc565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b031661100e565b6040805192835260208301919091528051918290030190f35b6102446113b2565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356113d6565b61035d6113e3565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b03166113e9565b610339611552565b610339611561565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611570565b61035d600480360360408110156105a357600080fd5b506001600160a01b0381358116916020013516611770565b61023a61178d565b600c5460011461060c576040805162461bcd60e51b815260206004820152600f60248201526e125cddd85c158c4e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c558415158061061f5750600084115b61065a5760405162461bcd60e51b81526004018080602001828103825260238152602001806121f96023913960400191505060405180910390fd5b600080610665610b39565b5091509150816001600160701b03168710801561068a5750806001600160701b031686105b6106db576040805162461bcd60e51b815260206004820152601f60248201527f497377617056313a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107195750806001600160a01b0316896001600160a01b031614155b610760576040805162461bcd60e51b8152602060048201526013602482015272497377617056313a20494e56414c49445f544f60681b604482015290519081900360640190fd5b8a1561077157610771828a8d6118ed565b891561078257610782818a8c6118ed565b861561083d57886001600160a01b031663ee6da0c0338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561082457600080fd5b505af1158015610838573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d60208110156108ad57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108f957600080fd5b505afa15801561090d573d6000803e3d6000fd5b505050506040513d602081101561092357600080fd5b5051925060009150506001600160701b0385168a90038311610946576000610955565b89856001600160701b03160383035b9050600089856001600160701b0316038311610972576000610981565b89856001600160701b03160383035b905060008211806109925750600081115b6109cd5760405162461bcd60e51b81526004018080602001828103825260228152602001806121b16022913960400191505060405180910390fd5b6000610a016109e384601e63ffffffff611a8716565b6109f58761271063ffffffff611a8716565b9063ffffffff611aea16565b90506000610a196109e384601e63ffffffff611a8716565b9050610a4b6305f5e100610a3f6001600160701b038b8116908b1663ffffffff611a8716565b9063ffffffff611a8716565b610a5b838363ffffffff611a8716565b1015610a9b576040805162461bcd60e51b815260206004820152600a602482015269497377617056313a204b60b01b604482015290519081900360640190fd5b5050610aa984848888611b3a565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600e81526020016d24b9bbb0b8102628102a37b5b2b760911b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b70338484611cfd565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610c14576001600160a01b0384166000908152600260209081526040808320338452909152902054610bef908363ffffffff611aea16565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c1f848484611d5f565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610cac576040805162461bcd60e51b815260206004820152601260248201527124b9bbb0b82b189d102327a92124a22222a760711b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610d31576040805162461bcd60e51b815260206004820152600f60248201526e125cddd85c158c4e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580610d41610b39565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d9557600080fd5b505afa158015610da9573d6000803e3d6000fd5b505050506040513d6020811015610dbf57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e1257600080fd5b505afa158015610e26573d6000803e3d6000fd5b505050506040513d6020811015610e3c57600080fd5b505190506000610e5b836001600160701b03871663ffffffff611aea16565b90506000610e78836001600160701b03871663ffffffff611aea16565b90506000610e868787611e19565b60005490915080610ec357610eaf6103e86109f5610eaa878763ffffffff611a8716565b611f8c565b9850610ebe60006103e8611fde565b610f12565b610f0f6001600160701b038916610ee0868463ffffffff611a8716565b81610ee757fe5b046001600160701b038916610f02868563ffffffff611a8716565b81610f0957fe5b04612074565b98505b60008911610f515760405162461bcd60e51b81526004018080602001828103825260268152602001806121d36026913960400191505060405180910390fd5b610f5b8a8a611fde565b610f6786868a8a611b3a565b8115610f9757600854610f93906001600160701b0380821691600160701b90041663ffffffff611a8716565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461105a576040805162461bcd60e51b815260206004820152600f60248201526e125cddd85c158c4e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c8190558061106a610b39565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561113e57600080fd5b505afa158015611152573d6000803e3d6000fd5b505050506040513d602081101561116857600080fd5b5051306000908152600160205260408120549192506111878888611e19565b6000549091508061119e848763ffffffff611a8716565b816111a557fe5b049a50806111b9848663ffffffff611a8716565b816111c057fe5b04995060008b1180156111d3575060008a115b61120e5760405162461bcd60e51b815260040180806020018281038252602681526020018061221c6026913960400191505060405180910390fd5b611218308461208c565b611223878d8d6118ed565b61122e868d8c6118ed565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561127457600080fd5b505afa158015611288573d6000803e3d6000fd5b505050506040513d602081101561129e57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d602081101561131457600080fd5b5051935061132485858b8b611b3a565b811561135457600854611350906001600160701b0380821691600160701b90041663ffffffff611a8716565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600881526020016704973776170204c560c41b81525081565b6000610b70338484611d5f565b6103e881565b600c54600114611432576040805162461bcd60e51b815260206004820152600f60248201526e125cddd85c158c4e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926114e192859287926114dc926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d60208110156114ce57600080fd5b50519063ffffffff611aea16565b6118ed565b600854604080516370a0823160e01b8152306004820152905161154892849287926114dc92600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b1580156114a457600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156115b8576040805162461bcd60e51b815260206004820152601060248201526f125cddd85c158c4e881156141254915160821b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156116d3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906117095750886001600160a01b0316816001600160a01b0316145b61175a576040805162461bcd60e51b815260206004820152601a60248201527f497377617056313a20494e56414c49445f5349474e4154555245000000000000604482015290519081900360640190fd5b611765898989611cfd565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c546001146117d6576040805162461bcd60e51b815260206004820152600f60248201526e125cddd85c158c4e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b815230600482015290516118e6926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561189e57600080fd5b505afa1580156118b2573d6000803e3d6000fd5b505050506040513d60208110156118c857600080fd5b50516008546001600160701b0380821691600160701b900416611b3a565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061199a5780518252601f19909201916020918201910161197b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146119fc576040519150601f19603f3d011682016040523d82523d6000602084013e611a01565b606091505b5091509150818015611a2f575080511580611a2f5750808060200190516020811015611a2c57600080fd5b50515b611a80576040805162461bcd60e51b815260206004820152601860248201527f497377617056313a205452414e534645525f4641494c45440000000000000000604482015290519081900360640190fd5b5050505050565b6000811580611aa257505080820282828281611a9f57fe5b04145b610b74576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b74576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611b5857506001600160701b038311155b611b9d576040805162461bcd60e51b8152602060048201526011602482015270497377617056313a204f564552464c4f5760781b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611bcd57506001600160701b03841615155b8015611be157506001600160701b03831615155b15611c52578063ffffffff16611c0f85611bfa8661212a565b6001600160e01b03169063ffffffff61213c16565b600980546001600160e01b03929092169290920201905563ffffffff8116611c3a84611bfa8761212a565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d88908263ffffffff611aea16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611dbd908263ffffffff61216116565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d6020811015611e9457600080fd5b5051600b546001600160a01b038216158015945091925090611f78578015611f73576000611ed7610eaa6001600160701b0388811690881663ffffffff611a8716565b90506000611ee483611f8c565b905080821115611f70576000611f17600a610a3f611f08868663ffffffff611aea16565b6000549063ffffffff611a8716565b90506000611f4c611f2f84600a63ffffffff611a8716565b611f4086601463ffffffff611a8716565b9063ffffffff61216116565b90506000818381611f5957fe5b0490508015611f6c57611f6c8782611fde565b5050505b50505b611f84565b8015611f84576000600b555b505092915050565b60006003821115611fcf575080600160028204015b81811015611fc957809150600281828581611fb857fe5b040181611fc157fe5b049050611fa1565b50611fd9565b8115611fd9575060015b919050565b600054611ff1908263ffffffff61216116565b60009081556001600160a01b03831681526001602052604090205461201c908263ffffffff61216116565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106120835781612085565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546120b5908263ffffffff611aea16565b6001600160a01b038316600090815260016020526040812091909155546120e2908263ffffffff611aea16565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161215957fe5b049392505050565b80820182811015610b74576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe497377617056313a20494e53554646494349454e545f494e5055545f414d4f554e54497377617056313a20494e53554646494349454e545f4c49515549444954595f4d494e544544497377617056313a20494e53554646494349454e545f4f55545055545f414d4f554e54497377617056313a20494e53554646494349454e545f4c49515549444954595f4255524e4544a265627a7a72315820fa20c6c85f166bc093c1442a1c3dc628c1c56c9e628b8ee652793a7acf5fe3da64736f6c63430005110032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a723158206617f38df3045912860ca1dded35e1aa0662cf259d7c722d732922bb1530cc9c64736f6c63430005110032000000000000000000000000913aacbf524636e923d30e05d0ac3b4c93372ed1

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

000000000000000000000000913aacbf524636e923d30e05d0ac3b4c93372ed1

-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0x913aacbf524636e923d30e05d0ac3b4c93372ed1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000913aacbf524636e923d30e05d0ac3b4c93372ed1


Deployed ByteCode Sourcemap

20089:1891:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20089:1891:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20251:20;;;:::i;:::-;;;;-1:-1:-1;;;;;20251:20:0;;;;;;;;;;;;;;20278:26;;;:::i;20382:25::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20382:25:0;;:::i;20604:96::-;;;:::i;:::-;;;;;;;;;;;;;;;;20136:105;;;:::i;21810:167::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21810:167:0;-1:-1:-1;;;;;21810:167:0;;:::i;:::-;;20708:943;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20708:943:0;;;;;;;;;;:::i;20313:62::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20313:62:0;;;;;;;;;;:::i;21659:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21659:143:0;-1:-1:-1;;;;;21659:143:0;;:::i;20251:20::-;;;-1:-1:-1;;;;;20251:20:0;;:::o;20278:26::-;;;-1:-1:-1;;;;;20278:26:0;;:::o;20382:25::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20382:25:0;;-1:-1:-1;20382:25:0;:::o;20604:96::-;20677:8;:15;20604:96;:::o;20136:105::-;20209: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;20209:30:0;20192: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;;;20192:48:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20192:48:0;;;20182:59;;;;;;20136:105;:::o;21810:167::-;21898:11;;-1:-1:-1;;;;;21898:11:0;21884:10;:25;21876:56;;;;;-1:-1:-1;;;21876:56:0;;;;;;;;;;;;-1:-1:-1;;;21876:56:0;;;;;;;;;;;;;;;21943:11;:26;;-1:-1:-1;;;;;;21943:26:0;-1:-1:-1;;;;;21943:26:0;;;;;;;;;;21810:167::o;20708:943::-;20778:12;20821:6;-1:-1:-1;;;;;20811:16:0;:6;-1:-1:-1;;;;;20811:16:0;;;20803:57;;;;;-1:-1:-1;;;20803:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20872:14;20888;20915:6;-1:-1:-1;;;;;20906:15:0;:6;-1:-1:-1;;;;;20906:15:0;;:53;;20944:6;20952;20906:53;;;20925:6;20933;20906:53;20871:88;;-1:-1:-1;20871:88:0;-1:-1:-1;;;;;;20978:20:0;;20970:54;;;;;-1:-1:-1;;;20970:54:0;;;;;;;;;;;;-1:-1:-1;;;20970:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21043:15:0;;;21078:1;21043:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;21035:70;;;;;-1:-1:-1;;;21035:70:0;;;;;;;;;;;;-1:-1:-1;;;21035:70:0;;;;;;;;;;;;;;;21146:21;21170: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;21170:30:0;21146:54;;21211:12;21253:6;21261;21236:32;;;;;;-1:-1:-1;;;;;21236:32:0;-1:-1:-1;;;;;21236:32:0;;;;;;;;-1:-1:-1;;;;;21236:32:0;-1:-1:-1;;;;;21236:32:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21236:32:0;;;21226:43;;;;;;21211:58;;21350:4;21339:8;21333:15;21328:2;21318:8;21314:17;21311:1;21303:52;21376:44;;;-1:-1:-1;;;21376:44:0;;-1:-1:-1;;;;;21376:44:0;;;;;;;;;;;;;;;;21295:60;;-1:-1:-1;21376:28:0;;;;;;:44;;;;;-1:-1:-1;;21376:44:0;;;;;;;;-1:-1:-1;21376:28:0;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;21376:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;21431:15:0;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;-1:-1:-1;;;;;;21431:30:0;;;;;;;;21472:15;;;;;;:23;;;;;;;;:30;;;;;;;;21558:8;27:10:-1;;-1:-1;23:18;;45:23;;21558:19:0;;;;;;;;;;;;;;;;;;21627:15;;21593:50;;;;;;;;;;;;;;;;;;;;;;20708:943;;;;;;;;:::o;20313:62::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20313:62:0;;:::o;21659:143::-;21735:11;;-1:-1:-1;;;;;21735:11:0;21721:10;:25;21713:56;;;;;-1:-1:-1;;;21713:56:0;;;;;;;;;;;;-1:-1:-1;;;21713:56:0;;;;;;;;;;;;;;;21780:5;:14;;-1:-1:-1;;;;;;21780:14:0;-1:-1:-1;;;;;21780:14:0;;;;;;;;;;21659:143::o;20089:1891::-;;;;;;;;:::o

Swarm Source

bzzr://6617f38df3045912860ca1dded35e1aa0662cf259d7c722d732922bb1530cc9c
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.