Contract 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 11

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6017749432c500b7179389faf2551cc49a2e4202042914622d1b05aaecb1d1deApprove1951862682024-03-28 19:06:555 hrs 8 mins ago0x45bccab80d81cda81954287828dcab23944a78ef IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00000666 0.01
0x0e7200e47514ddb7dbb10b0a11adc36c9cfc74cc0d4bffabd1d58b1489750976Approve1860406952024-03-01 14:27:5927 days 9 hrs ago0xe3bcff0fce79b34e9acd3c2b2bc7505056f8c765 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00009528 0.1
0xaa9370c7b31a5dbffe0f91a7b531b37c0b95f455588e66e986ad77dc892e3300Approve1834093722024-02-22 17:39:0335 days 6 hrs ago0x9fb7b6929dcabdac5f5676b74d2443627eb01baa IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00014235 0.1
0xc0c142e8d4d5001ca00261df160c4442ce95f7a037b77d3cce194fde6e129c13Approve1814522072024-02-16 21:00:3341 days 3 hrs ago0x09978ec26e79457a0dc5ecdb8dac4402347b3559 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00006217 0.1
0xc377315ae5d33526f53fd0309325624131164865d2e93b5279430c82be0b8ea4Approve1794098102024-02-10 18:36:3247 days 5 hrs ago0xb602e0a2facbd63e91dba352685d64b10ed7573b IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000067020.1
0xbd4fee83fa5d46424ed7915c7785fb0f4331fac449bb75fac554dffcd0c4d288Approve1794097572024-02-10 18:36:1647 days 5 hrs ago0xb602e0a2facbd63e91dba352685d64b10ed7573b IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000067020.1
0x3d445ba37331d153cb2669a05b25489bdec76ba84107653fa1ff02aa98a43c6eApprove1794095652024-02-10 18:35:2747 days 5 hrs ago0xb602e0a2facbd63e91dba352685d64b10ed7573b IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000074890.1
0x5004b7575c516de8348801b90afdfb140b0663d538de6213d45283c719646728Approve1783403412024-02-07 12:24:3750 days 11 hrs ago0x756ba867441d14dc62ec8dec7fbe0b5b71e3ff6c IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00006061 0.1
0x32c843a82f483db9ec4d15b67dfc236b5f10b35366b04cc0457173221f7c6d64Approve1763215282024-02-01 7:51:2456 days 16 hrs ago0x5ea6a20389154698192e6a9f2f30e50101b60778 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.0000406 0.1
0x9e950ec09e07f0b819c3a3cebca87c0310aa2fb57a57c777321121c6133ae6c2Approve1760126932024-01-31 9:41:4057 days 14 hrs ago0x10c426368886dc6868c47e2d07f831bcfc48b808 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00004369 0.1
0x3146a6ee5f7f9a4a394066555efdda783e04a621f6974fe974ca440f0afec2ddApprove1751453922024-01-28 19:47:4860 days 4 hrs ago0xe29d989a5e24fef1d27caa0259de8bc8c852dc21 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00002512 0.1
0x833b53ff416a1c024737cef11a305266b3517438b7e5c6c57abf5e05075a0b09Approve1748023962024-01-27 19:25:4361 days 4 hrs ago0x7c78a9ba667c57f76e2c8ed00ffebbc8377956cb IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00003513 0.1
0x82849955d8c10346ed4ba20ded0866f289b369fb3f75bdfe2309b5577bf61015Approve1747439782024-01-27 15:15:5961 days 8 hrs ago0xbcd11630fa6a40da1db27fc55b41fc02fb468e1f IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00004592 0.1
0x2726162cb39589b6409b0ef8d2401f48c5909666e0ce0e97080b74b32493eae3Approve1747434792024-01-27 15:13:5161 days 9 hrs ago0xbcd11630fa6a40da1db27fc55b41fc02fb468e1f IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00004572 0.1
0x8d48a9c56a984ab078c3f36cd438286c5f6aecb39697eea4d0aff57c419502cfApprove1740462632024-01-25 13:19:0463 days 10 hrs ago0x571e94bf8697d1c99ca21f4815591bdee2481f02 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00010148 0.1
0xb117ca648ed170d0d5138d93dfea8cba91a061dc5fa217403ad780f8c9a220eeApprove1737192032024-01-24 14:08:1864 days 10 hrs ago0x3a14af457029c95f5e02d2c2eab3d98d43189aff IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00003624 0.1
0xf1408d31ed6d1ae0ab85e43b018585ec04a52324d5959841393d7f35272ca8b8Sync1730608702024-01-22 15:48:1366 days 8 hrs ago0xd25f3ff4d63179800dce837dc5412dac1ba6133f IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000040920.1
0xd0a2e76a7dbd4b3e221796581f91d1aeab5d7ae17a28f174e1ff8aefa1e9e89bApprove1730604442024-01-22 15:46:2666 days 8 hrs ago0xd25f3ff4d63179800dce837dc5412dac1ba6133f IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000056710.1
0x341919a4fbddd5e4526e30356d9c1e0a934727c506980f1b403a452eadab3d45Approve1730596792024-01-22 15:43:1466 days 8 hrs ago0xd25f3ff4d63179800dce837dc5412dac1ba6133f IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000056710.1
0x9d4d2c12a3021df2f806bb070c384f99feb5f8f7ecd785b61fdf5e8558054bb7Approve1724101772024-01-20 16:57:0668 days 7 hrs ago0x4a19098b3e39bb97955e617b77bdeefbacbd08aa IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00004333 0.1
0x11c08d11bfee25abdb625ec29a096aca3142bb9a7c67e53f42c100463021a1ffApprove1718102082024-01-18 22:09:0770 days 2 hrs ago0x4a19098b3e39bb97955e617b77bdeefbacbd08aa IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00006788 0.1
0x69efcfd8dab6e3cf6cce1590ea391ee3757f1dbfaa9807f473ea1da1133b846bApprove1717885932024-01-18 20:33:1970 days 3 hrs ago0xc7ab6fc43197c0099245ed635195f62124ac74cf IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000078680.1
0xad32eb1681f58ad2a19312f9ccc097aeb07defeed212d254e8ebc559c250329aApprove1711396902024-01-16 21:09:5772 days 3 hrs ago0x5ea6a20389154698192e6a9f2f30e50101b60778 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00006474 0.1
0x59368a872450b89b23f553e162766f7d63a7075d808e525ede89d46fd0eb0d38Approve1711012592024-01-16 18:17:4772 days 5 hrs ago0xc7ab6fc43197c0099245ed635195f62124ac74cf IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.000077310.1
0xcae803ddc9bf9b9ffe1def614c7d1b804e1983fa9578fa0694ea0ad70f12419fApprove1710537882024-01-16 14:51:2872 days 9 hrs ago0x4fb00dfee1ba0294c16f28d702144d094d239853 IN  0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH0.00013244 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0a7bab830301cbbdfaf9c2a21d77b2ca415522f7836fc8d06b841b70e2fcde46720862752023-03-21 10:17:15373 days 13 hrs ago 0x639f9030a80a2063efedf9d5aceeeca7f5b6ee0a 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x741b10f3e9d1051d726c37e5061eb305d2ebde512b60c5a054defdced75f7ef9720862722023-03-21 10:17:14373 days 13 hrs ago 0xded14e3bcd5c629a173da23ba648e0d56e7a3d96 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 0x1d1064c7efad2d253a09d55503884f2c4f5c26270 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 OreoSwap: OREO Token0 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xcf6fa3f3142f892a44002d7b64fcca3a396fff64c4ce2bf81e515c70b593c9c9720862722023-03-21 10:17:14373 days 13 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 Wrapped Ether0 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 OreoSwap: OREO Token0 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0x5d6543ec4591e1d898025bb8bff4f952aa574b6a 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 0x5d6543ec4591e1d898025bb8bff4f952aa574b6a0 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 OreoSwap: OREO Token0 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0x5d6543ec4591e1d898025bb8bff4f952aa574b6a 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0xec964c75a0dce023df2e2fd4a01c48a1f4609247b943b8a9b58f1a208517a954720862722023-03-21 10:17:14373 days 13 hrs ago 0x5d6543ec4591e1d898025bb8bff4f952aa574b6a 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x191f4cab7e7ad6f3d92170ff9ef60ecd4f5ee2ea4a03407b9c969eae75118d51720862712023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 Wrapped Ether0 ETH
0x191f4cab7e7ad6f3d92170ff9ef60ecd4f5ee2ea4a03407b9c969eae75118d51720862712023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 OreoSwap: OREO Token0 ETH
0x191f4cab7e7ad6f3d92170ff9ef60ecd4f5ee2ea4a03407b9c969eae75118d51720862712023-03-21 10:17:14373 days 13 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 Wrapped Ether0 ETH
0x191f4cab7e7ad6f3d92170ff9ef60ecd4f5ee2ea4a03407b9c969eae75118d51720862712023-03-21 10:17:14373 days 13 hrs ago OreoSwap: Router 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x191f4cab7e7ad6f3d92170ff9ef60ecd4f5ee2ea4a03407b9c969eae75118d51720862712023-03-21 10:17:14373 days 13 hrs ago OreoSwap: Router 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x011972918eb9a4a7fc76166212df2982efb24e14e50f925bcae7c6eac9b3d3b8720851152023-03-21 10:12:20373 days 14 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x011972918eb9a4a7fc76166212df2982efb24e14e50f925bcae7c6eac9b3d3b8720851152023-03-21 10:12:20373 days 14 hrs ago 0x1d1064c7efad2d253a09d55503884f2c4f5c2627 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d180 ETH
0x011972918eb9a4a7fc76166212df2982efb24e14e50f925bcae7c6eac9b3d3b8720851152023-03-21 10:12:20373 days 14 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 0x1d1064c7efad2d253a09d55503884f2c4f5c26270 ETH
0x011972918eb9a4a7fc76166212df2982efb24e14e50f925bcae7c6eac9b3d3b8720851152023-03-21 10:12:20373 days 14 hrs ago 0xbf6a0418e31f90b60ae3d19c56a659ad8b2f4d18 OreoSwap: OREO Token0 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x2036c7128f08c8878c75b3b97d4cdd4a29c25465
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
OreoSwapPair

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : OreoSwapPair.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import './OreoSwapLP.sol';
import './libraries/OreoSwapMath.sol';
import './libraries/UQ112x112.sol';
import './interfaces/IOreoSwapBEP20.sol';
import './interfaces/IOreoSwapFactory.sol';
import './interfaces/IOreoSwapCallee.sol';

contract OreoSwapPair is OreoSwapLP {
  using OreoSwapSafeMath  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, 'OreoSwapPair::lock::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))), 'OreoSwapPair::_safeTransfer::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, 'OreoSwapPair::initialize::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), 'OreoSwapPair::_update::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 8/25 of the growth in sqrt(k)
  function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
    address feeTo = IOreoSwapFactory(factory).feeTo();
    feeOn = feeTo != address(0);
    uint _kLast = kLast; // gas savings
    if (feeOn) {
      if (_kLast != 0) {
        uint rootK = OreoSwapMath.sqrt(uint(_reserve0).mul(_reserve1));
        uint rootKLast = OreoSwapMath.sqrt(_kLast);
        if (rootK > rootKLast) {
          uint numerator = totalSupply.mul(rootK.sub(rootKLast)).mul(8);
          uint denominator = rootK.mul(17).add(rootKLast.mul(8));
          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 = IOreoSwapBEP20(token0).balanceOf(address(this));
    uint balance1 = IOreoSwapBEP20(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 = OreoSwapMath.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
      _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
    } else {
      liquidity = OreoSwapMath.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
    }
    require(liquidity > 0, 'OreoSwapPair::mint::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 = IOreoSwapBEP20(_token0).balanceOf(address(this));
    uint balance1 = IOreoSwapBEP20(_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, 'OreoSwapPair::burn::INSUFFICIENT_LIQUIDITY_BURNED');
    _burn(address(this), liquidity);
    _safeTransfer(_token0, to, amount0);
    _safeTransfer(_token1, to, amount1);
    balance0 = IOreoSwapBEP20(_token0).balanceOf(address(this));
    balance1 = IOreoSwapBEP20(_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, 'OreoSwapPair::swap::INSUFFICIENT_OUTPUT_AMOUNT');
      (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
      require(amount0Out < _reserve0 && amount1Out < _reserve1, 'OreoSwapPair::swap::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, 'OreoSwapPair::swap::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) IOreoSwapCallee(to).OreoSwapCall(msg.sender, amount0Out, amount1Out, data);
      balance0 = IOreoSwapBEP20(_token0).balanceOf(address(this));
      balance1 = IOreoSwapBEP20(_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, 'OreoSwapPair::swap::INSUFFICIENT_INPUT_AMOUNT');
      { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
      uint balance0Adjusted = balance0.mul(10000).sub(amount0In.mul(25));
      uint balance1Adjusted = balance1.mul(10000).sub(amount1In.mul(25));
      require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(10000**2), 'OreoSwapPair::swap::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, IOreoSwapBEP20(_token0).balanceOf(address(this)).sub(reserve0));
      _safeTransfer(_token1, to, IOreoSwapBEP20(_token1).balanceOf(address(this)).sub(reserve1));
  }

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

File 2 of 8 : OreoSwapLP.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import './libraries/OreoSwapSafeMath.sol';

contract OreoSwapLP {
  using OreoSwapSafeMath for uint;

  string public constant name = 'OreoSwap LP Token';
  string public constant symbol = 'Oreo-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, 'OreoSwapLP::permit::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, 'OreoSwapLP::permit::INVALID_SIGNATURE');
    _approve(owner, spender, value);
  }
}

File 3 of 8 : OreoSwapMath.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing various math operations
library OreoSwapMath {
  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)
  // reference: https://github.com/abdk-consulting/abdk-libraries-solidity/blob/master/ABDKMath64x64.sol#L687
  function sqrt(uint x) internal pure returns (uint z) {
    if (x == 0) return 0;
    uint xx = x;
    uint r = 1;

    if (xx >= 0x100000000000000000000000000000000) {
      xx >>= 128;
      r <<= 64;
    }

    if (xx >= 0x10000000000000000) {
      xx >>= 64;
      r <<= 32;
    }
    if (xx >= 0x100000000) {
      xx >>= 32;
      r <<= 16;
    }
    if (xx >= 0x10000) {
      xx >>= 16;
      r <<= 8;
    }
    if (xx >= 0x100) {
      xx >>= 8;
      r <<= 4;
    }
    if (xx >= 0x10) {
      xx >>= 4;
      r <<= 2;
    }
    if (xx >= 0x8) {
      r <<= 1;
    }

    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1;
    r = (r + x / r) >> 1; // Seven iterations should be enough
    uint r1 = x / r;
    return (r < r1 ? r : r1);
  }
}

File 4 of 8 : UQ112x112.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// 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 5 of 8 : IOreoSwapBEP20.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

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

File 6 of 8 : IOreoSwapFactory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

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

File 7 of 8 : IOreoSwapCallee.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

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

File 8 of 8 : OreoSwapSafeMath.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library OreoSwapSafeMath {
  function add(uint x, uint y) internal pure returns (uint z) {
    require((z = x + y) >= x, 'OreoSwapSafeMath::add::ds-math-add-overflow');
  }

  function sub(uint x, uint y) internal pure returns (uint z) {
    require((z = x - y) <= x, 'OreoSwapSafeMath::sub::ds-math-sub-underflow');
  }

  function mul(uint x, uint y) internal pure returns (uint z) {
    require(y == 0 || (z = x * y) / y == x, 'OreoSwapSafeMath::mul::ds-math-mul-overflow');
  }
}

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

Contract ABI

[{"inputs":[],"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"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610ad7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610b04565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b2e565b604080519115158252519081900360200190f35b610339610b45565b604080516001600160a01b039092168252519081900360200190f35b61035d610b54565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b5a565b61035d610bee565b6103b5610c12565b6040805160ff9092168252519081900360200190f35b61035d610c17565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c1d565b61035d610c94565b61035d610c9a565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca0565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b0316610f76565b61035d610f88565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316610f8e565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316610fa0565b6040805192835260208301919091528051918290030190f35b61024461132e565b61031d600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611351565b61035d61135e565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b0316611364565b6103396114d0565b6103396114df565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114ee565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166116e5565b61023a611702565b600c54600114610608576040805162461bcd60e51b815260206004820152601a602482015260008051602061229b833981519152604482015290519081900360640190fd5b6000600c558415158061061b5750600084115b6106565760405162461bcd60e51b815260040180806020018281038252602e81526020018061224a602e913960400191505060405180910390fd5b600080610661610b04565b5091509150816001600160701b0316871080156106865750806001600160701b031686105b6106c15760405162461bcd60e51b815260040180806020018281038252602a815260200180612198602a913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906106ff5750806001600160a01b0316896001600160a01b031614155b610750576040805162461bcd60e51b815260206004820152601e60248201527f4f72656f53776170506169723a3a737761703a3a494e56414c49445f544f0000604482015290519081900360640190fd5b8a1561076157610761828a8d61185e565b891561077257610772818a8c61185e565b861561082457886001600160a01b0316637991b2ab338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086a57600080fd5b505afa15801561087e573d6000803e3d6000fd5b505050506040513d602081101561089457600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b5051925060009150506001600160701b0385168a9003831161092d57600061093c565b89856001600160701b03160383035b9050600089856001600160701b0316038311610959576000610968565b89856001600160701b03160383035b905060008211806109795750600081115b6109b45760405162461bcd60e51b815260040180806020018281038252602d81526020018061230c602d913960400191505060405180910390fd5b60006109d66109c48460196119e2565b6109d0876127106119e2565b90611a38565b905060006109e86109c48460196119e2565b9050610a0e6305f5e100610a086001600160701b038b8116908b166119e2565b906119e2565b610a1883836119e2565b1015610a63576040805162461bcd60e51b81526020600482015260156024820152744f72656f53776170506169723a3a737761703a3a4b60581b604482015290519081900360640190fd5b5050610a7184848888611a7a565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601181526020017027b932b7a9bbb0b8102628102a37b5b2b760791b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b3b338484611c43565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bd9576001600160a01b0384166000908152600260209081526040808320338452909152902054610bb49083611a38565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610be4848484611ca5565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c665760405162461bcd60e51b81526004018080602001828103825260238152602001806122786023913960400191505060405180910390fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610ce7576040805162461bcd60e51b815260206004820152601a602482015260008051602061229b833981519152604482015290519081900360640190fd5b6000600c81905580610cf7610b04565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d4b57600080fd5b505afa158015610d5f573d6000803e3d6000fd5b505050506040513d6020811015610d7557600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dc857600080fd5b505afa158015610ddc573d6000803e3d6000fd5b505050506040513d6020811015610df257600080fd5b505190506000610e0b836001600160701b038716611a38565b90506000610e22836001600160701b038716611a38565b90506000610e308787611d53565b60005490915080610e6757610e536103e86109d0610e4e87876119e2565b611ea2565b9850610e6260006103e8611fea565b610eaa565b610ea76001600160701b038916610e7e86846119e2565b81610e8557fe5b046001600160701b038916610e9a86856119e2565b81610ea157fe5b04612074565b98505b60008911610ee95760405162461bcd60e51b81526004018080602001828103825260318152602001806121ed6031913960400191505060405180910390fd5b610ef38a8a611fea565b610eff86868a8a611a7a565b8115610f2957600854610f25906001600160701b0380821691600160701b9004166119e2565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114610fe8576040805162461bcd60e51b815260206004820152601a602482015260008051602061229b833981519152604482015290519081900360640190fd5b6000600c81905580610ff8610b04565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561105457600080fd5b505afa158015611068573d6000803e3d6000fd5b505050506040513d602081101561107e57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d60208110156110f657600080fd5b5051306000908152600160205260408120549192506111158888611d53565b6000549091508061112684876119e2565b8161112d57fe5b049a508061113b84866119e2565b8161114257fe5b04995060008b118015611155575060008a115b6111905760405162461bcd60e51b81526004018080602001828103825260318152602001806123396031913960400191505060405180910390fd5b61119a308461208c565b6111a5878d8d61185e565b6111b0868d8c61185e565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d602081101561122057600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561126c57600080fd5b505afa158015611280573d6000803e3d6000fd5b505050506040513d602081101561129657600080fd5b505193506112a685858b8b611a7a565b81156112d0576008546112cc906001600160701b0380821691600160701b9004166119e2565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600781526020016604f72656f2d4c560cc1b81525081565b6000610b3b338484611ca5565b6103e881565b600c546001146113a9576040805162461bcd60e51b815260206004820152601a602482015260008051602061229b833981519152604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b039485169490931692611452928592879261144d926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561141b57600080fd5b505afa15801561142f573d6000803e3d6000fd5b505050506040513d602081101561144557600080fd5b505190611a38565b61185e565b6114c6818461144d6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561141b57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611543576040805162461bcd60e51b815260206004820152601b60248201527f4f72656f537761704c503a3a7065726d69743a3a455850495245440000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561165e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116945750886001600160a01b0316816001600160a01b0316145b6116cf5760405162461bcd60e51b81526004018080602001828103825260258152602001806122e76025913960400191505060405180910390fd5b6116da898989611c43565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611747576040805162461bcd60e51b815260206004820152601a602482015260008051602061229b833981519152604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611857926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561179857600080fd5b505afa1580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561180f57600080fd5b505afa158015611823573d6000803e3d6000fd5b505050506040513d602081101561183957600080fd5b50516008546001600160701b0380821691600160701b900416611a7a565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061190b5780518252601f1990920191602091820191016118ec565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461196d576040519150601f19603f3d011682016040523d82523d6000602084013e611972565b606091505b50915091508180156119a05750805115806119a0575080806020019051602081101561199d57600080fd5b50515b6119db5760405162461bcd60e51b815260040180806020018281038252602c8152602001806122bb602c913960400191505060405180910390fd5b5050505050565b60008115806119fd575050808202828282816119fa57fe5b04145b610b3f5760405162461bcd60e51b815260040180806020018281038252602b81526020018061236a602b913960400191505060405180910390fd5b80820382811115610b3f5760405162461bcd60e51b815260040180806020018281038252602c81526020018061221e602c913960400191505060405180910390fd5b6001600160701b038411801590611a9857506001600160701b038311155b611ae9576040805162461bcd60e51b815260206004820152601f60248201527f4f72656f53776170506169723a3a5f7570646174653a3a4f564552464c4f5700604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611b1957506001600160701b03841615155b8015611b2d57506001600160701b03831615155b15611b98578063ffffffff16611b5585611b468661211e565b6001600160e01b031690612130565b600980546001600160e01b03929092169290920201905563ffffffff8116611b8084611b468761211e565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611cc89082611a38565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611cf79082612155565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611da457600080fd5b505afa158015611db8573d6000803e3d6000fd5b505050506040513d6020811015611dce57600080fd5b5051600b546001600160a01b038216158015945091925090611e8e578015611e89576000611e0b610e4e6001600160701b038881169088166119e2565b90506000611e1883611ea2565b905080821115611e86576000611e3f6008610a08611e368686611a38565b600054906119e2565b90506000611e62611e518460086119e2565b611e5c8660116119e2565b90612155565b90506000818381611e6f57fe5b0490508015611e8257611e828782611fea565b5050505b50505b611e9a565b8015611e9a576000600b555b505092915050565b600081611eb157506000611fe5565b816001600160801b8210611eca5760809190911c9060401b5b680100000000000000008210611ee55760409190911c9060201b5b6401000000008210611efc5760209190911c9060101b5b620100008210611f115760109190911c9060081b5b6101008210611f255760089190911c9060041b5b60108210611f385760049190911c9060021b5b60088210611f445760011b5b6001818581611f4f57fe5b048201901c90506001818581611f6157fe5b048201901c90506001818581611f7357fe5b048201901c90506001818581611f8557fe5b048201901c90506001818581611f9757fe5b048201901c90506001818581611fa957fe5b048201901c90506001818581611fbb57fe5b048201901c90506000818581611fcd57fe5b049050808210611fdd5780611fdf565b815b93505050505b919050565b600054611ff79082612155565b60009081556001600160a01b03831681526001602052604090205461201c9082612155565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106120835781612085565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546120af9082611a38565b6001600160a01b038316600090815260016020526040812091909155546120d69082611a38565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161214d57fe5b049392505050565b80820182811015610b3f5760405162461bcd60e51b815260040180806020018281038252602b8152602001806121c2602b913960400191505060405180910390fdfe4f72656f53776170506169723a3a737761703a3a494e53554646494349454e545f4c49515549444954594f72656f53776170536166654d6174683a3a6164643a3a64732d6d6174682d6164642d6f766572666c6f774f72656f53776170506169723a3a6d696e743a3a494e53554646494349454e545f4c49515549444954595f4d494e5445444f72656f53776170536166654d6174683a3a7375623a3a64732d6d6174682d7375622d756e646572666c6f774f72656f53776170506169723a3a737761703a3a494e53554646494349454e545f4f55545055545f414d4f554e544f72656f53776170506169723a3a696e697469616c697a653a3a464f5242494444454e4f72656f53776170506169723a3a6c6f636b3a3a4c4f434b45440000000000004f72656f53776170506169723a3a5f736166655472616e736665723a3a5452414e534645525f4641494c45444f72656f537761704c503a3a7065726d69743a3a494e56414c49445f5349474e41545552454f72656f53776170506169723a3a737761703a3a494e53554646494349454e545f494e5055545f414d4f554e544f72656f53776170506169723a3a6275726e3a3a494e53554646494349454e545f4c49515549444954595f4255524e45444f72656f53776170536166654d6174683a3a6d756c3a3a64732d6d6174682d6d756c2d6f766572666c6f77a2646970667358221220a34ca7697096a2d138fd015a75f03f704fe8c72c4396432328e2851b3be686a564736f6c634300060c0033

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.