S Price: $0.457789 (+0.27%)
    /

    Contract

    0x6d8d5980505077FAf65D1FA85ac33e8D5623B57c
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount
    Set Approved209779892025-04-19 3:03:543 days ago1745031834IN
    0x6d8d5980...D5623B57c
    0 S0.0028827155
    Set Approved209756992025-04-19 2:36:123 days ago1745030172IN
    0x6d8d5980...D5623B57c
    0 S0.0015612355
    Set Approved202347442025-04-14 17:07:047 days ago1744650424IN
    0x6d8d5980...D5623B57c
    0 S0.0028827155
    Set Approved202347202025-04-14 17:06:517 days ago1744650411IN
    0x6d8d5980...D5623B57c
    0 S0.0016150755
    Set Approved174312992025-04-01 9:28:3120 days ago1743499711IN
    0x6d8d5980...D5623B57c
    0 S0.0028827155
    Set Approved174312812025-04-01 9:28:2420 days ago1743499704IN
    0x6d8d5980...D5623B57c
    0 S0.0016150755
    VIEW ADVANCED FILTER

    Latest 25 internal transactions (View All)

    Parent Transaction Hash Block Age From To Amount
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    76.42532483 S
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    0.06884475 S
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    76.49416958 S
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    0.01046529 S
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    0.00009504 S
    214239342025-04-21 18:53:1410 hrs ago1745261594
    0x6d8d5980...D5623B57c
    0.01056034 S
    213208642025-04-21 6:01:0023 hrs ago1745215260
    0x6d8d5980...D5623B57c
    0.01476534 S
    213208642025-04-21 6:01:0023 hrs ago1745215260
    0x6d8d5980...D5623B57c
    0.01476534 S
    213203102025-04-21 5:56:1823 hrs ago1745214978
    0x6d8d5980...D5623B57c
    31.25750296 S
    213203102025-04-21 5:56:1823 hrs ago1745214978
    0x6d8d5980...D5623B57c
    0.02815709 S
    213203102025-04-21 5:56:1823 hrs ago1745214978
    0x6d8d5980...D5623B57c
    31.28566005 S
    213198802025-04-21 5:52:4323 hrs ago1745214763
    0x6d8d5980...D5623B57c
    43.78520422 S
    213198802025-04-21 5:52:4323 hrs ago1745214763
    0x6d8d5980...D5623B57c
    0.03944218 S
    213198802025-04-21 5:52:4323 hrs ago1745214763
    0x6d8d5980...D5623B57c
    43.82464641 S
    213021702025-04-21 3:36:5425 hrs ago1745206614
    0x6d8d5980...D5623B57c
    4.16429335 S
    213021702025-04-21 3:36:5425 hrs ago1745206614
    0x6d8d5980...D5623B57c
    0.00375124 S
    213021702025-04-21 3:36:5425 hrs ago1745206614
    0x6d8d5980...D5623B57c
    4.16804459 S
    212888502025-04-21 2:27:0027 hrs ago1745202420
    0x6d8d5980...D5623B57c
    80.81635487 S
    212888502025-04-21 2:27:0027 hrs ago1745202420
    0x6d8d5980...D5623B57c
    0.07280023 S
    212888502025-04-21 2:27:0027 hrs ago1745202420
    0x6d8d5980...D5623B57c
    80.88915511 S
    212887422025-04-21 2:26:2327 hrs ago1745202383
    0x6d8d5980...D5623B57c
    70.34347021 S
    212887422025-04-21 2:26:2327 hrs ago1745202383
    0x6d8d5980...D5623B57c
    0.06336615 S
    212887422025-04-21 2:26:2327 hrs ago1745202383
    0x6d8d5980...D5623B57c
    70.40683637 S
    211864572025-04-20 13:57:2339 hrs ago1745157443
    0x6d8d5980...D5623B57c
    130.57650499 S
    211864572025-04-20 13:57:2339 hrs ago1745157443
    0x6d8d5980...D5623B57c
    0.11762471 S
    View All Internal Transactions
    Loading...
    Loading

    Minimal Proxy Contract for 0x7f4b6f10c34470ebddf5e7ab049d8dffb01f8a6f

    Contract Name:
    Sickle

    Compiler Version
    v0.8.19+commit.7dd6d404

    Optimization Enabled:
    Yes with 200 runs

    Other Settings:
    paris EvmVersion

    Contract Source Code (Solidity Standard Json-Input format)

    File 1 of 7 : Sickle.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
    pragma solidity ^0.8.17;
    import { SickleStorage } from "contracts/base/SickleStorage.sol";
    import { Multicall } from "contracts/base/Multicall.sol";
    import { SickleRegistry } from "contracts/SickleRegistry.sol";
    /// @title Sickle contract
    /// @author vfat.tools
    /// @notice Sickle facilitates farming and interactions with Masterchef
    /// contracts
    /// @dev Base contract inheriting from all the other "manager" contracts
    contract Sickle is SickleStorage, Multicall {
    /// @notice Function to receive ETH
    receive() external payable { }
    /// @param sickleRegistry_ Address of the SickleRegistry contract
    constructor(
    SickleRegistry sickleRegistry_
    ) initializer Multicall(sickleRegistry_) {
    _Sickle_initialize(address(0), address(0));
    }
    /// @param sickleOwner_ Address of the Sickle owner
    function initialize(
    address sickleOwner_,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 7 : SickleStorage.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
    pragma solidity ^0.8.17;
    import { Initializable } from
    "@openzeppelin/contracts/proxy/utils/Initializable.sol";
    library SickleStorageEvents {
    event ApprovedAddressChanged(address newApproved);
    }
    /// @title SickleStorage contract
    /// @author vfat.tools
    /// @notice Base storage of the Sickle contract
    /// @dev This contract needs to be inherited by stub contracts meant to be used
    /// with `delegatecall`
    abstract contract SickleStorage is Initializable {
    /// ERRORS ///
    /// @notice Thrown when the caller is not the owner of the Sickle contract
    error NotOwnerError(); // 0x74a21527
    /// @notice Thrown when the caller is not a strategy contract or the
    /// Flashloan Stub
    error NotStrategyError(); // 0x4581ba62
    /// STORAGE ///
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 7 : Multicall.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
    pragma solidity ^0.8.17;
    import { SickleStorage } from "contracts/base/SickleStorage.sol";
    import { SickleRegistry } from "contracts/SickleRegistry.sol";
    /// @title Multicall contract
    /// @author vfat.tools
    /// @notice Enables calling multiple methods in a single call to the contract
    abstract contract Multicall is SickleStorage {
    /// ERRORS ///
    error MulticallParamsMismatchError(); // 0xc1e637c9
    /// @notice Thrown when the target contract is not whitelisted
    /// @param target Address of the non-whitelisted target
    error TargetNotWhitelisted(address target); // 0x47ccabe7
    /// @notice Thrown when the caller is not whitelisted
    /// @param caller Address of the non-whitelisted caller
    error CallerNotWhitelisted(address caller); // 0x252c8273
    /// STORAGE ///
    /// @notice Address of the SickleRegistry contract
    /// @dev Needs to be immutable so that it's accessible for Sickle proxies
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 7 : SickleRegistry.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
    pragma solidity ^0.8.17;
    import { Admin } from "contracts/base/Admin.sol";
    library SickleRegistryEvents {
    event CollectorChanged(address newCollector);
    event FeesUpdated(bytes32[] feeHashes, uint256[] feesInBP);
    event ReferralCodeCreated(bytes32 indexed code, address indexed referrer);
    // Multicall caller and target whitelist status changes
    event CallerStatusChanged(address caller, bool isWhitelisted);
    event TargetStatusChanged(address target, bool isWhitelisted);
    }
    /// @title SickleRegistry contract
    /// @author vfat.tools
    /// @notice Manages the whitelisted contracts and the collector address
    contract SickleRegistry is Admin {
    /// ERRORS ///
    error ArrayLengthMismatch(); // 0xa24a13a6
    error FeeAboveMaxLimit(); // 0xd6cf7b5e
    error InvalidReferralCode(); // 0xe55b4629
    /// STORAGE ///
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 7 : Initializable.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 v4.8.1) (proxy/utils/Initializable.sol)
    pragma solidity ^0.8.2;
    import "../../utils/Address.sol";
    /**
    * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
    * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
    * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
    * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
    *
    * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
    * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
    * case an upgrade adds a module that needs to be initialized.
    *
    * For example:
    *
    * [.hljs-theme-light.nopadding]
    * ```
    * contract MyToken is ERC20Upgradeable {
    * function initialize() initializer public {
    * __ERC20_init("MyToken", "MTK");
    * }
    * }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 7 : Admin.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
    pragma solidity ^0.8.17;
    /// @title Admin contract
    /// @author vfat.tools
    /// @notice Provides an administration mechanism allowing restricted functions
    abstract contract Admin {
    /// ERRORS ///
    /// @notice Thrown when the caller is not the admin
    error NotAdminError(); //0xb5c42b3b
    /// EVENTS ///
    /// @notice Emitted when a new admin is set
    /// @param oldAdmin Address of the old admin
    /// @param newAdmin Address of the new admin
    event AdminSet(address oldAdmin, address newAdmin);
    /// STORAGE ///
    /// @notice Address of the current admin
    address public admin;
    /// MODIFIERS ///
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 7 : Address.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 v4.8.0) (utils/Address.sol)
    pragma solidity ^0.8.1;
    /**
    * @dev Collection of functions related to the address type
    */
    library Address {
    /**
    * @dev Returns true if `account` is a contract.
    *
    * [IMPORTANT]
    * ====
    * It is unsafe to assume that an address for which this function returns
    * false is an externally-owned account (EOA) and not a contract.
    *
    * Among others, `isContract` will return false for the following
    * types of addresses:
    *
    * - an externally-owned account
    * - a contract in construction
    * - an address where a contract will be created
    * - an address where a contract lived, but was destroyed
    * ====
    *
    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": [
    "solmate/=lib/solmate/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "@uniswap/v3-periphery/=lib/v3-periphery/",
    "@uniswap/v3-core/=lib/v3-core/",
    "@morpho-blue/=lib/morpho-blue/src/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "morpho-blue/=lib/morpho-blue/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 200
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract ABI

    API
    [{"inputs":[{"internalType":"contract SickleRegistry","name":"sickleRegistry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerNotWhitelisted","type":"error"},{"inputs":[],"name":"MulticallParamsMismatchError","type":"error"},{"inputs":[],"name":"NotOwnerError","type":"error"},{"inputs":[],"name":"NotStrategyError","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetNotWhitelisted","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"approved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sickleOwner_","type":"address"},{"internalType":"address","name":"approved_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"isOwnerOrApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract SickleRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newApproved","type":"address"}],"name":"setApproved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

    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  ]
    [ 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.