ETH Price: $2,162.03 (+0.28%)

Contract

0x81CfDCC01bDdD0EdC90f453A75f01979Fbfb2deC
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deposit All139350302022-01-03 21:51:391542 days ago1641246699IN
0x81CfDCC0...9Fbfb2deC
0 ETH0.02059873116.12640554
Transfer Ownersh...139349602022-01-03 21:39:131542 days ago1641245953IN
0x81CfDCC0...9Fbfb2deC
0 ETH0.00439104163.24204242
Transfer Client139349572022-01-03 21:38:301542 days ago1641245910IN
0x81CfDCC0...9Fbfb2deC
0 ETH0.00477849165.34027139
Transfer Keeper139349562022-01-03 21:37:431542 days ago1641245863IN
0x81CfDCC0...9Fbfb2deC
0 ETH0.00430165160.1746763

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Contract Name:
Router

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

import "./interfaces/IHypervisor.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract Router {
  IHypervisor public pos;
  IERC20 public token0;
  IERC20 public token1;
  address public owner;
  address payable public client;
  address public keeper;
  uint256 MAX_INT = 2**256 - 1;

  constructor(
    address _token0,
    address _token1,
    address _pos
  ) {
    owner = msg.sender;
    client = msg.sender;
    keeper = msg.sender;
    token0 = IERC20(_token0);
    token1 = IERC20(_token1);
    pos = IHypervisor(_pos);
    token0.approve(_pos, MAX_INT);
    token1.approve(_pos, MAX_INT);
    pos.approve(_pos, MAX_INT);
  }

  function deposit(
        uint256 deposit0,
        uint256 deposit1
  ) external {
    require(msg.sender == keeper, "Only keeper allowed to execute deposit");
    pos.deposit(deposit0, deposit1, client);
  }

  function depositAll() external {
    require(msg.sender == keeper, "Only keeper allowed to execute deposit");
    pos.deposit(
      token0.balanceOf(address(this)),
      token1.balanceOf(address(this)),
      client
    );
  }

  function withdraw(uint256 shares) external {
    require(msg.sender == client, "Only client allowed to withdraw");
    pos.transferFrom(client, address(this), shares);
    pos.withdraw(shares, client, address(this));
  }

  function withdrawAll() external {
    require(msg.sender == client, "Only client allowed to withdraw");
    pos.transferFrom(client, address(this), pos.balanceOf(client)); 
    pos.withdraw(pos.balanceOf(address(this)), client, address(this));
  }

  function sweepTokens(address token) external {
    require(msg.sender == owner, "Only owner allowed to pull tokens");
    IERC20(token).transfer(owner, IERC20(token).balanceOf(address(this)));
  }

  function sweepEth() external {
    require(msg.sender == owner, "Only owner allowed to pull tokens");
    client.transfer(address(this).balance);
  }

  function transferClient(address payable newClient) external {
    require(msg.sender == owner, "Only owner allowed to change client");
    client = newClient;
  }

  function transferKeeper(address newKeeper) external {
    require(msg.sender == keeper, "Only keeper allowed to change keeper");
    keeper = newKeeper; 
  }

  function transferOwnership(address newOwner) external {
    require(msg.sender == owner, "Only owner alloed to change owner");
    owner = newOwner;
  }

}

// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.7.6;
pragma abicoder v2;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface IHypervisor {

    function deposit(
        uint256,
        uint256,
        address
    ) external returns (uint256);

    function withdraw(
        uint256,
        address,
        address
    ) external returns (uint256, uint256);


    function rebalance(
        int24 _baseLower,
        int24 _baseUpper,
        int24 _limitLower,
        int24 _limitUpper,
        address _feeRecipient,
        int256 swapQuantity
    ) external;

    function addBaseLiquidity(
      uint256 amount0, 
      uint256 amount1
    ) external;

    function addLimitLiquidity(
      uint256 amount0, 
      uint256 amount1
    ) external;   

    function pullLiquidity(uint256 shares)
    external returns(
        uint256 base0,
        uint256 base1,
        uint256 limit0,
        uint256 limit1
    );

    function token0() external view returns (IERC20);

    function token1() external view returns (IERC20);

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

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

    function transferFrom(address, address, uint256) external returns (bool);

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

    function getTotalAmounts() external view returns (uint256 total0, uint256 total1);

    function pendingFees() external returns (uint256 fees0, uint256 fees1);
    
    function totalSupply() external view returns (uint256 );

    function setMaxTotalSupply(uint256 _maxTotalSupply) external;

    function setDepositMax(uint256 _deposit0Max, uint256 _deposit1Max) external;

    function appendList(address[] memory listed) external;

    function toggleWhitelist() external;

    function transferOwnership(address newOwner) external;

}

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_pos","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"client","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"deposit0","type":"uint256"},{"internalType":"uint256","name":"deposit1","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"keeper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pos","outputs":[{"internalType":"contract IHypervisor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newClient","type":"address"}],"name":"transferClient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newKeeper","type":"address"}],"name":"transferKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405260001960065534801561001657600080fd5b50604051610f42380380610f428339818101604052606081101561003957600080fd5b50805160208083015160409384015160038054336001600160a01b03199182168117909255600480548216831781556005805483169093179092556001805482166001600160a01b0380891691909117918290556002805484168288161790556000805490931681861690811784556006548a5163095ea7b360e01b8152958601919091526024850152975196979496939594169363095ea7b393604480850194929391928390030190829087803b1580156100f457600080fd5b505af1158015610108573d6000803e3d6000fd5b505050506040513d602081101561011e57600080fd5b50506002546006546040805163095ea7b360e01b81526001600160a01b03858116600483015260248201939093529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506040513d60208110156101a457600080fd5b5050600080546006546040805163095ea7b360e01b81526001600160a01b03868116600483015260248201939093529051919092169263095ea7b392604480820193602093909283900390910190829087803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b505050506040513d602081101561022d57600080fd5b5050505050610d01806102416000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639ac8441411610097578063de5f626811610066578063de5f6268146101c1578063e2bbb158146101c9578063f2fde38b146101ec578063f5f6d3af14610212576100f5565b80639ac84414146101a1578063aced1661146101a9578063c56551b6146101b1578063d21220a7146101b9576100f5565b80632c192526116100d35780632c1925261461014e5780632e1a7d4d14610174578063853828b6146101915780638da5cb5b14610199576100f5565b80630dfe1681146100fa578063109e94cf1461011e578063170565ca14610126575b600080fd5b610102610238565b604080516001600160a01b039092168252519081900360200190f35b610102610247565b61014c6004803603602081101561013c57600080fd5b50356001600160a01b0316610256565b005b61014c6004803603602081101561016457600080fd5b50356001600160a01b03166102ce565b61014c6004803603602081101561018a57600080fd5b5035610346565b61014c6104c0565b61010261072b565b61014c61073a565b6101026107bf565b6101026107ce565b6101026107dd565b61014c6107ec565b61014c600480360360408110156101df57600080fd5b50803590602001356109b2565b61014c6004803603602081101561020257600080fd5b50356001600160a01b0316610a8a565b61014c6004803603602081101561022857600080fd5b50356001600160a01b0316610b02565b6001546001600160a01b031681565b6004546001600160a01b031681565b6003546001600160a01b0316331461029f5760405162461bcd60e51b8152600401808060200182810382526023815260200180610c676023913960400191505060405180910390fd5b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6005546001600160a01b031633146103175760405162461bcd60e51b8152600401808060200182810382526024815260200180610c8a6024913960400191505060405180910390fd5b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6004546001600160a01b031633146103a5576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920636c69656e7420616c6c6f77656420746f20776974686472617700604482015290519081900360640190fd5b6000805460048054604080516323b872dd60e01b81526001600160a01b039283169381019390935230602484015260448301869052519216926323b872dd926064808401936020939083900390910190829087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5050600080546004805460408051632d182be560e21b81529283018690526001600160a01b0391821660248401523060448401528051919093169363b460af9493606480850194919392918390030190829087803b15801561049157600080fd5b505af11580156104a5573d6000803e3d6000fd5b505050506040513d60408110156104bb57600080fd5b505050565b6004546001600160a01b0316331461051f576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920636c69656e7420616c6c6f77656420746f20776974686472617700604482015290519081900360640190fd5b60005460048054604080516370a0823160e01b81526001600160a01b03928316938101849052905191909316926323b872dd9291309185916370a0823191602480820192602092909190829003018186803b15801561057d57600080fd5b505afa158015610591573d6000803e3d6000fd5b505050506040513d60208110156105a757600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156105ff57600080fd5b505af1158015610613573d6000803e3d6000fd5b505050506040513d602081101561062957600080fd5b5050600054604080516370a0823160e01b815230600482015290516001600160a01b039092169163b460af949183916370a0823191602480820192602092909190829003018186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d60208110156106a857600080fd5b505160048054604080516001600160e01b031960e087901b168152928301939093526001600160a01b031660248201523060448201528151606480830193928290030181600087803b1580156106fd57600080fd5b505af1158015610711573d6000803e3d6000fd5b505050506040513d604081101561072757600080fd5b5050565b6003546001600160a01b031681565b6003546001600160a01b031633146107835760405162461bcd60e51b8152600401808060200182810382526021815260200180610c466021913960400191505060405180910390fd5b6004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107bc573d6000803e3d6000fd5b50565b6005546001600160a01b031681565b6000546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031633146108355760405162461bcd60e51b8152600401808060200182810382526026815260200180610cae6026913960400191505060405180910390fd5b600054600154604080516370a0823160e01b815230600482015290516001600160a01b0393841693638dbdbe6d9316916370a08231916024808301926020929190829003018186803b15801561088a57600080fd5b505afa15801561089e573d6000803e3d6000fd5b505050506040513d60208110156108b457600080fd5b5051600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561090157600080fd5b505afa158015610915573d6000803e3d6000fd5b505050506040513d602081101561092b57600080fd5b505160048054604080516001600160e01b031960e088901b1681529283019490945260248201929092526001600160a01b039091166044820152905160648083019260209291908290030181600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d602081101561072757600080fd5b6005546001600160a01b031633146109fb5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cae6026913960400191505060405180910390fd5b600080546004805460408051638dbdbe6d60e01b8152928301879052602483018690526001600160a01b03918216604484015251921692638dbdbe6d926064808401936020939083900390910190829087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506040513d6020811015610a8457600080fd5b50505050565b6003546001600160a01b03163314610ad35760405162461bcd60e51b8152600401808060200182810382526021815260200180610cd46021913960400191505060405180910390fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610b4b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610c466021913960400191505060405180910390fd5b600354604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b158015610ba057600080fd5b505afa158015610bb4573d6000803e3d6000fd5b505050506040513d6020811015610bca57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505050506040513d60208110156104bb57600080fdfe4f6e6c79206f776e657220616c6c6f77656420746f2070756c6c20746f6b656e734f6e6c79206f776e657220616c6c6f77656420746f206368616e676520636c69656e744f6e6c79206b656570657220616c6c6f77656420746f206368616e6765206b65657065724f6e6c79206b656570657220616c6c6f77656420746f2065786563757465206465706f7369744f6e6c79206f776e657220616c6c6f656420746f206368616e6765206f776e6572a164736f6c6343000706000a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000f4dc48d260c93ad6a96c5ce563e70ca578987c740000000000000000000000005e6c481de496554b66657dd1ca1f70c61cf11660

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80639ac8441411610097578063de5f626811610066578063de5f6268146101c1578063e2bbb158146101c9578063f2fde38b146101ec578063f5f6d3af14610212576100f5565b80639ac84414146101a1578063aced1661146101a9578063c56551b6146101b1578063d21220a7146101b9576100f5565b80632c192526116100d35780632c1925261461014e5780632e1a7d4d14610174578063853828b6146101915780638da5cb5b14610199576100f5565b80630dfe1681146100fa578063109e94cf1461011e578063170565ca14610126575b600080fd5b610102610238565b604080516001600160a01b039092168252519081900360200190f35b610102610247565b61014c6004803603602081101561013c57600080fd5b50356001600160a01b0316610256565b005b61014c6004803603602081101561016457600080fd5b50356001600160a01b03166102ce565b61014c6004803603602081101561018a57600080fd5b5035610346565b61014c6104c0565b61010261072b565b61014c61073a565b6101026107bf565b6101026107ce565b6101026107dd565b61014c6107ec565b61014c600480360360408110156101df57600080fd5b50803590602001356109b2565b61014c6004803603602081101561020257600080fd5b50356001600160a01b0316610a8a565b61014c6004803603602081101561022857600080fd5b50356001600160a01b0316610b02565b6001546001600160a01b031681565b6004546001600160a01b031681565b6003546001600160a01b0316331461029f5760405162461bcd60e51b8152600401808060200182810382526023815260200180610c676023913960400191505060405180910390fd5b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6005546001600160a01b031633146103175760405162461bcd60e51b8152600401808060200182810382526024815260200180610c8a6024913960400191505060405180910390fd5b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6004546001600160a01b031633146103a5576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920636c69656e7420616c6c6f77656420746f20776974686472617700604482015290519081900360640190fd5b6000805460048054604080516323b872dd60e01b81526001600160a01b039283169381019390935230602484015260448301869052519216926323b872dd926064808401936020939083900390910190829087803b15801561040657600080fd5b505af115801561041a573d6000803e3d6000fd5b505050506040513d602081101561043057600080fd5b5050600080546004805460408051632d182be560e21b81529283018690526001600160a01b0391821660248401523060448401528051919093169363b460af9493606480850194919392918390030190829087803b15801561049157600080fd5b505af11580156104a5573d6000803e3d6000fd5b505050506040513d60408110156104bb57600080fd5b505050565b6004546001600160a01b0316331461051f576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920636c69656e7420616c6c6f77656420746f20776974686472617700604482015290519081900360640190fd5b60005460048054604080516370a0823160e01b81526001600160a01b03928316938101849052905191909316926323b872dd9291309185916370a0823191602480820192602092909190829003018186803b15801561057d57600080fd5b505afa158015610591573d6000803e3d6000fd5b505050506040513d60208110156105a757600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156105ff57600080fd5b505af1158015610613573d6000803e3d6000fd5b505050506040513d602081101561062957600080fd5b5050600054604080516370a0823160e01b815230600482015290516001600160a01b039092169163b460af949183916370a0823191602480820192602092909190829003018186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d60208110156106a857600080fd5b505160048054604080516001600160e01b031960e087901b168152928301939093526001600160a01b031660248201523060448201528151606480830193928290030181600087803b1580156106fd57600080fd5b505af1158015610711573d6000803e3d6000fd5b505050506040513d604081101561072757600080fd5b5050565b6003546001600160a01b031681565b6003546001600160a01b031633146107835760405162461bcd60e51b8152600401808060200182810382526021815260200180610c466021913960400191505060405180910390fd5b6004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107bc573d6000803e3d6000fd5b50565b6005546001600160a01b031681565b6000546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031633146108355760405162461bcd60e51b8152600401808060200182810382526026815260200180610cae6026913960400191505060405180910390fd5b600054600154604080516370a0823160e01b815230600482015290516001600160a01b0393841693638dbdbe6d9316916370a08231916024808301926020929190829003018186803b15801561088a57600080fd5b505afa15801561089e573d6000803e3d6000fd5b505050506040513d60208110156108b457600080fd5b5051600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561090157600080fd5b505afa158015610915573d6000803e3d6000fd5b505050506040513d602081101561092b57600080fd5b505160048054604080516001600160e01b031960e088901b1681529283019490945260248201929092526001600160a01b039091166044820152905160648083019260209291908290030181600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d602081101561072757600080fd5b6005546001600160a01b031633146109fb5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cae6026913960400191505060405180910390fd5b600080546004805460408051638dbdbe6d60e01b8152928301879052602483018690526001600160a01b03918216604484015251921692638dbdbe6d926064808401936020939083900390910190829087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506040513d6020811015610a8457600080fd5b50505050565b6003546001600160a01b03163314610ad35760405162461bcd60e51b8152600401808060200182810382526021815260200180610cd46021913960400191505060405180910390fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610b4b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610c466021913960400191505060405180910390fd5b600354604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b158015610ba057600080fd5b505afa158015610bb4573d6000803e3d6000fd5b505050506040513d6020811015610bca57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505050506040513d60208110156104bb57600080fdfe4f6e6c79206f776e657220616c6c6f77656420746f2070756c6c20746f6b656e734f6e6c79206f776e657220616c6c6f77656420746f206368616e676520636c69656e744f6e6c79206b656570657220616c6c6f77656420746f206368616e6765206b65657065724f6e6c79206b656570657220616c6c6f77656420746f2065786563757465206465706f7369744f6e6c79206f776e657220616c6c6f656420746f206368616e6765206f776e6572a164736f6c6343000706000a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.