Contract

0xBE5d3E8Fd6B03133be17E75fFD57f5bB940041EA

Overview

S Balance

Sonic LogoSonic LogoSonic Logo6 wei

S Value

-

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
6579742024-12-19 4:50:431 hr ago1734583843
0xBE5d3E8F...B940041EA
29.07908268 S
6579742024-12-19 4:50:431 hr ago1734583843
0xBE5d3E8F...B940041EA
0.29672533 S
6579742024-12-19 4:50:431 hr ago1734583843
0xBE5d3E8F...B940041EA
0.29672533 S
6579742024-12-19 4:50:431 hr ago1734583843
0xBE5d3E8F...B940041EA
29.67253335 S
6002792024-12-18 18:12:5611 hrs ago1734545576
0xBE5d3E8F...B940041EA
24.00999999 S
6002792024-12-18 18:12:5611 hrs ago1734545576
0xBE5d3E8F...B940041EA
0.24499999 S
6002792024-12-18 18:12:5611 hrs ago1734545576
0xBE5d3E8F...B940041EA
0.24499999 S
6002792024-12-18 18:12:5611 hrs ago1734545576
0xBE5d3E8F...B940041EA
24.49999999 S
5969592024-12-18 17:49:5612 hrs ago1734544196
0xBE5d3E8F...B940041EA
0.25 S
5969592024-12-18 17:49:5612 hrs ago1734544196
0xBE5d3E8F...B940041EA
0.25 S
5969592024-12-18 17:49:5612 hrs ago1734544196
0xBE5d3E8F...B940041EA
24.5 S
5969592024-12-18 17:49:5612 hrs ago1734544196
0xBE5d3E8F...B940041EA
25 S
5965442024-12-18 17:46:5112 hrs ago1734544011
0xBE5d3E8F...B940041EA
0.1 S
5965442024-12-18 17:46:5112 hrs ago1734544011
0xBE5d3E8F...B940041EA
0.1 S
5965442024-12-18 17:46:5112 hrs ago1734544011
0xBE5d3E8F...B940041EA
9.8 S
5965442024-12-18 17:46:5112 hrs ago1734544011
0xBE5d3E8F...B940041EA
10 S
5932722024-12-18 17:24:2712 hrs ago1734542667
0xBE5d3E8F...B940041EA
48.01999999 S
5932722024-12-18 17:24:2712 hrs ago1734542667
0xBE5d3E8F...B940041EA
0.48999999 S
5932722024-12-18 17:24:2712 hrs ago1734542667
0xBE5d3E8F...B940041EA
0.48999999 S
5932722024-12-18 17:24:2712 hrs ago1734542667
0xBE5d3E8F...B940041EA
48.99999999 S
5922092024-12-18 17:17:3312 hrs ago1734542253
0xBE5d3E8F...B940041EA
0.5 S
5922092024-12-18 17:17:3312 hrs ago1734542253
0xBE5d3E8F...B940041EA
0.5 S
5922092024-12-18 17:17:3312 hrs ago1734542253
0xBE5d3E8F...B940041EA
49 S
5922092024-12-18 17:17:3312 hrs ago1734542253
0xBE5d3E8F...B940041EA
50 S
5920762024-12-18 17:16:4012 hrs ago1734542200
0xBE5d3E8F...B940041EA
0.3 S
View All Internal Transactions
Loading...
Loading

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

Contract Name:
UniswapV2Pair

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 9999 runs

Other Settings:
cancun EvmVersion, MIT license
File 1 of 5 : UniswapV2Pair.sol
/*

 █▀ █▀█ █▄░█ █ █▀▀ █▀▀ ▄▀█ █▀▀ ▀█▀ █▀█ █▀█ █▄█
 ▄█ █▄█ █░▀█ █ █▄▄ █▀░ █▀█ █▄▄ ░█░ █▄█ █▀▄ ░█░

  Trade on SonicFactory and have fun!
  Web:      https://sonicfactory.fun/

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

import "./libraries/UQ112x112.sol";
import "./interfaces/IERC20.sol";
import "./interfaces/IWETH.sol";
import "./interfaces/IIncubator.sol";

contract UniswapV2Pair {
  using UQ112x112 for uint224;

  address private immutable INCUBATOR;
  address private _CREATOR;
  address private _REFERRAL;
  address private _WETH;
  address private _TOKEN;
  address public immutable token0;
  address public immutable token1;

  bool private _initialized;
  bool private _AUTOESCAPE;
  uint8 private locked;
  uint24 private _FEE;
  uint24 private _TAX;
  uint24 private _REF;
  uint32 private _LAUNCH;
  uint32 private blockTimestampLast;
  uint112 private _ETH_RESERVE_VIRTUAL_INITIAL;
  uint112 private _ETH_RESERVE_ESCAPE_TARGET;
  uint112 private _TOKEN_INITIAL_RESERVE;
  uint112 private reserve0;
  uint112 private reserve1;
  uint256 public price0CumulativeLast;
  uint256 public price1CumulativeLast;

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

  error ErrorLocked();
  error ErrorAutoEscape();
  error ErrorNotLaunched();
  error ErrorUnauthorized(address sender);
  error ErrorAlreadyInitialized();
  error ErrorInsufficientReserves();
  error ErrorSwapInsufficientInput();
  error ErrorSwapInsufficientOutput();
  error ErrorSwapInsufficientLiquidity();
  error ErrorSwapInvalidRecipient();
  error ErrorTransfer(address to, uint256 amount);

  modifier lock() {
    if (locked >= 1) { revert ErrorLocked(); }

    locked = 1;

    _;

    if (locked == 1) { locked = 0; }
  }

  modifier isLaunched() {
    if (_LAUNCH > _timestamp()) { revert ErrorNotLaunched(); }

    _;
  }

  constructor(address incubator, address _token0, address _token1) payable {
    INCUBATOR = incubator;
    token0 = _token0;
    token1 = _token1;
  }

  function initializePair(address creator, uint24 fee, uint24 tax, uint24 ref, uint32 launch, uint112 tokenInitialReserve, uint112 ethInitialVirtualReserve, uint112 ethReserveEscapeTarget, address WETH, address referral, bool autoEscape) external {
    if (msg.sender != INCUBATOR) { revert ErrorUnauthorized(msg.sender); }
    if (_initialized) { revert ErrorAlreadyInitialized(); }

    _CREATOR = creator;
    _FEE = fee;
    _TAX = tax;
    _LAUNCH = launch;
    _ETH_RESERVE_VIRTUAL_INITIAL = ethInitialVirtualReserve;
    _ETH_RESERVE_ESCAPE_TARGET = ethReserveEscapeTarget;
    _TOKEN_INITIAL_RESERVE = tokenInitialReserve;
    _WETH = WETH;
    _TOKEN = token0 == _WETH ? token1 : token0;
    _AUTOESCAPE = autoEscape;

    if (referral != address(0) && referral != creator) {
      _REF = ref;
      _REFERRAL = referral;
    }

    _initialized = true;
    _update(token0 == _WETH ? uint256(ethInitialVirtualReserve) : uint256(_TOKEN_INITIAL_RESERVE), token0 == _WETH ? uint256(_TOKEN_INITIAL_RESERVE) : uint256(ethInitialVirtualReserve), 0, 0);
  }

  function FEE() external view returns (uint24) {
    return _FEE;
  }

  function TAX() external view returns (uint24) {
    return _TAX;
  }

  function ETH_INITIAL_VIRTUAL_RESERVE() external view returns (uint112) {
    return _ETH_RESERVE_VIRTUAL_INITIAL;
  }

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

  function sync() external lock {
    uint256 balance0;
    uint256 balance1;

    unchecked {
      balance0 = IERC20(token0).balanceOf(address(this)) + (token0 == _WETH ? uint256(_ETH_RESERVE_VIRTUAL_INITIAL) : 0);
      balance1 = IERC20(token1).balanceOf(address(this)) + (token1 == _WETH ? uint256(_ETH_RESERVE_VIRTUAL_INITIAL) : 0);
    }

    _update(balance0, balance1, reserve0, reserve1);
  }

  function swap(address to, address tokenIn) external payable isLaunched lock {
    if (to == token0 || to == token1) { revert ErrorSwapInvalidRecipient(); }

    bool buy = tokenIn == _WETH;
    uint256 amountInEffective;
    uint256 amountOutEffective;
    uint256 amountIn;
    uint256 amountOut;
    uint256 ethAmount;
    uint256 feeAmount;
    uint256 taxAmount;
    uint256 refAmount;

    if (buy) {
      amountIn = msg.value;
      amountInEffective = _percentage(amountIn, 100_000 - uint256(_FEE + _TAX));
      ethAmount = amountIn;

      if (_FEE > 0 || _TAX > 0) {
        if (_FEE > 0) {
          unchecked {
            feeAmount = _percentage(amountIn, uint256(_FEE));

            if (_REF > 0) {
              refAmount = _percentage(feeAmount, uint256(_REF));
              feeAmount -= refAmount;
            }
          }
        }

        if (_TAX > 0) { taxAmount = _percentage(amountIn, uint256(_TAX)); }
      }

      IWETH(_WETH).deposit{ value: amountInEffective }();
      IWETH(_WETH).transfer(address(this), amountInEffective);
    } else {
      unchecked {
        amountIn = amountInEffective = IERC20(tokenIn).balanceOf(address(this)) - uint256(token0 == tokenIn ? reserve0 : reserve1);
      }
    }

    if (amountIn == 0) { revert ErrorSwapInsufficientInput(); }

    (uint112 reserveIn, uint112 reserveOut) = token0 == tokenIn ? (reserve0, reserve1) : (reserve1, reserve0);

    unchecked {
      amountOut = amountOutEffective = (amountInEffective * uint256(reserveOut)) / (uint256(reserveIn) + amountInEffective);
    }

    if (amountOut == 0) { revert ErrorSwapInsufficientOutput(); }
    if (amountOut > uint256(reserveOut)) { revert ErrorSwapInsufficientLiquidity(); }

    if (tokenIn == _TOKEN) {
      unchecked {
        amountOutEffective = _percentage(amountOut, 100_000 - uint256(_FEE + _TAX));
      }

      IWETH(_WETH).withdraw(amountOut);

      ethAmount = amountOut;

      if (_FEE > 0 || _TAX > 0) {
        if (_FEE > 0) {
          unchecked {
            feeAmount = _percentage(amountOut, uint256(_FEE));

            if (_REF > 0) {
              refAmount = _percentage(feeAmount, uint256(_REF));
              feeAmount -= refAmount;
            }
          }
        }

        if (_TAX > 0) { taxAmount = _percentage(amountOut, uint256(_TAX)); }
      }
    }

    if (_FEE > 0 || _TAX > 0) {
      if (feeAmount > 0) {
        _withdrawETH(INCUBATOR, feeAmount);

        if (refAmount > 0) { _withdrawETH(_REFERRAL, refAmount); }
      }

      if (taxAmount > 0) { _withdrawETH(_CREATOR, taxAmount); }
    }

    uint256 tokenAmount = buy ? amountOut : amountIn;

    { // scope to avoid "stack too deep" error
      address _to = to;

      bool _buy = buy;
      uint256 _amountOutEffective = amountOutEffective;
      uint256 _ethAmount = ethAmount;
      uint256 _tokenAmount = tokenAmount;
      uint256 _feeAmount = feeAmount;
      uint256 _taxAmount = taxAmount;
      uint256 _refAmount = refAmount;

      if (_buy) {
        IERC20(_TOKEN).transfer(_to, _amountOutEffective);
      } else{
        _withdrawETH(_to, _amountOutEffective);
      }

      (uint112 ethReserve, uint112 tokenReserve) = _getReserves();

      IIncubator(INCUBATOR).pairSwap(_to, _buy, ethReserve, tokenReserve, _ethAmount, _tokenAmount, _feeAmount, _taxAmount, _refAmount);
    }

    uint256 balance0;
    uint256 balance1;

    unchecked {
      balance0 = IERC20(token0).balanceOf(address(this)) + (token0 == _WETH ? uint256(_ETH_RESERVE_VIRTUAL_INITIAL) : 0);
      balance1 = IERC20(token1).balanceOf(address(this)) + (token1 == _WETH ? uint256(_ETH_RESERVE_VIRTUAL_INITIAL) : 0);
    }

    _update(balance0, balance1, reserve0, reserve1);

    if (tokenIn == token0) {
      emit Swap(msg.sender, amountIn, 0, 0, amountOut, to);
    } else {
      emit Swap(msg.sender, 0, amountIn, amountOut, 0, to);
    }

    if (buy && _AUTOESCAPE) {
      unchecked {
        if ((token0 == _WETH ? balance0 : balance1) - uint256(_ETH_RESERVE_VIRTUAL_INITIAL) >= uint256(_ETH_RESERVE_ESCAPE_TARGET)) { _escape(); }
      }
    }
  }

  function escape() external isLaunched lock {
    if (msg.sender != _CREATOR) { revert ErrorUnauthorized(msg.sender); }
    if (_AUTOESCAPE) { revert ErrorAutoEscape(); }

    unchecked {
      if ((token0 == _WETH ? reserve0 : reserve1) - uint256(_ETH_RESERVE_VIRTUAL_INITIAL) < uint256(_ETH_RESERVE_ESCAPE_TARGET)) { revert ErrorInsufficientReserves(); }
    }

    _escape();
  }

  function _getReserves() private view returns (uint112 ethReserve, uint112 tokenReserve) {
    ethReserve = token0 == _WETH ? reserve0 : reserve1;
    tokenReserve = token0 == _WETH ? reserve1 : reserve0;
  }

  function _update(uint256 balance0, uint256 balance1, uint112 _reserve0, uint112 _reserve1) private {
    uint32 blockTimestamp = _timestamp();

    unchecked {
      uint32 timeElapsed = blockTimestamp - blockTimestampLast;

      if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
        price0CumulativeLast += uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
        price1CumulativeLast += uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
      }
    }

    reserve0 = uint112(balance0);
    reserve1 = uint112(balance1);
    blockTimestampLast = blockTimestamp;
    blockTimestampLast = _timestamp();

    emit Sync(reserve0, reserve1);
  }

  function _withdrawETH(address to, uint256 value) private {
    (bool success,) = payable(to).call{ value: value }("");

    if (!success) { revert ErrorTransfer(to, value); }
  }

  function _escape() private {
    locked = 2;

    delete _FEE;
    delete _TAX;
    delete _REF;

    uint256 balance0 = IERC20(token0).balanceOf(address(this));
    uint256 balance1 = IERC20(token1).balanceOf(address(this));

    (uint256 tokenAmount, uint256 ethAmount) = token0 == _WETH ? (balance1, balance0) : (balance0, balance1);

    IERC20(_TOKEN).transfer(INCUBATOR, tokenAmount);
    IWETH(_WETH).withdraw(ethAmount);
    IIncubator(INCUBATOR).tokenEscape{ value: ethAmount }(tokenAmount);

    _update(0, 0, reserve0, reserve1);
  }

  function _percentage(uint256 value, uint256 bps) private pure returns (uint256) {
    unchecked {
      return (value * bps) / 100_000;
    }
  }

  function _timestamp() private view returns (uint32) {
    unchecked {
      return uint32(block.timestamp % 2**32);
    }
  }

  receive() external payable {
    require(msg.sender == _WETH);
  }
}

File 2 of 5 : IIncubator.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

interface IIncubator {
  function pairSwap(address user, bool buy, uint112 ethReserve, uint112 tokenReserve, uint256 ethAmount, uint256 tokenAmount, uint256 feeAmount, uint256 taxAmount, uint256 refAmount) external;
  function tokenEscape(uint256 tokenAmount) external payable;
}

File 3 of 5 : IWETH.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

interface IWETH {
  function deposit() external payable;
  function transfer(address to, uint256 value) external returns (bool);
  function withdraw(uint256) external;
}

File 4 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

interface IERC20 {
  function balanceOf(address owner) external view returns (uint256);
  function transfer(address to, uint256 value) external returns (bool);
  function transferFrom(address from, address to, uint256 value) external returns (bool);
}

File 5 of 5 : UQ112x112.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

library UQ112x112 {
  uint224 constant Q112 = 2**112;

  function encode(uint112 y) internal pure returns (uint224 z) {
    unchecked {
      z = uint224(y) * Q112;
    }
  }

  function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
    unchecked {
      z = x / uint224(y);
    }
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 9999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": [],
  "evmVersion": "cancun"
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"incubator","type":"address"},{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"ErrorAlreadyInitialized","type":"error"},{"inputs":[],"name":"ErrorAutoEscape","type":"error"},{"inputs":[],"name":"ErrorInsufficientReserves","type":"error"},{"inputs":[],"name":"ErrorLocked","type":"error"},{"inputs":[],"name":"ErrorNotLaunched","type":"error"},{"inputs":[],"name":"ErrorSwapInsufficientInput","type":"error"},{"inputs":[],"name":"ErrorSwapInsufficientLiquidity","type":"error"},{"inputs":[],"name":"ErrorSwapInsufficientOutput","type":"error"},{"inputs":[],"name":"ErrorSwapInvalidRecipient","type":"error"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ErrorTransfer","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ErrorUnauthorized","type":"error"},{"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"},{"inputs":[],"name":"ETH_INITIAL_VIRTUAL_RESERVE","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"escape","outputs":[],"stateMutability":"nonpayable","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":"creator","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"tax","type":"uint24"},{"internalType":"uint24","name":"ref","type":"uint24"},{"internalType":"uint32","name":"launch","type":"uint32"},{"internalType":"uint112","name":"tokenInitialReserve","type":"uint112"},{"internalType":"uint112","name":"ethInitialVirtualReserve","type":"uint112"},{"internalType":"uint112","name":"ethReserveEscapeTarget","type":"uint112"},{"internalType":"address","name":"WETH","type":"address"},{"internalType":"address","name":"referral","type":"address"},{"internalType":"bool","name":"autoEscape","type":"bool"}],"name":"initializePair","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"},{"internalType":"address","name":"tokenIn","type":"address"}],"name":"swap","outputs":[],"stateMutability":"payable","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"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100c6575f3560e01c80636b76484e11610071578063d21220a71161004c578063d21220a714610290578063d33945fd146102c3578063fff6cae91461030d575f5ffd5b80636b76484e14610235578063c57981b514610248578063d180667d1461027c575f5ffd5b80635a3d5493116100a15780635a3d5493146101ba5780635d5a1e43146101cf57806368f58b03146101ee575f5ffd5b80630902f1ac146100e75780630dfe16811461014c5780635909c0d514610197575f5ffd5b366100e3576002546001600160a01b031633146100e1575f5ffd5b005b5f5ffd5b3480156100f2575f5ffd5b50600654600454604080516dffffffffffffffffffffffffffff80851682526e010000000000000000000000000000909404909316602084015264010000000090910463ffffffff16908201526060015b60405180910390f35b348015610157575f5ffd5b5061017f7f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3881565b6040516001600160a01b039091168152602001610143565b3480156101a2575f5ffd5b506101ac60075481565b604051908152602001610143565b3480156101c5575f5ffd5b506101ac60085481565b3480156101da575f5ffd5b506100e16101e9366004612684565b610321565b3480156101f9575f5ffd5b506003547a010000000000000000000000000000000000000000000000000000900462ffffff165b60405162ffffff9091168152602001610143565b6100e1610243366004612757565b6107ef565b348015610253575f5ffd5b5060035477010000000000000000000000000000000000000000000000900462ffffff16610221565b348015610287575f5ffd5b506100e1611835565b34801561029b575f5ffd5b5061017f7f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a081565b3480156102ce575f5ffd5b506004546801000000000000000090046dffffffffffffffffffffffffffff166040516dffffffffffffffffffffffffffff9091168152602001610143565b348015610318575f5ffd5b506100e1611af3565b336001600160a01b037f00000000000000000000000043eafbb9c8c4d91fd8d501e45b19c38da2fd0988161461038a576040517fa11a9a410000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60035474010000000000000000000000000000000000000000900460ff16156103df576040517f66a02dea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a5f5f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555089600360176101000a81548162ffffff021916908362ffffff160217905550886003601a6101000a81548162ffffff021916908362ffffff1602179055508660045f6101000a81548163ffffffff021916908363ffffffff16021790555084600460086101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055508360055f6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550856005600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055508260025f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060025f9054906101000a90046001600160a01b03166001600160a01b03167f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b031614610599577f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386105bb565b7f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a05b600380548315157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ff00000000000000000000000000000000000000009091166001600160a01b039384161717905582161580159061062f57508a6001600160a01b0316826001600160a01b031614155b156106b457600380547cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000062ffffff8b1602179055600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384161790555b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556002546107e2907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03908116911614610757576005546e01000000000000000000000000000090046dffffffffffffffffffffffffffff16610769565b856dffffffffffffffffffffffffffff165b6002547f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b039081169116146107b557866dffffffffffffffffffffffffffff166107db565b6005546e01000000000000000000000000000090046dffffffffffffffffffffffffffff165b5f5f611e19565b5050505050505050505050565b60045463ffffffff42811691161115610834576040517fd51c1d2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600176010000000000000000000000000000000000000000000090910460ff161061088e576040517f2b10235600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff167601000000000000000000000000000000000000000000001790556001600160a01b038281167f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3891909116148061093c57507f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a06001600160a01b0316826001600160a01b0316145b15610973576040517fe4ad481200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b038281169116145f808080808080808815610c76576003543496506109ff9087906109e89062ffffff7a0100000000000000000000000000000000000000000000000000008204811691770100000000000000000000000000000000000000000000009004166127b5565b6109fa9062ffffff16620186a06127d0565b61208d565b60035490985086945077010000000000000000000000000000000000000000000000900462ffffff16151580610a5957506003547a010000000000000000000000000000000000000000000000000000900462ffffff1615155b15610b805760035477010000000000000000000000000000000000000000000000900462ffffff1615610b2157600354610ab490879077010000000000000000000000000000000000000000000000900462ffffff1661208d565b6003549093507d010000000000000000000000000000000000000000000000000000000000900462ffffff1615610b2157600354610b199084907d010000000000000000000000000000000000000000000000000000000000900462ffffff1661208d565b905080830392505b6003547a010000000000000000000000000000000000000000000000000000900462ffffff1615610b8057600354610b7d9087907a010000000000000000000000000000000000000000000000000000900462ffffff1661208d565b91505b60025f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0896040518263ffffffff1660e01b81526004015f604051808303818588803b158015610bcd575f5ffd5b505af1158015610bdf573d5f5f3e3d5ffd5b50506002546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152306004820152602481018d90526001600160a01b03909116935063a9059cbb925060440190506020604051808303815f875af1158015610c4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7091906127e3565b50610d87565b896001600160a01b03167f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b031614610cd9576006546e01000000000000000000000000000090046dffffffffffffffffffffffffffff16610ced565b6006546dffffffffffffffffffffffffffff165b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526dffffffffffffffffffffffffffff91909116906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610d5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d809190612805565b0397508795505b855f03610dc0576040517f0b0597fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f8b6001600160a01b03167f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b031614610e28576006546dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116610e52565b6006546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b9150915089826dffffffffffffffffffffffffffff1601816dffffffffffffffffffffffffffff168b0281610e8957610e8961281c565b049850889650865f03610ec8576040517fa5cf903d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806dffffffffffffffffffffffffffff16871115610f12576040517fdd5487b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003546001600160a01b03908116908d160361117657600354610f8390889077010000000000000000000000000000000000000000000000810462ffffff9081167a01000000000000000000000000000000000000000000000000000090920481169190910116620186a00361208d565b6002546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018a9052919a506001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610fe0575f5ffd5b505af1158015610ff2573d5f5f3e3d5ffd5b505060035489985077010000000000000000000000000000000000000000000000900462ffffff161515915081905061104f57506003547a010000000000000000000000000000000000000000000000000000900462ffffff1615155b156111765760035477010000000000000000000000000000000000000000000000900462ffffff1615611117576003546110aa90889077010000000000000000000000000000000000000000000000900462ffffff1661208d565b6003549095507d010000000000000000000000000000000000000000000000000000000000900462ffffff16156111175760035461110f9086907d010000000000000000000000000000000000000000000000000000000000900462ffffff1661208d565b925082850394505b6003547a010000000000000000000000000000000000000000000000000000900462ffffff1615611176576003546111739088907a010000000000000000000000000000000000000000000000000000900462ffffff1661208d565b93505b60035477010000000000000000000000000000000000000000000000900462ffffff161515806111ca57506003547a010000000000000000000000000000000000000000000000000000900462ffffff1615155b1561123657841561121b576111ff7f00000000000000000000000043eafbb9c8c4d91fd8d501e45b19c38da2fd0988866120a0565b821561121b5760015461121b906001600160a01b0316846120a0565b8315611236575f54611236906001600160a01b0316856120a0565b5f8b6112425788611244565b875b90508d8c8b89848a8a8a86156112e7576003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018990529091169063a9059cbb906044016020604051808303815f875af11580156112bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e191906127e3565b506112f1565b6112f188876120a0565b5f5f6112fb612140565b6040517fa73cc35c0000000000000000000000000000000000000000000000000000000081526001600160a01b038d811660048301528c151560248301526dffffffffffffffffffffffffffff808516604484015283166064830152608482018b905260a482018a905260c4820189905260e4820188905261010482018790529294509092507f00000000000000000000000043eafbb9c8c4d91fd8d501e45b19c38da2fd09889091169063a73cc35c90610124015f604051808303815f87803b1580156113c7575f5ffd5b505af11580156113d9573d5f5f3e3d5ffd5b50506002545f9c508c9b507f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03908116911614995061142998505050505050505050575f611449565b6004546801000000000000000090046dffffffffffffffffffffffffffff165b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b0316906370a0823190602401602060405180830381865afa1580156114c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e89190612805565b600254910192507f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a06001600160a01b03908116911614611528575f611548565b6004546801000000000000000090046dffffffffffffffffffffffffffff165b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a06001600160a01b0316906370a0823190602401602060405180830381865afa1580156115c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e79190612805565b6006549101915061162190839083906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416611e19565b7f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03168f6001600160a01b0316036116c6578f6001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228d5f5f8f6040516116b9949392919093845260208401929092526040830152606082015260800190565b60405180910390a361172e565b8f6001600160a01b0316336001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8225f8e8e5f604051611725949392919093845260208401929092526040830152606082015260800190565b60405180910390a35b8d801561175657506003547501000000000000000000000000000000000000000000900460ff165b156117d1576005546004546002546dffffffffffffffffffffffffffff9283169268010000000000000000909204909116907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b039081169116146117c157826117c3565b835b03106117d1576117d1612235565b5050600354760100000000000000000000000000000000000000000000900460ff166001039b506118319a505050505050505050505057600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff1690555b5050565b60045463ffffffff4281169116111561187a576040517fd51c1d2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600176010000000000000000000000000000000000000000000090910460ff16106118d4576040517f2b10235600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff167601000000000000000000000000000000000000000000001790555f54336001600160a01b039091161461195c576040517fa11a9a41000000000000000000000000000000000000000000000000000000008152336004820152602401610381565b6003547501000000000000000000000000000000000000000000900460ff16156119b2576040517f037573b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546004546002546dffffffffffffffffffffffffffff9283169268010000000000000000909204909116907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03908116911614611a3c576006546e01000000000000000000000000000090046dffffffffffffffffffffffffffff16611a50565b6006546dffffffffffffffffffffffffffff165b6dffffffffffffffffffffffffffff16031015611a99576040517f448cb04d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611aa1612235565b600354760100000000000000000000000000000000000000000000900460ff16600103611af157600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff1690555b565b600354600176010000000000000000000000000000000000000000000090910460ff1610611b4d576040517f2b10235600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff167601000000000000000000000000000000000000000000001790556002545f9081907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03908116911614611bce575f611bee565b6004546801000000000000000090046dffffffffffffffffffffffffffff165b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b0316906370a0823190602401602060405180830381865afa158015611c69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8d9190612805565b600254910192507f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a06001600160a01b03908116911614611ccd575f611ced565b6004546801000000000000000090046dffffffffffffffffffffffffffff165b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a06001600160a01b0316906370a0823190602401602060405180830381865afa158015611d68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d8c9190612805565b60065491019150611dc690839083906dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416611e19565b5050600354760100000000000000000000000000000000000000000000900460ff16600103611af157600380547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff169055565b60045463ffffffff4281169164010000000090048116820390811615801590611e5157506dffffffffffffffffffffffffffff841615155b8015611e6c57506dffffffffffffffffffffffffffff831615155b15611f4e5763ffffffff8116611ec3856e0100000000000000000000000000006dffffffffffffffffffffffffffff8716025b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906125ec565b600780547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116611f21846e0100000000000000000000000000006dffffffffffffffffffffffffffff881602611e9f565b600880547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b50600680546dffffffffffffffffffffffffffff8681166e010000000000000000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909216908816171790556004805463ffffffff8316640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff909116179055611fe763ffffffff421690565b6004805463ffffffff92909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff909216919091179055600654604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000090930490921660208301527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a15050505050565b5f620186a08383025b0490505b92915050565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146120e9576040519150601f19603f3d011682016040523d82523d5f602084013e6120ee565b606091505b505090508061213b576040517f1c196f330000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101839052604401610381565b505050565b6002545f9081907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b039081169116146121a4576006546e01000000000000000000000000000090046dffffffffffffffffffffffffffff166121b8565b6006546dffffffffffffffffffffffffffff165b6002549092507f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b03908116911614612209576006546dffffffffffffffffffffffffffff1661222f565b6006546e01000000000000000000000000000090046dffffffffffffffffffffffffffff165b90509091565b6003805475ffffffffffffffffffffffffffffffffffffffffffff167602000000000000000000000000000000000000000000001790556040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b037f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3816906370a0823190602401602060405180830381865afa1580156122e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d9190612805565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f906001600160a01b037f000000000000000000000000fa36d0c31649267a31086b4dc814135eb1e8f6a016906370a0823190602401602060405180830381865afa15801561238d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b19190612805565b6002549091505f9081907f000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad386001600160a01b039081169116146123f55783836123f8565b82845b6003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000043eafbb9c8c4d91fd8d501e45b19c38da2fd09888116600483015260248201859052939550919350919091169063a9059cbb906044016020604051808303815f875af1158015612488573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ac91906127e3565b506002546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690632e1a7d4d906024015f604051808303815f87803b158015612509575f5ffd5b505af115801561251b573d5f5f3e3d5ffd5b50506040517f37b3375f000000000000000000000000000000000000000000000000000000008152600481018590527f00000000000000000000000043eafbb9c8c4d91fd8d501e45b19c38da2fd09886001600160a01b031692506337b3375f915083906024015f604051808303818588803b158015612599575f5ffd5b505af11580156125ab573d5f5f3e3d5ffd5b50506006546125e693505f92508291506dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416611e19565b50505050565b5f6dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416816120965761209661281c565b80356001600160a01b0381168114612640575f5ffd5b919050565b803562ffffff81168114612640575f5ffd5b80356dffffffffffffffffffffffffffff81168114612640575f5ffd5b8015158114612681575f5ffd5b50565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e03121561269f575f5ffd5b6126a88c61262a565b9a506126b660208d01612645565b99506126c460408d01612645565b98506126d260608d01612645565b975060808c013563ffffffff811681146126ea575f5ffd5b96506126f860a08d01612657565b955061270660c08d01612657565b945061271460e08d01612657565b93506127236101008d0161262a565b92506127326101208d0161262a565b91506101408c013561274381612674565b809150509295989b509295989b9093969950565b5f5f60408385031215612768575f5ffd5b6127718361262a565b915061277f6020840161262a565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b62ffffff818116838216019081111561209a5761209a612788565b8181038181111561209a5761209a612788565b5f602082840312156127f3575f5ffd5b81516127fe81612674565b9392505050565b5f60208284031215612815575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea26469706673582212203e6d64bf01b3961f85ab1454e0831b50d35284c0df91085124e5c38266e30bd264736f6c634300081c0033

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.