ETH Price: $2,897.32 (-1.31%)

Contract

0xC8f4562037eCcEfb8E96675701bAb111C90071C5

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Transaction Hash
Block
From
To
Sweep189723902025-05-14 0:02:44257 days ago1747180964IN
0xC8f45620...1C90071C5
0 ETH0.000002040.05614615
Zap And Stake162311062025-02-25 0:28:09335 days ago1740443289IN
0xC8f45620...1C90071C5
0.85433002 ETH0.000055910.04062796
Zap And Stake160950722025-02-21 12:35:03338 days ago1740141303IN
0xC8f45620...1C90071C5
0.101 ETH0.000095470.03916786
Zap And Stake154413602025-02-05 2:26:18355 days ago1738722378IN
0xC8f45620...1C90071C5
0.05 ETH0.000008420.10742857
Zap And Stake152190982025-01-30 11:57:44360 days ago1738238264IN
0xC8f45620...1C90071C5
0.1 ETH0.000061730.04095863
Zap And Stake151583322025-01-28 22:05:51362 days ago1738101951IN
0xC8f45620...1C90071C5
0.015 ETH0.000012710.15432901
Zap And Stake151583162025-01-28 22:05:14362 days ago1738101914IN
0xC8f45620...1C90071C5
0.013 ETH0.000012590.15443858
Zap And Stake142428482025-01-06 9:48:51384 days ago1736156931IN
0xC8f45620...1C90071C5
0.1 ETH0.000056120.04145204
Zap And Stake138054412024-12-26 13:10:07395 days ago1735218607IN
0xC8f45620...1C90071C5
0.105 ETH0.000134830.04664212
Zap And Stake135049622024-12-19 8:53:04402 days ago1734598384IN
0xC8f45620...1C90071C5
0.101 ETH0.000065430.03947853
Zap And Stake135049282024-12-19 8:51:56402 days ago1734598316IN
0xC8f45620...1C90071C5
0.1 ETH0.000117990.03928055
Zap And Stake134232122024-12-17 10:39:54404 days ago1734431994IN
0xC8f45620...1C90071C5
0.17 ETH0.000046890.03951946
Zap And Stake133887962024-12-16 14:48:09405 days ago1734360489IN
0xC8f45620...1C90071C5
0.1 ETH0.00016430.04371003
Zap And Stake133298912024-12-15 5:03:56407 days ago1734239036IN
0xC8f45620...1C90071C5
0.15 ETH0.000080820.04238276
Zap And Stake132573102024-12-13 10:54:40408 days ago1734087280IN
0xC8f45620...1C90071C5
0.1 ETH0.000524950.363
Zap And Stake131538492024-12-10 23:33:17411 days ago1733873597IN
0xC8f45620...1C90071C5
0.53 ETH0.00045720.26469088
Zap And Stake131382272024-12-10 14:30:25411 days ago1733841025IN
0xC8f45620...1C90071C5
1.02 ETH0.001592750.5689219
Zap And Stake130251632024-12-07 20:07:17414 days ago1733602037IN
0xC8f45620...1C90071C5
0.1 ETH0.000581650.36759422
Zap And Stake129967932024-12-07 3:42:30415 days ago1733542950IN
0xC8f45620...1C90071C5
0.25 ETH0.000044350.03389343
Zap And Stake129872292024-12-06 21:51:37415 days ago1733521897IN
0xC8f45620...1C90071C5
0.12 ETH0.000052910.03364724
Zap And Stake129789082024-12-06 16:59:28415 days ago1733504368IN
0xC8f45620...1C90071C5
0.9 ETH0.001478430.951
Zap And Stake129506552024-12-06 0:14:43416 days ago1733444083IN
0xC8f45620...1C90071C5
0.16 ETH0.000346510.2036178
Zap And Stake126819282024-11-29 11:34:32422 days ago1732880072IN
0xC8f45620...1C90071C5
0.3 ETH0.000140380.03930224
Zap And Stake125328052024-11-25 21:01:15426 days ago1732568475IN
0xC8f45620...1C90071C5
0.2 ETH0.003292951.971
Zap And Stake124329922024-11-23 12:25:33428 days ago1732364733IN
0xC8f45620...1C90071C5
1 ETH0.00005890.04191864
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
189723902025-05-14 0:02:44257 days ago1747180964
0xC8f45620...1C90071C5
0 ETH
189723902025-05-14 0:02:44257 days ago1747180964
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0 ETH
162311062025-02-25 0:28:09335 days ago1740443289
0xC8f45620...1C90071C5
0.85433002 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0 ETH
160950722025-02-21 12:35:03338 days ago1740141303
0xC8f45620...1C90071C5
0.101 ETH
154413602025-02-05 2:26:18355 days ago1738722378
0xC8f45620...1C90071C5
0 ETH
154413602025-02-05 2:26:18355 days ago1738722378
0xC8f45620...1C90071C5
0.05 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0 ETH
152190982025-01-30 11:57:44360 days ago1738238264
0xC8f45620...1C90071C5
0.1 ETH
151583322025-01-28 22:05:51362 days ago1738101951
0xC8f45620...1C90071C5
0 ETH
151583322025-01-28 22:05:51362 days ago1738101951
0xC8f45620...1C90071C5
0.015 ETH
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

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

Contract Name:
ZapLockerLP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 100000 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {ILocker} from "../interfaces/ILocker.sol";
import {IERC20, IWETH} from "../interfaces/IWETH.sol";

/**
 * @title ZapLockerLP
 * @dev This contract allows users to perform a Zap operation by swapping ETH for Zero tokens, adding liquidity to Nile LP, and locking LP tokens.
 */
contract ZapLockerLP {
    address public odos;
    ILocker public locker;
    IERC20 public zero;
    IWETH public weth;
    IERC20 public lp;
    address private me;

    error OdosSwapFailed();
    error EthSendFailed();
    error ZeroTransferFailed();

    /**
     * @dev Initializes the contract with required parameters.
     * @param _odos The address of the Odos Router contract.
     * @param _locker The address of the LP Token Locker contract.
     * @param _zero The address of the Zero Token contract.
     * @param _weth The address of WETH.
     */
    constructor(address _odos, address _locker, address _zero, address _weth) {
        odos = _odos;
        locker = ILocker(_locker);
        zero = IERC20(_zero);
        weth = IWETH(_weth);
        lp = locker.underlying();

        // give approvals
        weth.approve(odos, type(uint256).max);
        zero.approve(odos, type(uint256).max);
        lp.approve(_locker, type(uint256).max);

        me = address(this);
    }

    /**
     * @dev Executes the Zap operation by swapping ETH for Zero tokens, adding liquidity to Nile LP, and locking LP tokens.
     * @param duration The duration for which the LP tokens will be locked.
     * @param zeroAmount How much ZERO the user will pass into the LP token
     * @param wethAmount How much WETH the user will pass into the LP token
     * @param odosSwapData The data required for the Odos swap.
     */
    function zapAndStake(
        uint256 duration,
        uint256 zeroAmount,
        uint256 wethAmount,
        bytes calldata odosSwapData
    ) external payable {
        // fetch tokens and wrap eth
        if (msg.value > 0) weth.deposit{value: msg.value}();
        if (zeroAmount > 0) zero.transferFrom(msg.sender, me, zeroAmount);
        if (wethAmount > 0) weth.transferFrom(msg.sender, me, wethAmount);

        // odos should be able to swap into LP tokens directly.
        (bool success, ) = odos.call(odosSwapData);
        if (!success) revert OdosSwapFailed();

        // stake the LP tokens that we get back from odos
        uint256 lpTokens = lp.balanceOf(address(this));
        locker.createLockFor(lpTokens, duration, msg.sender, true);

        // sweep any dust
        sweep();
    }

    function sweep() public {
        uint256 eth = address(this).balance;
        uint256 zeroB = zero.balanceOf(address(this));
        uint256 wethB = weth.balanceOf(address(this));

        if (eth > 0) {
            (bool ethSendSuccess, ) = msg.sender.call{value: eth}("");
            if (!ethSendSuccess) revert EthSendFailed();
        }

        if (zeroB > 0 && !zero.transfer(msg.sender, zeroB))
            revert ZeroTransferFailed();

        if (wethB > 0 && !weth.transfer(msg.sender, wethB))
            revert EthSendFailed();
    }
}

File 2 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)

pragma solidity ^0.8.20;

import {IERC20} from "../token/ERC20/IERC20.sol";

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Enumerable.sol)

pragma solidity ^0.8.20;

import {IERC721} from "../IERC721.sol";

/**
 * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Enumerable is IERC721 {
    /**
     * @dev Returns the total amount of tokens stored by the contract.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.
     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
     */
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);

    /**
     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.
     * Use along with {totalSupply} to enumerate all tokens.
     */
    function tokenByIndex(uint256 index) external view returns (uint256);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.20;

import {IERC165} from "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon
     *   a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or
     *   {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon
     *   a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721
     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must
     * understand this adds an external call which potentially creates a reentrancy vulnerability.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the address zero.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol";

interface ILocker is IERC721Enumerable {
    struct LockedBalance {
        uint256 amount;
        uint256 end;
        uint256 start;
        uint256 power;
    }

    function underlying() external view returns (IERC20);

    function balanceOfNFTAt(
        uint256 _tokenId,
        uint256 _t
    ) external view returns (uint256);

    function locked(
        uint256 _tokenId
    ) external view returns (LockedBalance memory);

    function supportsInterface(
        bytes4 _interfaceID
    ) external view returns (bool);

    function lockedEnd(uint256 _tokenId) external view returns (uint256);

    function votingPowerOf(
        address _owner
    ) external view returns (uint256 _power);

    function merge(uint256 _from, uint256 _to) external;

    function depositFor(uint256 _tokenId, uint256 _value) external;

    function createLockFor(
        uint256 _value,
        uint256 _lockDuration,
        address _to,
        bool _stakeNFT
    ) external returns (uint256);

    function createLock(
        uint256 _value,
        uint256 _lockDuration,
        bool _stakeNFT
    ) external returns (uint256);

    function increaseAmount(uint256 _tokenId, uint256 _value) external;

    /// @notice Extend the unlock time for `_tokenId`
    /// @param _lockDuration New number of seconds until tokens unlock
    function increaseUnlockTime(
        uint256 _tokenId,
        uint256 _lockDuration
    ) external;

    function withdraw(uint256 _tokenId) external;

    function withdraw(uint256[] calldata _tokenIds) external;

    function withdraw(address _user) external;

    function balanceOfNFT(uint256 _tokenId) external view returns (uint256);
}

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.20;

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

interface IWETH is IERC20 {
    function deposit() external payable;

    function withdraw(uint256 wad) external;
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_odos","type":"address"},{"internalType":"address","name":"_locker","type":"address"},{"internalType":"address","name":"_zero","type":"address"},{"internalType":"address","name":"_weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EthSendFailed","type":"error"},{"inputs":[],"name":"OdosSwapFailed","type":"error"},{"inputs":[],"name":"ZeroTransferFailed","type":"error"},{"inputs":[],"name":"locker","outputs":[{"internalType":"contract ILocker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"odos","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"zeroAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"bytes","name":"odosSwapData","type":"bytes"}],"name":"zapAndStake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"zero","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

0x60806040523480156200001157600080fd5b5060405162000d8e38038062000d8e8339810160408190526200003491620002a9565b600080546001600160a01b038087166001600160a01b03199283161790925560018054868416908316811790915560028054868516908416179055600380549385169390921692909217905560408051636f307dc360e01b81529051636f307dc3916004808201926020929091908290030181865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000311565b600480546001600160a01b0319166001600160a01b0392831617815560035460005460405163095ea7b360e01b81529084169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af115801562000150573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000176919062000338565b5060025460005460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015620001ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f4919062000338565b506004805460405163095ea7b360e01b81526001600160a01b0386811693820193909352600019602482015291169063095ea7b3906044016020604051808303816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000338565b5050600580546001600160a01b03191630179055506200035c915050565b6001600160a01b0381168114620002a657600080fd5b50565b60008060008060808587031215620002c057600080fd5b8451620002cd8162000290565b6020860151909450620002e08162000290565b6040860151909350620002f38162000290565b6060860151909250620003068162000290565b939692955090935050565b6000602082840312156200032457600080fd5b8151620003318162000290565b9392505050565b6000602082840312156200034b57600080fd5b815180151581146200033157600080fd5b610a22806200036c6000396000f3fe6080604052600436106100705760003560e01c806335faa4161161004e57806335faa4161461010d5780633fc8cef314610122578063bc1b392d1461014f578063d7b96d4e1461017c57600080fd5b80631eba02ec146100755780632ee2b12b146100cb578063313c06a0146100e0575b600080fd5b34801561008157600080fd5b506000546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100de6100d936600461090d565b6101a9565b005b3480156100ec57600080fd5b506004546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561011957600080fd5b506100de61058f565b34801561012e57600080fd5b506003546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561015b57600080fd5b506002546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561018857600080fd5b506001546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b341561023357600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b50505050505b83156102e0576002546005546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9182166024820152604481018790529116906323b872dd906064016020604051808303816000875af11580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de919061099a565b505b821561038d576003546005546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9182166024820152604481018690529116906323b872dd906064016020604051808303816000875af1158015610367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b919061099a565b505b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116906103ba90859085906109c3565b6000604051808303816000865af19150503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b5050905080610437576040517f45d4013e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925260009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156104ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cf91906109d3565b600180546040517f0a2abdb300000000000000000000000000000000000000000000000000000000815260048101849052602481018b9052336044820152606481019290925291925073ffffffffffffffffffffffffffffffffffffffff90911690630a2abdb3906084016020604051808303816000875af1158015610559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057d91906109d3565b5061058661058f565b50505050505050565b6002546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152479160009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906109d3565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be91906109d3565b9050821561074a57604051600090339085908381818185875af1925050503d8060008114610708576040519150601f19603f3d011682016040523d82523d6000602084013e61070d565b606091505b5050905080610748576040517f98248e6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6000821180156107f257506002546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb906044016020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f0919061099a565b155b15610829576040517f5a91840400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000811180156108d157506003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb906044016020604051808303816000875af11580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cf919061099a565b155b15610908576040517f98248e6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008060008060006080868803121561092557600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8082111561095257600080fd5b818801915088601f83011261096657600080fd5b81358181111561097557600080fd5b89602082850101111561098757600080fd5b9699959850939650602001949392505050565b6000602082840312156109ac57600080fd5b815180151581146109bc57600080fd5b9392505050565b8183823760009101908152919050565b6000602082840312156109e557600080fd5b505191905056fea264697066735822122052593306e68182d2f0756459cf3f2407effc8afc6775256957d4e87ff4c67c6c64736f6c634300081400330000000000000000000000002d8879046f1559e53eb052e949e9544bcb72f4140000000000000000000000008bb8b092f3f872a887f377f73719c665dd20ab0600000000000000000000000078354f8dccb269a615a7e0a24f9b0718fdc3c7a7000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f

Deployed Bytecode

0x6080604052600436106100705760003560e01c806335faa4161161004e57806335faa4161461010d5780633fc8cef314610122578063bc1b392d1461014f578063d7b96d4e1461017c57600080fd5b80631eba02ec146100755780632ee2b12b146100cb578063313c06a0146100e0575b600080fd5b34801561008157600080fd5b506000546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100de6100d936600461090d565b6101a9565b005b3480156100ec57600080fd5b506004546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561011957600080fd5b506100de61058f565b34801561012e57600080fd5b506003546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561015b57600080fd5b506002546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b34801561018857600080fd5b506001546100a29073ffffffffffffffffffffffffffffffffffffffff1681565b341561023357600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b50505050505b83156102e0576002546005546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9182166024820152604481018790529116906323b872dd906064016020604051808303816000875af11580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de919061099a565b505b821561038d576003546005546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9182166024820152604481018690529116906323b872dd906064016020604051808303816000875af1158015610367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038b919061099a565b505b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116906103ba90859085906109c3565b6000604051808303816000865af19150503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b5050905080610437576040517f45d4013e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480546040517f70a08231000000000000000000000000000000000000000000000000000000008152309281019290925260009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156104ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cf91906109d3565b600180546040517f0a2abdb300000000000000000000000000000000000000000000000000000000815260048101849052602481018b9052336044820152606481019290925291925073ffffffffffffffffffffffffffffffffffffffff90911690630a2abdb3906084016020604051808303816000875af1158015610559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057d91906109d3565b5061058661058f565b50505050505050565b6002546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152479160009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906109d3565b6003546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291925060009173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be91906109d3565b9050821561074a57604051600090339085908381818185875af1925050503d8060008114610708576040519150601f19603f3d011682016040523d82523d6000602084013e61070d565b606091505b5050905080610748576040517f98248e6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6000821180156107f257506002546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810184905273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb906044016020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f0919061099a565b155b15610829576040517f5a91840400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000811180156108d157506003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb906044016020604051808303816000875af11580156108ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cf919061099a565b155b15610908576040517f98248e6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008060008060006080868803121561092557600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8082111561095257600080fd5b818801915088601f83011261096657600080fd5b81358181111561097557600080fd5b89602082850101111561098757600080fd5b9699959850939650602001949392505050565b6000602082840312156109ac57600080fd5b815180151581146109bc57600080fd5b9392505050565b8183823760009101908152919050565b6000602082840312156109e557600080fd5b505191905056fea264697066735822122052593306e68182d2f0756459cf3f2407effc8afc6775256957d4e87ff4c67c6c64736f6c63430008140033

Block Transaction Gas Used Reward
view all blocks sequenced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.