Contract 0x8b8149Dd385955DC1cE77a4bE7700CCD6a212e65 2

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc544d4de1599390089d018e84616231b539191d2dc8eb7f904eb85c70ab67b51Approve753227782023-03-30 17:33:5355 mins ago0x3efd5cdb46c700481f40058341aa220ac2552660 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003367 0.13724
0xffe01cd2a23c910993d6d2993bad38fdf3e1ff055cdf5495e5d6996b7316b2d0Approve748928012023-03-29 11:41:001 day 6 hrs ago0x6d1f7cab93cadc7e6de33b350bfd88415262460a IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000049720.1
0xc270bc36e4a8e0c74acee696acbfbae717039dc8749654970b3e8869ef293a86Approve745889152023-03-28 14:20:552 days 4 hrs ago0xedf4061425b48c2d8ca19461850ebff9c538fc10 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000058190.1
0x03c1a43bf67b9386e249a10ac76ae8810641341e48962557fb6935ca5ea66bd7Approve745253782023-03-28 9:57:402 days 8 hrs ago0x8ed81f18b4b559eda9bdd6ea0d6e906230b03ae7 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00004289 0.1
0xf4a3a7d6005e931f8ac08e9e0431b36d5b874f6ecac3946305d07307495c6ba9Approve742458622023-03-27 14:25:593 days 4 hrs ago0x175fb20b9b5bcf80a0167d403405e6f3a074cfa0 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00005126 0.1
0x6dc23dfb3b14420c1384ab73ab7af1f9b64c20f15d7e5e2b166083709fd0d1d8Transfer742335672023-03-27 13:35:193 days 4 hrs ago0xe3420041b6e88d753fd2ce306e2d823319a2012e IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00004641 0.1
0xc19abfd2c22a15c3ba4cb7c91dc01e981377cd9573da1eaefe937c25c0bf8498Approve741524612023-03-27 8:00:563 days 10 hrs ago0x3efd5cdb46c700481f40058341aa220ac2552660 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003033 0.1
0xc8d0ab97cfd5e7b9f5051975904ee47ebc871240e188825fd80cd0c47dcbea4cApprove741519522023-03-27 7:58:483 days 10 hrs ago0xf9d4d68582736b1f845e4b5cad52ca7821a7333b IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000029870.1
0x99e3852ab18e6799919c1f490961571183b0925895a312f5961a8ed2798927f7Approve740606032023-03-27 1:41:433 days 16 hrs ago0x5455a28f1d5116610c3627fcb672d165d553d018 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000031460.1
0x83fa4d517c92b02af336a31c3dcbbee0838764e6dd9520ddabbeb2f5ea0c537cApprove739603542023-03-26 18:40:163 days 23 hrs ago0xc8499d0311ca31a60e11d58a5a7e4f1c24b95575 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003925 0.1
0xec316734baa86828ece0cc1660b6be21846dbd82b72a43d0e94398a5cfa739a8Approve739114242023-03-26 15:17:294 days 3 hrs ago0xe1e7595faed99cc644172e2cba54ec1fcf790e87 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00004787 0.1
0x56633ec8bad154d055ba305a6d3cc5d59fd9bc2ae1b4ac92054b632cc84e21b0Approve737439972023-03-26 3:41:534 days 14 hrs ago0x20d54c82d50f15c7adbcd69c9e308cb2c8fcd7c2 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00002791 0.1
0xcbc79e97e77a312e256a687d95d8f0fbdaf7bd88e90756a5c3db147f2908bb0aApprove736292022023-03-25 19:34:144 days 22 hrs ago0x45d7358c8699baec0b2a2cf166419d6f835effc9 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00005167 0.1
0x5041772104b69dbec581acfe2f42c744d368f373aa7d5051cc5ed0b69d6a61b0Approve734502102023-03-25 7:12:035 days 11 hrs ago0x3201946375c3a8ff71baadcb57f407067b8364a2 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003607 0.1
0x06cef4b863bbf0f9f172d870dd57b267b47276cde2a9af936e1c0f144c1079beApprove731274082023-03-24 9:02:146 days 9 hrs ago0xa1f3cdaec36bb391459277fab29d73a34626bb96 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000031450.1
0xeb0c8d9edbb9d0bd0f25b52f0bf6af03e498ac80b724033a24c171d9e70f1236Approve731249792023-03-24 8:52:036 days 9 hrs ago0xb119a646b6fc808416810e79de4ccb8b59b2385a IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003040.10002
0x022de30515674f20a874d37e5700694fa8ba082e31fde36770c575f0d4990399Approve731249632023-03-24 8:51:486 days 9 hrs ago0xb119a646b6fc808416810e79de4ccb8b59b2385a IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000030230.10118
0x3ae27edc3b8195e1175295fc16e5d6bd5d766aefe6816908d9bb37a005af436dApprove730247822023-03-24 2:01:046 days 16 hrs ago0x4c8f8089607ba1d370c7c62743a309bcb01d1eec IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000033530.1
0x465c2516fee8756a1c20e29b75bfa2f788541e5d5edb4a240189b464000755e6Approve730236552023-03-24 1:56:326 days 16 hrs ago0x4c8f8089607ba1d370c7c62743a309bcb01d1eec IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000033680.1
0x837d8d4330101cc8668275661be47699f31e6d64a883433029e134a07034eb75Approve729010592023-03-23 17:41:077 days 48 mins ago0xa0e49a03aa3b0c0060d07791850cdcb0f7699686 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00011862 2.31973
0xbd770586e519595132a6f3f638051ee7adfd0e2e69ddb1816904bab0d199c648Approve728960412023-03-23 17:21:557 days 1 hr ago0x360f8bedcde0ac1653a9cfc3146dea9c3371067a IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00019313 5.27282
0x73ee509505aadf19a808a10b2091f58ecacfff54abcc11d471152a5ac5b36224Approve727725852023-03-23 9:20:077 days 9 hrs ago0x7f429edeff8afc7bb3a2cf7db832fc86f6fa99da IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.000029950.1
0x17b294b9ede26c94ec3a2e6b0e8809822620a600fc476a3bbbdf7eda8bd6846bApprove726918262023-03-23 3:52:157 days 14 hrs ago0xd92c97f700e971eb5ea1076c08c942b8c62f1b23 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003081 0.1
0xff329b448e64d6333c62a8ea34fb2316f186bd82ce8e880d1c2c9b5430e0ec01Approve725937992023-03-22 21:08:157 days 21 hrs ago0x8187ccd7a2bfde1d76df0d7254e04afb36161831 IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00005177 0.1
0x8c040c787e7e0c0587ce6745d3170026da46ed4a318efd76a05f5f0fb1eacae0Approve723962902023-03-22 7:38:088 days 10 hrs ago0x7f429edeff8afc7bb3a2cf7db832fc86f6fa99da IN  0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH0.00003245 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x993d44d67017eed976e261468d385d3eddc35bcd3041f697d5bcbe4314deec9e720866232023-03-21 10:18:379 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x993d44d67017eed976e261468d385d3eddc35bcd3041f697d5bcbe4314deec9e720866232023-03-21 10:18:379 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0x993d44d67017eed976e261468d385d3eddc35bcd3041f697d5bcbe4314deec9e720866232023-03-21 10:18:379 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0x993d44d67017eed976e261468d385d3eddc35bcd3041f697d5bcbe4314deec9e720866232023-03-21 10:18:379 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0x993d44d67017eed976e261468d385d3eddc35bcd3041f697d5bcbe4314deec9e720866232023-03-21 10:18:379 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0x5fdf7f054496613aa60f0ca34d36396973cefaf1c2eb6fe782cccdeef4e6d608720865552023-03-21 10:18:199 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x5fdf7f054496613aa60f0ca34d36396973cefaf1c2eb6fe782cccdeef4e6d608720865552023-03-21 10:18:199 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0x5fdf7f054496613aa60f0ca34d36396973cefaf1c2eb6fe782cccdeef4e6d608720865552023-03-21 10:18:199 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0x5fdf7f054496613aa60f0ca34d36396973cefaf1c2eb6fe782cccdeef4e6d608720865552023-03-21 10:18:199 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0x5fdf7f054496613aa60f0ca34d36396973cefaf1c2eb6fe782cccdeef4e6d608720865552023-03-21 10:18:199 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0xd613aab887064b75c8ba55640190d9887d41d1bc7863961f2bbe4f378d2937cf720864452023-03-21 10:17:589 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xd613aab887064b75c8ba55640190d9887d41d1bc7863961f2bbe4f378d2937cf720864452023-03-21 10:17:589 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0xd613aab887064b75c8ba55640190d9887d41d1bc7863961f2bbe4f378d2937cf720864452023-03-21 10:17:589 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0xd613aab887064b75c8ba55640190d9887d41d1bc7863961f2bbe4f378d2937cf720864452023-03-21 10:17:589 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0xd613aab887064b75c8ba55640190d9887d41d1bc7863961f2bbe4f378d2937cf720864452023-03-21 10:17:589 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0xbe46c574f40fad4848120b3145007dc64e5d8d87b4b7b3085737a1f068aaaf73720803002023-03-21 9:52:339 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xbe46c574f40fad4848120b3145007dc64e5d8d87b4b7b3085737a1f068aaaf73720803002023-03-21 9:52:339 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0xbe46c574f40fad4848120b3145007dc64e5d8d87b4b7b3085737a1f068aaaf73720803002023-03-21 9:52:339 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0xbe46c574f40fad4848120b3145007dc64e5d8d87b4b7b3085737a1f068aaaf73720803002023-03-21 9:52:339 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0xbe46c574f40fad4848120b3145007dc64e5d8d87b4b7b3085737a1f068aaaf73720803002023-03-21 9:52:339 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0xf34e1bfcb5516495c7625fc3c91c5b3bb025046fc760aa3cfa25252a09b61542720802852023-03-21 9:52:299 days 8 hrs ago Zyberswap: Router 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
0x22816f7a80cbecd7858711f0b81edc8cbcea0f2a55703c600f7ff2624357ad1b720802782023-03-21 9:52:289 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x22816f7a80cbecd7858711f0b81edc8cbcea0f2a55703c600f7ff2624357ad1b720802782023-03-21 9:52:289 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0x82af49447d8a07e3bd95bd0d56f35241523fbab10 ETH
0x22816f7a80cbecd7858711f0b81edc8cbcea0f2a55703c600f7ff2624357ad1b720802782023-03-21 9:52:289 days 8 hrs ago 0x8b8149dd385955dc1ce77a4be7700ccd6a212e65 0xff970a61a04b1ca14834a43f5de4533ebddb5cc80 ETH
0x22816f7a80cbecd7858711f0b81edc8cbcea0f2a55703c600f7ff2624357ad1b720802782023-03-21 9:52:289 days 8 hrs ago 0x60ee7f3c343995d803af7d91ef53546d617dfeac 0x8b8149dd385955dc1ce77a4be7700ccd6a212e650 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x3eC0eddCd1e25025077327886A78133589082fB2

Contract Name:
ZyberPair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 10 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.5.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);

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

File 2 of 10 : IZyberCallee.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;

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

File 3 of 10 : IZyberERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;

interface IZyberERC20 {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

File 4 of 10 : IZyberFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;

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

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

File 5 of 10 : IZyberPair.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;

interface IZyberPair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

File 6 of 10 : Math.sol
pragma solidity =0.5.16;

// a library for performing various math operations

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

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

File 7 of 10 : SafeMath.sol
pragma solidity =0.5.16;

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

File 8 of 10 : UQ112x112.sol
pragma solidity =0.5.16;

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

File 9 of 10 : ZyberERC20.sol
pragma solidity =0.5.16;

import "./interfaces/IZyberERC20.sol";
import "./libraries/SafeMath.sol";

contract ZyberERC20 is IZyberERC20 {
    using SafeMath for uint256;

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

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

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

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

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

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

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

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

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

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

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

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

File 10 of 10 : ZyberPair.sol
pragma solidity =0.5.16;

import "./interfaces/IZyberPair.sol";
import "./ZyberERC20.sol";
import "./libraries/Math.sol";
import "./libraries/UQ112x112.sol";
import "./interfaces/IERC20.sol";
import "./interfaces/IZyberFactory.sol";
import "./interfaces/IZyberCallee.sol";

contract ZyberPair is IZyberPair, ZyberERC20 {
    using SafeMath for uint256;
    using UQ112x112 for uint224;

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

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

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

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

    uint32 public constant swapFee = 25; // 0.25% swap fee
    uint40 public constant devFee = 15; // 10% protocol fee

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

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

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

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

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

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

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

    // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
    function _mintFee(
        uint112 _reserve0,
        uint112 _reserve1
    ) private returns (bool feeOn) {
        address feeTo = IZyberFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint256 _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));
                uint256 rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint256 denominator = (rootK.mul(devFee) / 10).add(
                        rootKLast
                    );
                    uint256 liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

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

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

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

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

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(
            amount0 > 0 && amount1 > 0,
            "Zyber: 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 = uint256(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(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external lock {
        require(
            amount0Out > 0 || amount1Out > 0,
            "Zyber: INSUFFICIENT_OUTPUT_AMOUNT"
        );
        (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings
        require(
            amount0Out < _reserve0 && amount1Out < _reserve1,
            "Zyber: INSUFFICIENT_LIQUIDITY"
        );

        uint256 balance0;
        uint256 balance1;
        {
            // scope for _token{0,1}, avoids stack too deep errors
            address _token0 = token0;
            address _token1 = token1;
            require(to != _token0 && to != _token1, "Zyber: 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)
                IZyberCallee(to).ZyberCall(
                    msg.sender,
                    amount0Out,
                    amount1Out,
                    data
                );
            balance0 = IERC20(_token0).balanceOf(address(this));
            balance1 = IERC20(_token1).balanceOf(address(this));
        }
        uint256 amount0In = balance0 > _reserve0 - amount0Out
            ? balance0 - (_reserve0 - amount0Out)
            : 0;
        uint256 amount1In = balance1 > _reserve1 - amount1Out
            ? balance1 - (_reserve1 - amount1Out)
            : 0;
        require(
            amount0In > 0 || amount1In > 0,
            "Zyber: INSUFFICIENT_INPUT_AMOUNT"
        );
        {
            uint _swapFee = swapFee;
            // scope for reserve{0,1}Adjusted, avoids stack too deep errors
            uint balance0Adjusted = balance0.mul(10000).sub(
                amount0In.mul(_swapFee)
            );
            uint balance1Adjusted = balance1.mul(10000).sub(
                amount1In.mul(_swapFee)
            );
            require(
                balance0Adjusted.mul(balance1Adjusted) >=
                    uint256(_reserve0).mul(_reserve1).mul(10000 ** 2),
                "Zyber: 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
        );
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devFee","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"swapFee","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b506040514690806052612d648239604080519182900360520182208282018252600883526705a79626572204c560c41b6020938401528151808301835260018152603160f81b908401528151808401919091527f711f536bbc8946770d740d8cae740d4a0c0c1f7fe3e699949ac5bb1c9c0cad34818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c61806101036000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636827e76411610104578063a9059cbb116100a2578063d21220a711610071578063d21220a714610633578063d505accf1461063b578063dd62ed3e14610699578063fff6cae9146106d4576101cf565b8063a9059cbb146105b7578063ba9a7a56146105f0578063bc25cf77146105f8578063c45a01551461062b576101cf565b80637464fc3d116100de5780637464fc3d146105285780637ecebe001461053057806389afcb441461056357806395d89b41146105af576101cf565b80636827e764146104a05780636a627842146104c257806370a08231146104f5576101cf565b806330adf81f11610171578063485cc9551161014b578063485cc9551461043457806354cf2aeb1461046f5780635909c0d5146104905780635a3d549314610498576101cf565b806330adf81f14610406578063313ce5671461040e5780633644e5151461042c576101cf565b8063095ea7b3116101ad578063095ea7b31461032b5780630dfe16811461037857806318160ddd146103a957806323b872dd146103c3576101cf565b8063022c0d9f146101d457806306fdde031461026f5780630902f1ac146102ec575b600080fd5b61026d600480360360808110156101ea57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506106dc565b005b610277610dd8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b1578181015183820152602001610299565b50505050905090810190601f1680156102de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f4610e11565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103646004803603604081101561034157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e66565b604080519115158252519081900360200190f35b610380610e7d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103b1610e99565b60408051918252519081900360200190f35b610364600480360360608110156103d957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e9f565b6103b1610f7e565b610416610fa2565b6040805160ff9092168252519081900360200190f35b6103b1610fa7565b61026d6004803603604081101561044a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610fad565b610477611086565b6040805163ffffffff9092168252519081900360200190f35b6103b161108b565b6103b1611091565b6104a8611097565b6040805164ffffffffff9092168252519081900360200190f35b6103b1600480360360208110156104d857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661109c565b6103b16004803603602081101561050b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611456565b6103b1611468565b6103b16004803603602081101561054657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661146e565b6105966004803603602081101561057957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611480565b6040805192835260208301919091528051918290030190f35b61027761191d565b610364600480360360408110156105cd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611956565b6103b1611963565b61026d6004803603602081101561060e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611969565b610380611b5f565b610380611b7b565b61026d600480360360e081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b97565b6103b1600480360360408110156106af57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611e63565b61026d611e80565b600c5460011461074d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f5a796265723a204c4f434b454400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107605750600084115b6107b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612c0c6021913960400191505060405180910390fd5b6000806107c0610e11565b5091509150816dffffffffffffffffffffffffffff16871080156107f35750806dffffffffffffffffffffffffffff1686105b61085e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5a796265723a20494e53554646494349454e545f4c4951554944495459000000604482015290519081900360640190fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906108c357508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b61092e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5a796265723a20494e56414c49445f544f000000000000000000000000000000604482015290519081900360640190fd5b8a1561093f5761093f828a8d612066565b891561095057610950818a8c612066565b8615610a32578873ffffffffffffffffffffffffffffffffffffffff166385b354e1338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610a1957600080fd5b505af1158015610a2d573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a9e57600080fd5b505afa158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610b3a57600080fd5b505afa158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b8e576000610ba4565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610bc8576000610bde565b89856dffffffffffffffffffffffffffff160383035b90506000821180610bef5750600081115b610c5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5a796265723a20494e53554646494349454e545f494e5055545f414d4f554e54604482015290519081900360640190fd5b60196000610c89610c6b8584612273565b610c7d8861271063ffffffff61227316565b9063ffffffff6122f916565b90506000610ca0610c6b858563ffffffff61227316565b9050610cd96305f5e100610ccd6dffffffffffffffffffffffffffff8c8116908c1663ffffffff61227316565b9063ffffffff61227316565b610ce9838363ffffffff61227316565b1015610d5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f5a796265723a204b000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050610d658484888861236b565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600881526020017f5a79626572204c5000000000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610e73338484612627565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610f695773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610f37908363ffffffff6122f916565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610f74848484612696565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff16331461103357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5a796265723a20464f5242494444454e00000000000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b601981565b60095481565b600a5481565b600f81565b6000600c5460011461110f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f5a796265723a204c4f434b454400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061111f610e11565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561119957600080fd5b505afa1580156111ad573d6000803e3d6000fd5b505050506040513d60208110156111c357600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561123c57600080fd5b505afa158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b50519050600061128c836dffffffffffffffffffffffffffff871663ffffffff6122f916565b905060006112b0836dffffffffffffffffffffffffffff871663ffffffff6122f916565b905060006112be8787612777565b600054909150806112fb576112e76103e8610c7d6112e2878763ffffffff61227316565b61290d565b98506112f660006103e861295f565b611358565b6113556dffffffffffffffffffffffffffff891661131f868463ffffffff61227316565b8161132657fe5b046dffffffffffffffffffffffffffff8916611348868563ffffffff61227316565b8161134f57fe5b04612a0f565b98505b600089116113b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612be86024913960400191505060405180910390fd5b6113bb8a8a61295f565b6113c786868a8a61236b565b811561140957600854611405906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61227316565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146114f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f5a796265723a204c4f434b454400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611504610e11565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561158657600080fd5b505afa15801561159a573d6000803e3d6000fd5b505050506040513d60208110156115b057600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561162457600080fd5b505afa158015611638573d6000803e3d6000fd5b505050506040513d602081101561164e57600080fd5b50513060009081526001602052604081205491925061166d8888612777565b60005490915080611684848763ffffffff61227316565b8161168b57fe5b049a508061169f848663ffffffff61227316565b816116a657fe5b04995060008b1180156116b9575060008a115b61170e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612bc46024913960400191505060405180910390fd5b6117183084612a27565b611723878d8d612066565b61172e868d8c612066565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561179a57600080fd5b505afa1580156117ae573d6000803e3d6000fd5b505050506040513d60208110156117c457600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b15801561183657600080fd5b505afa15801561184a573d6000803e3d6000fd5b505050506040513d602081101561186057600080fd5b5051935061187085858b8b61236b565b81156118b2576008546118ae906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff61227316565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600381526020017f5a4c50000000000000000000000000000000000000000000000000000000000081525081565b6000610e73338484612696565b6103e881565b600c546001146119da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f5a796265723a204c4f434b454400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611ab69285928792611ab1926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611a7957600080fd5b505afa158015611a8d573d6000803e3d6000fd5b505050506040513d6020811015611aa357600080fd5b50519063ffffffff6122f916565b612066565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611b559284928792611ab1926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611a7957600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611c0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f5a796265723a2045585049524544000000000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611d67573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611de257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a796265723a20494e56414c49445f5349474e41545552450000000000000000604482015290519081900360640190fd5b611e58898989612627565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f5a796265723a204c4f434b454400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161205f9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611f6857600080fd5b505afa158015611f7c573d6000803e3d6000fd5b505050506040513d6020811015611f9257600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561200557600080fd5b505afa158015612019573d6000803e3d6000fd5b505050506040513d602081101561202f57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041661236b565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b6020831061216c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161212f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146121ce576040519150601f19603f3d011682016040523d82523d6000602084013e6121d3565b606091505b509150915081801561220157508051158061220157508080602001905160208110156121fe57600080fd5b50515b61226c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5a796265723a205452414e534645525f4641494c454400000000000000000000604482015290519081900360640190fd5b5050505050565b600081158061228e5750508082028282828161228b57fe5b04145b610e7757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610e7757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061239757506dffffffffffffffffffffffffffff8311155b61240257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5a796265723a204f564552464c4f570000000000000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c01000000000000000000000000000000000000000000000000000000009004811682039081161580159061245257506dffffffffffffffffffffffffffff841615155b801561246d57506dffffffffffffffffffffffffffff831615155b1561251d578063ffffffff166124b08561248686612aec565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612b1016565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff81166124f08461248687612aec565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260409020546126cc908263ffffffff6122f916565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461270e908263ffffffff612b5116565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156127e257600080fd5b505afa1580156127f6573d6000803e3d6000fd5b505050506040513d602081101561280c57600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906128f95780156128f45760006128636112e26dffffffffffffffffffffffffffff88811690881663ffffffff61227316565b905060006128708361290d565b9050808211156128f157600061289e61288f848463ffffffff6122f916565b6000549063ffffffff61227316565b905060006128cd83600a6128b987600f63ffffffff61227316565b816128c057fe5b049063ffffffff612b5116565b905060008183816128da57fe5b04905080156128ed576128ed878261295f565b5050505b50505b612905565b8015612905576000600b555b505092915050565b60006003821115612950575080600160028204015b8181101561294a5780915060028182858161293957fe5b04018161294257fe5b049050612922565b5061295a565b811561295a575060015b919050565b600054612972908263ffffffff612b5116565b600090815573ffffffffffffffffffffffffffffffffffffffff83168152600160205260409020546129aa908263ffffffff612b5116565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612a1e5781612a20565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612a5d908263ffffffff6122f916565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a97908263ffffffff6122f916565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612b4957fe5b049392505050565b80820182811015610e7757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe5a796265723a20494e53554646494349454e545f4c49515549444954595f4255524e45445a796265723a20494e53554646494349454e545f4c49515549444954595f4d494e5445445a796265723a20494e53554646494349454e545f4f55545055545f414d4f554e54a265627a7a723158208e4d14f16639cec50c4e94a4f6273ad8033a05a2fc5d8cf50e28ed5cd22fd54364736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

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