S Price: $0.48593 (+4.38%)
    /

    Contract

    0x58c59F72B326a0F420815B6211eDdDF565f2Eb94
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount

    There are no matching entries

    1 Internal Transaction and > 10 Token Transfers found.

    Latest 1 internal transaction

    Parent Transaction Hash Block Age From To Amount
    41017192025-01-16 5:02:5895 days ago1737003778
     Contract Creation
    0 S
    Loading...
    Loading

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

    Contract Name:
    FeeDistributor

    Compiler Version
    v0.8.28+commit.7893614a

    Optimization Enabled:
    Yes with 1633 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 12 : FeeDistributor.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity ^0.8.24;
    import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
    import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol";
    import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
    import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
    import {IFeeDistributor} from "./interfaces/IFeeDistributor.sol";
    import {IVoter} from "./interfaces/IVoter.sol";
    import {IVoteModule} from "./interfaces/IVoteModule.sol";
    import {ILauncherPlugin} from "./interfaces/ILauncherPlugin.sol";
    contract FeeDistributor is IFeeDistributor, ReentrancyGuard {
    using EnumerableSet for EnumerableSet.AddressSet;
    /// @inheritdoc IFeeDistributor
    address public immutable voter;
    /// @inheritdoc IFeeDistributor
    address public immutable voteModule;
    /// @inheritdoc IFeeDistributor
    address public immutable feeRecipient;
    /// @inheritdoc IFeeDistributor
    uint256 public immutable firstPeriod;
    /// @dev fetch through: Voter-> LauncherPlugin
    ILauncherPlugin public immutable plugin;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 12 : Math.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)
    pragma solidity ^0.8.20;
    import {Panic} from "../Panic.sol";
    import {SafeCast} from "./SafeCast.sol";
    /**
    * @dev Standard math utilities missing in the Solidity language.
    */
    library Math {
    enum Rounding {
    Floor, // Toward negative infinity
    Ceil, // Toward positive infinity
    Trunc, // Toward zero
    Expand // Away from zero
    }
    /**
    * @dev Returns the addition of two unsigned integers, with an success flag (no overflow).
    */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {
    unchecked {
    uint256 c = a + b;
    if (c < a) return (false, 0);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 12 : IERC20.sol
    1
    2
    3
    4
    5
    6
    // 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";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 12 : ReentrancyGuard.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Contract module that helps prevent reentrant calls to a function.
    *
    * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
    * available, which can be applied to functions to make sure there are no nested
    * (reentrant) calls to them.
    *
    * Note that because there is a single `nonReentrant` guard, functions marked as
    * `nonReentrant` may not call one another. This can be worked around by making
    * those functions `private`, and then adding `external` `nonReentrant` entry
    * points to them.
    *
    * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,
    * consider using {ReentrancyGuardTransient} instead.
    *
    * TIP: If you would like to learn more about reentrancy and alternative ways
    * to protect against it, check out our blog post
    * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
    */
    abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 12 : EnumerableSet.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/structs/EnumerableSet.sol)
    // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.
    pragma solidity ^0.8.20;
    /**
    * @dev Library for managing
    * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
    * types.
    *
    * Sets have the following properties:
    *
    * - Elements are added, removed, and checked for existence in constant time
    * (O(1)).
    * - Elements are enumerated in O(n). No guarantees are made on the ordering.
    *
    * ```solidity
    * contract Example {
    * // Add the library methods
    * using EnumerableSet for EnumerableSet.AddressSet;
    *
    * // Declare a set state variable
    * EnumerableSet.AddressSet private mySet;
    * }
    * ```
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 12 : IFeeDistributor.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity ^0.8.26;
    interface IFeeDistributor {
    error NOT_AUTHORIZED();
    error ZERO_AMOUNT();
    error NOT_FINALIZED();
    error TOKEN_ERROR(address);
    event Deposit(address owner, uint256 amount);
    event Withdraw(address owner, uint256 amount);
    event NotifyReward(
    address indexed from,
    address indexed reward,
    uint256 amount,
    uint256 period
    );
    event VotesIncentivized(
    address indexed from,
    address indexed reward,
    uint256 amount,
    uint256 period
    );
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 12 : IVoter.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity ^0.8.26;
    pragma abicoder v2;
    interface IVoter {
    error ACTIVE_GAUGE(address gauge);
    error GAUGE_INACTIVE(address gauge);
    error ALREADY_WHITELISTED(address token);
    error NOT_AUTHORIZED(address caller);
    error NOT_WHITELISTED();
    error NOT_POOL();
    error NOT_INIT();
    error LENGTH_MISMATCH();
    error NO_GAUGE();
    error ALREADY_DISTRIBUTED(address gauge, uint256 period);
    error ZERO_VOTE(address pool);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 12 : IVoteModule.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.26;
    interface IVoteModule {
    /** Custom Errors */
    /// @dev == 0
    error ZERO_AMOUNT();
    /// @dev if address is not xShadow
    error NOT_XSHADOW();
    /// @dev error for when the cooldown period has not been passed yet
    error COOLDOWN_ACTIVE();
    /// @dev error for when you try to deposit or withdraw for someone who isn't the msg.sender
    error NOT_VOTEMODULE();
    /// @dev error for when the caller is not authorized
    error UNAUTHORIZED();
    /// @dev error for accessHub gated functions
    error NOT_ACCESSHUB();
    /// @dev error for when there is no change of state
    error NO_CHANGE();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 12 : ILauncherPlugin.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.26;
    interface ILauncherPlugin {
    error NOT_AUTHORITY();
    error ALREADY_AUTHORITY();
    error NOT_OPERATOR();
    error ALREADY_OPERATOR();
    error NOT_ENABLED(address pool);
    error NO_FEEDIST();
    error ENABLED();
    error INVALID_TAKE();
    /// @dev struct that holds the configurations of each specific pool
    struct LauncherConfigs {
    uint256 launcherTake;
    address takeRecipient;
    }
    event NewOperator(address indexed _old, address indexed _new);
    event NewAuthority(address indexed _newAuthority);
    event RemovedAuthority(address indexed _previousAuthority);
    event EnabledPool(address indexed pool, string indexed _name);
    event DisabledPool(address indexed pool);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 12 : Panic.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Helper library for emitting standardized panic codes.
    *
    * ```solidity
    * contract Example {
    * using Panic for uint256;
    *
    * // Use any of the declared internal constants
    * function foo() { Panic.GENERIC.panic(); }
    *
    * // Alternatively
    * function foo() { Panic.panic(Panic.GENERIC); }
    * }
    * ```
    *
    * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].
    *
    * _Available since v5.1._
    */
    // slither-disable-next-line unused-state
    library Panic {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 12 : SafeCast.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)
    // This file was procedurally generated from scripts/generate/templates/SafeCast.js.
    pragma solidity ^0.8.20;
    /**
    * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow
    * checks.
    *
    * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can
    * easily result in undesired exploitation or bugs, since developers usually
    * assume that overflows raise errors. `SafeCast` restores this intuition by
    * reverting the transaction when such an operation overflows.
    *
    * Using this library instead of the unchecked operations eliminates an entire
    * class of bugs, so it's recommended to use it always.
    */
    library SafeCast {
    /**
    * @dev Value doesn't fit in an uint of `bits` size.
    */
    error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);
    /**
    * @dev An int value doesn't fit in an uint of `bits` size.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 12 : IERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Interface of the ERC-20 standard as defined in the ERC.
    */
    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.
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/",
    "@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/",
    "@forge-std-1.9.4/=dependencies/forge-std-1.9.4/",
    "@layerzerolabs/=node_modules/@layerzerolabs/",
    "@layerzerolabs/lz-evm-protocol-v2/=node_modules/@layerzerolabs/lz-evm-protocol-v2/",
    "@openzeppelin-contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/",
    "@openzeppelin-contracts/contracts/=dependencies/@openzeppelin-contracts-5.1.0/",
    "@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/",
    "erc4626-tests/=dependencies/erc4626-property-tests-1.0/",
    "forge-std/=dependencies/forge-std-1.9.4/src/",
    "permit2/=lib/permit2/",
    "@openzeppelin-3.4.2/=node_modules/@openzeppelin-3.4.2/",
    "@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/",
    "@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/",
    "@uniswap/=node_modules/@uniswap/",
    "base64-sol/=node_modules/base64-sol/",
    "ds-test/=node_modules/ds-test/",
    "erc4626-property-tests-1.0/=dependencies/erc4626-property-tests-1.0/",
    "eth-gas-reporter/=node_modules/eth-gas-reporter/",
    "forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/",
    "hardhat/=node_modules/hardhat/",
    "solidity-bytes-utils/=node_modules/solidity-bytes-utils/",
    "solmate/=node_modules/solmate/"
    ],
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"address","name":"_feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NOT_AUTHORIZED","type":"error"},{"inputs":[],"name":"NOT_FINALIZED","type":"error"},{"inputs":[],"name":"NOT_WHITELISTED","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"TOKEN_ERROR","type":"error"},{"inputs":[],"name":"ZERO_AMOUNT","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"period","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"period","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_reward","type":"address"}],"name":"RewardsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"period","type":"uint256"}],"name":"VotesIncentivized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"_deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"getPeriodReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"getRewardForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardTokens","outputs":[{"internalType":"address[]","name":"_rewards","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"incentivize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"lastClaimByToken","outputs":[{"internalType":"uint256","name":"period","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"plugin","outputs":[{"internalType":"contract ILauncherPlugin","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"rewardSupply","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"userClaimed","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"userVotes","outputs":[{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteModule","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"}],"name":"votes","outputs":[{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"view","type":"function"}]

    Deployed Bytecode

    0x60806040526004361015610011575f80fd5b5f3560e01c80631ed2419514611161578063211dc32d14610fd3578063293311ab14610e9d57806331279d3d14610df0578063463cd97014610ce55780634690484014610ca257806346c96aac14610c5f5780635df8133014610c3557806370a0823114610bfd578063716e5f6a14610ba957806385caf28b14610b665780638bb28cb514610b215780639861a67a14610ad6578063a4d5e67c14610a4d578063b66503cf1461063a578063c4e3a63b14610600578063c4f59f9b14610541578063c887d19114610492578063e943da8a14610413578063ef01df4f146103d0578063f915f982146101545763fe5b3e3b1461010b575f80fd5b3461015057604036600319011261015057610124611197565b6004355f5260036020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b5f80fd5b346101505760403660031901126101505761016d611181565b602435610178611350565b80156103a85760405191633af32abf60e01b83526001600160a01b038116928360048201526020816024816001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f165afa9081156102fc575f91610379575b50156103515762093a804204916001830180931161033d576101fe84611907565b50604051906370a0823160e01b8252306004830152602082602481885afa9182156102fc575f92610307575b50610239919230903390611534565b604051906370a0823160e01b8252306004830152602082602481875afa80156102fc575f906102c8575b61026d9250611317565b90805f52600460205260405f20835f5260205260405f2061028f83825461130a565b905560405191825260208201527f4a1b99824c404164ed567bfb779dbdcd0367cf61723d7f537e4d1c28e63cb88260403392a360015f55005b506020823d6020116102f4575b816102e2602093836111ad565b810103126101505761026d9151610263565b3d91506102d5565b6040513d5f823e3d90fd5b91506020823d602011610335575b81610322602093836111ad565b810103126101505761023991519161022a565b3d9150610315565b634e487b7160e01b5f52601160045260245ffd5b7fbffbc6be000000000000000000000000000000000000000000000000000000005f5260045ffd5b61039b915060203d6020116103a1575b61039381836111ad565b810190611324565b846101dd565b503d610389565b7ff6fa5450000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610150575f3660031901126101505760206040516001600160a01b037f0000000000000000000000003ec4fc1885513d932f113f9de9b50a8764dbfc7f168152f35b3461015057610421366111e3565b9061042a611350565b6001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f16330361046a5761046491816113af565b60015f55005b7f3d83866f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610150576104a036611291565b6104ab929192611350565b604051634b41045960e01b81523360048201526001600160a01b0384166024820152602081806044810103816001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4165afa9081156102fc575f91610522575b501561046a576104649233926115ea565b61053b915060203d6020116103a15761039381836111ad565b84610511565b34610150575f366003190112610150576040518060206007549283815201809260075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688905f5b8181106105ea575050508161059f9103826111ad565b604051918291602083019060208452518091526040830191905f5b8181106105c8575050500390f35b82516001600160a01b03168452859450602093840193909201916001016105ba565b8254845260209093019260019283019201610589565b34610150575f3660031901126101505760206040517f0000000000000000000000000000000000000000000000000000000000000b388152f35b3461015057604036600319011261015057610653611181565b60243561065e611350565b80916001600160a01b037f000000000000000000000000cc0365f8f453c55ea7471c9f89767928c8f8d27f16330361046a5781156103a85760405192633af32abf60e01b84526001600160a01b038216938460048201526020816024816001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f165afa9081156102fc575f91610a2e575b50156103515762093a804204926001840180941161033d5761071685611907565b506001600160a01b037f0000000000000000000000003ec4fc1885513d932f113f9de9b50a8764dbfc7f16906040517f1e8d2e4d000000000000000000000000000000000000000000000000000000008152306004820152602081602481865afa9081156102fc575f916109f4575b506001600160a01b03604051917f8668a494000000000000000000000000000000000000000000000000000000008352166004820152602081602481865afa9081156102fc575f916109d5575b5061090d575b5050604051906370a0823160e01b8252306004830152602082602481885afa9182156102fc575f926108d7575b50610814919230903390611534565b604051906370a0823160e01b8252306004830152602082602481875afa80156102fc575f906108a3575b6108489250611317565b90805f52600460205260405f20835f5260205260405f2061086a83825461130a565b905560405191825260208201527f52977ea98a2220a03ee9ba5cb003ada08d394ea10155483c95dc2dc77a7eb24b60403392a360015f55005b506020823d6020116108cf575b816108bd602093836111ad565b8101031261015057610848915161083e565b3d91506108b0565b91506020823d602011610905575b816108f2602093836111ad565b8101031261015057610814915191610805565b3d91506108e5565b60406024928151938480927f54fe9fd70000000000000000000000000000000000000000000000000000000082523060048301525afa9182156102fc575f905f9361098d575b5061096161271091836112f7565b04918261096f575b506107d8565b610985935082610980913387611534565b611317565b848080610969565b9250506040823d6040116109cd575b816109a9604093836111ad565b81010312610150576127106109616109c560208551950161133c565b939150610953565b3d915061099c565b6109ee915060203d6020116103a15761039381836111ad565b876107d2565b90506020813d602011610a26575b81610a0f602093836111ad565b8101031261015057610a209061133c565b87610785565b3d9150610a02565b610a47915060203d6020116103a15761039381836111ad565b856106f5565b3461015057602036600319011261015057610a66611181565b6001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f16330361046a5760206001600160a01b037ffb48a5e98c18ee78db7b69705ec447f477863f5c91f44870125ed162aeecd92b9216610acc8161182c565b50604051908152a1005b3461015057610ae436611291565b915f5260056020526001600160a01b0360405f2091165f526020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b3461015057604036600319011261015057610b3a611197565b6004355f5260046020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b34610150575f3660031901126101505760206040516001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4168152f35b3461015057604036600319011261015057610bc2611181565b6001600160a01b03610bd2611197565b91165f5260066020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b34610150576020366003190112610150576001600160a01b03610c1e611181565b165f526001602052602060405f2054604051908152f35b34610150576020366003190112610150576004355f526002602052602060405f2054604051908152f35b34610150575f3660031901126101505760206040516001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f168152f35b34610150575f3660031901126101505760206040516001600160a01b037f000000000000000000000000cc0365f8f453c55ea7471c9f89767928c8f8d27f168152f35b3461015057604036600319011261015057600435610d01611197565b906001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f16330361046a5762093a804204916001830180931161033d577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c926001600160a01b0382165f52600160205260405f20610d8684825461130a565b9055805f52600260205260405f20610d9f84825461130a565b90555f52600360205260405f206001600160a01b0382165f5260205260405f20610dca83825461130a565b9055604080516001600160a01b039092168252602082019290925290819081015b0390a1005b3461015057610dfe366111e3565b90610e07611350565b604051634b41045960e01b81523360048201526001600160a01b0382166024820152602081806044810103816001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4165afa9081156102fc575f91610e7e575b501561046a576104649133916113af565b610e97915060203d6020116103a15761039381836111ad565b83610e6d565b3461015057604036600319011261015057600435610eb9611197565b906001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f16330361046a5762093a804204916001830180931161033d577f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364926001600160a01b0382165f52600160205260405f20610f3e848254611317565b9055805f52600360205260405f206001600160a01b0383165f5260205260405f2054610f89575b50604080516001600160a01b03909216825260208201929092529081908101610deb565b805f52600360205260405f206001600160a01b0383165f5260205260405f20610fb3848254611317565b90555f52600260205260405f20610fcb838254611317565b905583610f65565b3461015057604036600319011261015057610fec611181565b610ff4611197565b5f9062093a804204906001600160a01b0384165f52600660205260405f206001600160a01b0382165f5260205260405f20547f0000000000000000000000000000000000000000000000000000000000000b389081808211911802185b8281111561106457602084604051908152f35b805f52600260205260405f2054611084575b61107f906112e9565b611051565b92835f52600360205260405f206001600160a01b0383165f5260205260405f205490670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561033d5761112061115991670de0b6b3a76400006111196110f461107f968a5f52600260205260405f2054906112cb565b895f52600460205260405f206001600160a01b038c165f5260205260405f20546112f7565b049061130a565b855f52600560205260405f206001600160a01b0385165f5260205260405f206001600160a01b0388165f5260205260405f205490611317565b939050611076565b34610150575f36600319011261015057602062093a804204604051908152f35b600435906001600160a01b038216820361015057565b602435906001600160a01b038216820361015057565b90601f8019910116810190811067ffffffffffffffff8211176111cf57604052565b634e487b7160e01b5f52604160045260245ffd5b906040600319830112610150576004356001600160a01b0381168103610150579160243567ffffffffffffffff811161015057816023820112156101505780600401359167ffffffffffffffff83116111cf578260051b916040519361124c60208501866111ad565b84526024602085019382010191821161015057602401915b8183106112715750505090565b82356001600160a01b038116810361015057815260209283019201611264565b606090600319011261015057600435906024356001600160a01b038116810361015057906044356001600160a01b03811681036101505790565b81156112d5570490565b634e487b7160e01b5f52601260045260245ffd5b5f19811461033d5760010190565b8181029291811591840414171561033d57565b9190820180921161033d57565b9190820391821161033d57565b90816020910312610150575180151581036101505790565b51906001600160a01b038216820361015057565b60025f541461135f5760025f55565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b805182101561139b5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90929162093a8042045f198101929181841191907f0000000000000000000000000000000000000000000000000000000000000b385f5b88518110156114ad576001600160a01b03611401828b611387565b51165f52600660205260405f206001600160a01b0387165f526020528460405f20548380821191180283185b84838c8884111561147d575050505061033d57806001600160a01b036114556001938c611387565b51165f52600660205260405f206001600160a01b0388165f526020528760405f2055016113e6565b6114a694506114986114a193926001600160a01b0392611387565b51168a846115ea565b6112e9565b859061142d565b505050505050509050565b156114c05750565b6001600160a01b03907fc69cbf86000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b3d1561152f573d9067ffffffffffffffff82116111cf5760405191611524601f8201601f1916602001846111ad565b82523d5f602084013e565b606090565b915f9182916115b99561154a86803b15156114b8565b6001600160a01b03604051928160208501957f23b872dd00000000000000000000000000000000000000000000000000000000875216602485015216604483015260648201526064815261159f6084826111ad565b519082855af16115ad6114f5565b816115bb575b506114b8565b565b80518015925082156115d0575b50505f6115b3565b6115e39250602080918301019101611324565b5f806115c8565b90919262093a80420482116117ef57815f52600260205260405f2054611611575b50505050565b815f52600360205260405f206001600160a01b0384165f5260205260405f2054670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561033d57670de0b6b3a764000061169d6116786116d793865f52600260205260405f2054906112cb565b855f52600460205260405f206001600160a01b0389165f5260205260405f20546112f7565b04835f52600560205260405f206001600160a01b0386165f5260205260405f206001600160a01b0387165f5260205260405f205490611317565b90825f52600560205260405f206001600160a01b0385165f5260205260405f206001600160a01b0386165f5260205260405f2061171583825461130a565b905581611723575b5061160b565b846001600160a01b0380928160a097611760857f1713744d279f608411b42a7c80f3233d1621c0a40b393bf320e1dc85db3eb2c69b3b15156114b8565b6117c7855f808a60405161159f816117b960208201947fa9059cbb0000000000000000000000000000000000000000000000000000000086528c60248401602090939291936001600160a01b0360408201951681520152565b03601f1981018352826111ad565b6040519788521660208701521660408501521660608301526080820152a15f8080808061171d565b7f8db8fc52000000000000000000000000000000000000000000000000000000005f5260045ffd5b805482101561139b575f5260205f2001905f90565b5f818152600860205260409020548015611901575f19810181811161033d576007545f1981019190821161033d578181036118b3575b505050600754801561189f575f190161187c816007611817565b8154905f199060031b1b191690556007555f5260086020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b6118eb6118c46118d5936007611817565b90549060031b1c9283926007611817565b819391549060031b91821b915f19901b19161790565b90555f52600860205260405f20555f8080611862565b50505f90565b805f52600860205260405f2054155f1461195c57600754680100000000000000008110156111cf576119456118d58260018594016007556007611817565b9055600754905f52600860205260405f2055600190565b505f9056fea264697066735822122061e68e382f2824c03f20cd05c125bc22f72cf937773d25943830c5ba4bb7175a64736f6c634300081c0033

    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

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

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age 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.