Holesky Testnet

Contract

0xCfAC1357B16218A90639cd17F90226B385A71084

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Unlimited Submit31353402025-01-13 7:03:363 hrs ago1736751816IN
0xCfAC1357...385A71084
256 ETH0.000169931.00000001
Unlimited Submit31045932025-01-08 17:52:364 days ago1736358756IN
0xCfAC1357...385A71084
12,358 ETH0.000169971.00022697
Unlimited Submit30406912024-12-30 7:05:4814 days ago1735542348IN
0xCfAC1357...385A71084
18,000 ETH0.000169931
Unlimited Submit30209782024-12-27 8:50:3617 days ago1735289436IN
0xCfAC1357...385A71084
6,144 ETH0.000169931
Unlimited Submit29968642024-12-23 19:05:3620 days ago1734980736IN
0xCfAC1357...385A71084
32 ETH0.000169931
Unlimited Submit29968022024-12-23 18:51:4820 days ago1734979908IN
0xCfAC1357...385A71084
86 ETH0.000169931
Unlimited Submit29967982024-12-23 18:51:0020 days ago1734979860IN
0xCfAC1357...385A71084
128 ETH0.000169931
Unlimited Submit29276992024-12-13 10:31:2431 days ago1734085884IN
0xCfAC1357...385A71084
992 ETH0.000169931
Unlimited Submit29274952024-12-13 9:47:3631 days ago1734083256IN
0xCfAC1357...385A71084
2,080 ETH0.000169931
Unlimited Submit28819252024-12-06 7:47:4838 days ago1733471268IN
0xCfAC1357...385A71084
192 ETH0.000169931
Unlimited Submit28618942024-12-03 7:37:0041 days ago1733211420IN
0xCfAC1357...385A71084
64 ETH0.000169931.00000001
Unlimited Submit28113402024-11-25 12:52:1248 days ago1732539132IN
0xCfAC1357...385A71084
800 ETH0.000003610.15264267
Unlimited Submit27691662024-11-19 3:07:3655 days ago1731985656IN
0xCfAC1357...385A71084
38,144 ETH0.000169931.00000001
Unlimited Submit27691462024-11-19 3:03:2455 days ago1731985404IN
0xCfAC1357...385A71084
30,080 ETH0.000169931
Unlimited Submit26583602024-11-02 14:37:3671 days ago1730558256IN
0xCfAC1357...385A71084
2,976 ETH0.000169931.00000001
Unlimited Submit26511492024-11-01 12:33:1272 days ago1730464392IN
0xCfAC1357...385A71084
12,832 ETH0.000169931.00000001
Unlimited Submit26497002024-11-01 7:18:0073 days ago1730445480IN
0xCfAC1357...385A71084
4,256 ETH0.000169931.000001
Unlimited Submit26314462024-10-29 13:24:3675 days ago1730208276IN
0xCfAC1357...385A71084
19,200 ETH0.000169931.00000026
Unlimited Submit26121142024-10-26 15:13:2478 days ago1729955604IN
0xCfAC1357...385A71084
950 ETH0.000169931
Unlimited Submit25840472024-10-22 9:32:4883 days ago1729589568IN
0xCfAC1357...385A71084
8,576 ETH0.000169581.00000001
Unlimited Submit25574582024-10-18 9:53:2487 days ago1729245204IN
0xCfAC1357...385A71084
10,208 ETH0.000169931.00000002
Unlimited Submit25507352024-10-17 9:40:0088 days ago1729158000IN
0xCfAC1357...385A71084
30,944 ETH0.000169931.00000002
Unlimited Submit25049502024-10-10 11:46:4894 days ago1728560808IN
0xCfAC1357...385A71084
3,238 ETH0.001165766.859999
Unlimited Submit25039572024-10-10 8:09:1295 days ago1728547752IN
0xCfAC1357...385A71084
3,524 ETH0.000767984.51924246
Unlimited Submit24864422024-10-07 15:44:4897 days ago1728315888IN
0xCfAC1357...385A71084
772 ETH0.000169931
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
31353402025-01-13 7:03:363 hrs ago1736751816
0xCfAC1357...385A71084
256 ETH
31045932025-01-08 17:52:364 days ago1736358756
0xCfAC1357...385A71084
12,358 ETH
30406912024-12-30 7:05:4814 days ago1735542348
0xCfAC1357...385A71084
18,000 ETH
30209782024-12-27 8:50:3617 days ago1735289436
0xCfAC1357...385A71084
6,144 ETH
29968642024-12-23 19:05:3620 days ago1734980736
0xCfAC1357...385A71084
32 ETH
29968022024-12-23 18:51:4820 days ago1734979908
0xCfAC1357...385A71084
86 ETH
29967982024-12-23 18:51:0020 days ago1734979860
0xCfAC1357...385A71084
128 ETH
29276992024-12-13 10:31:2431 days ago1734085884
0xCfAC1357...385A71084
992 ETH
29274952024-12-13 9:47:3631 days ago1734083256
0xCfAC1357...385A71084
2,080 ETH
28819252024-12-06 7:47:4838 days ago1733471268
0xCfAC1357...385A71084
192 ETH
28618942024-12-03 7:37:0041 days ago1733211420
0xCfAC1357...385A71084
64 ETH
27691662024-11-19 3:07:3655 days ago1731985656
0xCfAC1357...385A71084
38,144 ETH
27691462024-11-19 3:03:2455 days ago1731985404
0xCfAC1357...385A71084
30,080 ETH
26583602024-11-02 14:37:3671 days ago1730558256
0xCfAC1357...385A71084
2,976 ETH
26511492024-11-01 12:33:1272 days ago1730464392
0xCfAC1357...385A71084
12,832 ETH
26497002024-11-01 7:18:0073 days ago1730445480
0xCfAC1357...385A71084
4,256 ETH
26314462024-10-29 13:24:3675 days ago1730208276
0xCfAC1357...385A71084
19,200 ETH
26121142024-10-26 15:13:2478 days ago1729955604
0xCfAC1357...385A71084
950 ETH
25840472024-10-22 9:32:4883 days ago1729589568
0xCfAC1357...385A71084
8,576 ETH
25574582024-10-18 9:53:2487 days ago1729245204
0xCfAC1357...385A71084
10,208 ETH
25507352024-10-17 9:40:0088 days ago1729158000
0xCfAC1357...385A71084
30,944 ETH
25049502024-10-10 11:46:4894 days ago1728560808
0xCfAC1357...385A71084
3,238 ETH
25039572024-10-10 8:09:1295 days ago1728547752
0xCfAC1357...385A71084
3,524 ETH
24864422024-10-07 15:44:4897 days ago1728315888
0xCfAC1357...385A71084
772 ETH
24389762024-09-30 11:48:12104 days ago1727696892
0xCfAC1357...385A71084
3,250 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnlimitedStake

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 2 : UnlimitedStake.sol
// SPDX-FileCopyrightText: 2024 Lido <[email protected]>
// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.8.19;

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

contract UnlimitedStake {
    event SetAllowed(address indexed account, bool allowed);
    event UnlimitedSubmit(address indexed account, uint256 shares);

    error ZeroAddress(string field);
    error NotAllowed(address account);
    error StakingIsPaused();

    address public immutable OWNER;
    address public immutable LIDO;

    mapping(address => bool) public allowedList;

    constructor(address _lido, address _owner, address[] memory _allowedList) {
        if (_owner == address(0)) revert ZeroAddress("_owner");
        OWNER = _owner;

        if (_lido == address(0)) revert ZeroAddress("_lido");
        LIDO = _lido;

        for (uint256 i = 0; i < _allowedList.length; ++i) {
            if (_allowedList[i] == address(0)) {
                revert ZeroAddress("_allowedList");
            }

            allowedList[_allowedList[i]] = true;
        }

        allowedList[_owner] = true;
    }

    modifier onlyOwner() {
        if (msg.sender != OWNER) revert NotAllowed(msg.sender);
        _;
    }

    modifier onlyAllowed() {
        if (!allowedList[msg.sender]) revert NotAllowed(msg.sender);
        _;
    }

    function setAllowed(address _account, bool _allowed) external onlyOwner {
        if (_account == address(0)) revert ZeroAddress("_account");
        emit SetAllowed(_account, _allowed);
        allowedList[_account] = _allowed;
    }

    function unlimitedSubmit(address _referral) external payable onlyAllowed returns (uint256) {
        bool isStakingPaused;
        bool isStakingLimitSet;
        uint256 maxStakeLimit;
        uint256 maxStakeLimitGrowthBlocks;

        (isStakingPaused, isStakingLimitSet, , maxStakeLimit, maxStakeLimitGrowthBlocks, , ) = ILido(LIDO)
            .getStakeLimitFullInfo();

        if (isStakingPaused) {
            revert StakingIsPaused();
        }

        if (!isStakingLimitSet) {
            return ILido(LIDO).submit{value: msg.value}(_referral);
        }

        ILido(LIDO).removeStakingLimit();
        uint256 shares = ILido(LIDO).submit{value: msg.value}(_referral);
        ILido(LIDO).transferShares(msg.sender, shares);

        uint256 stakeLimitIncreasePerBlock = maxStakeLimit / maxStakeLimitGrowthBlocks;

        ILido(LIDO).setStakingLimit(maxStakeLimit, stakeLimitIncreasePerBlock);

        emit UnlimitedSubmit(msg.sender, shares);

        return shares;
    }
}

File 2 of 2 : ILido.sol
// SPDX-FileCopyrightText: 2024 Lido <[email protected]>
// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.8.19;

interface ILido {
    function submit(address _referral) external payable returns (uint256);
    function sharesOf(address _account) external view returns (uint256);
    function transferShares(address _recipient, uint256 _sharesAmount) external returns (uint256);
    function getBufferedEther() external view returns (uint256);
    function STAKING_CONTROL_ROLE() external view returns (bytes32);
    function removeStakingLimit() external;
    function setStakingLimit(uint256 _maxStakeLimit, uint256 _stakeLimitIncreasePerBlock) external;
    function getStakeLimitFullInfo()
        external
        view
        returns (
            bool isStakingPaused,
            bool isStakingLimitSet,
            uint256 currentStakeLimit,
            uint256 maxStakeLimit,
            uint256 maxStakeLimitGrowthBlocks,
            uint256 prevStakeLimit,
            uint256 prevStakeBlockNumber
        );
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": true,
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_lido","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_allowedList","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"NotAllowed","type":"error"},{"inputs":[],"name":"StakingIsPaused","type":"error"},{"inputs":[{"internalType":"string","name":"field","type":"string"}],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"SetAllowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"UnlimitedSubmit","type":"event"},{"inputs":[],"name":"LIDO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OWNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_allowed","type":"bool"}],"name":"setAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_referral","type":"address"}],"name":"unlimitedSubmit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"}]

604060c081523461021357610888908138038061001b8161022e565b9384398201916060818403126102135761003481610253565b602091610042838201610253565b948482015160018060401b0392838211610213570181601f82011215610213578051928311610218578260051b90858061007d81850161022e565b8096815201928201019283116102135785809101915b8383106101fb575050506001600160a01b03868116969093915086156101cd57608052828116156101a05760a05260005b815181101561015d57826100d88284610267565b51161561012957826100ea8284610267565b51166000526000845284600020600160ff198254161790556000198114610113576001016100c4565b634e487b7160e01b600052601160045260246000fd5b845163eac0d38960e01b815260048101859052600c60248201526b17d85b1b1bddd959131a5cdd60a21b6044820152606490fd5b846000858882525280600020600160ff19825416179055516105f69081610292823960805181818161015e015261022d015260a05181818160fc01526102ef0152f35b845163eac0d38960e01b81526004810185905260056024820152645f6c69646f60d81b6044820152606490fd5b855163eac0d38960e01b81526004810186905260066024820152652fb7bbb732b960d11b6044820152606490fd5b819061020684610253565b8152019101908590610093565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761021857604052565b51906001600160a01b038216820361021357565b805182101561027b5760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c908163117803e314610219575080634697f05d1461012b5780638b21f170146100e85780639b25e2f0146100985763a075fbde1461005957600080fd5b346100945760203660031901126100945760209160ff9082906001600160a01b0361008261025c565b16815280855220541690519015158152f35b5080fd5b5060203660031901126100945760ff816100b061025c565b9333815280602052205416156100d2576100cb6020926102d0565b9051908152f35b5163fa5cd00f60e01b8152336004820152602490fd5b5034610094578160031936011261009457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461009457806003193601126100945761014461025c565b9060243591821515809303610215576001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101fe571680156101ce57807f91d426a6b868d3a9f12f044bfd4dfb1df6e3e050a71a34b090d8ce43a5023c2960208451868152a283528260205282209060ff8019835416911617905580f35b815163eac0d38960e01b815260206004820152600860248201526717d858d8dbdd5b9d60c21b6044820152606490fd5b825163fa5cd00f60e01b8152336004820152602490fd5b8380fd5b8390346100945781600319360112610094577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b038216820361027257565b600080fd5b67ffffffffffffffff811161028b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761028b57604052565b5190811515820361027257565b6040805163665b4b0b60e01b81526001600160a01b03919060009060047f0000000000000000000000000000000000000000000000000000000000000000851660e0838381845afa9586156105b6578485908695879961055f575b5061054f57156104db57813b1561044557855163599906cd60e11b81528581858183875af18015610485576104c8575b50855163a1903eab60e01b8152971682880152602095868860248134865af19788156104be57859861048f575b508551638fcb4e5b60e01b8152338482015260248101899052878160448189875af180156104855790889161045c575b5050801561044957813b1561044557849283859360449389519788968795630b2d7de160e21b87528601520460248401525af1801561043b57610424575b50505182815233917fc46f13d9ebbe944358918389e840211b4197cfdf0af8d48ebb5f09fa190243cd91a290565b61042e8291610277565b61043857806103f6565b80fd5b83513d84823e3d90fd5b8480fd5b634e487b7160e01b855260128352602485fd5b813d831161047e575b61046f81836102a1565b810103126102725786386103b8565b503d610465565b87513d88823e3d90fd5b9097508681813d83116104b7575b6104a781836102a1565b8101031261027257519638610388565b503d61049d565b86513d87823e3d90fd5b6104d490959195610277565b933861035b565b925060249195509584966020949551968794859363a1903eab60e01b8552169083015234905af19283156105455750809261051557505090565b9091506020823d821161053d575b81610530602093836102a1565b8101031261043857505190565b3d9150610523565b51903d90823e3d90fd5b8651636bea2ae560e01b81528490fd5b98505050925060e0863d82116105ae575b8161057d60e093836102a1565b810103126102155761058e866102c3565b9261059b602088016102c3565b606088015160809098015197943861032b565b3d9150610570565b85513d86823e3d90fdfea2646970667358221220eca010f2a5ebaead15b2a0ab0807a2be8943801ad633b61ed1311f17fb9b402a64736f6c634300081300330000000000000000000000003f1c547b21f65e10480de3ad8e19faac46c95034000000000000000000000000da6bee5441f2e6b364f3b25e85d5f3c29bfb669e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000066b25cfe6b9f0e61bd80c4847225baf4ee6ba0a2

Deployed Bytecode

0x60806040818152600436101561001457600080fd5b600091823560e01c908163117803e314610219575080634697f05d1461012b5780638b21f170146100e85780639b25e2f0146100985763a075fbde1461005957600080fd5b346100945760203660031901126100945760209160ff9082906001600160a01b0361008261025c565b16815280855220541690519015158152f35b5080fd5b5060203660031901126100945760ff816100b061025c565b9333815280602052205416156100d2576100cb6020926102d0565b9051908152f35b5163fa5cd00f60e01b8152336004820152602490fd5b5034610094578160031936011261009457517f0000000000000000000000003f1c547b21f65e10480de3ad8e19faac46c950346001600160a01b03168152602090f35b503461009457806003193601126100945761014461025c565b9060243591821515809303610215576001600160a01b03907f000000000000000000000000da6bee5441f2e6b364f3b25e85d5f3c29bfb669e821633036101fe571680156101ce57807f91d426a6b868d3a9f12f044bfd4dfb1df6e3e050a71a34b090d8ce43a5023c2960208451868152a283528260205282209060ff8019835416911617905580f35b815163eac0d38960e01b815260206004820152600860248201526717d858d8dbdd5b9d60c21b6044820152606490fd5b825163fa5cd00f60e01b8152336004820152602490fd5b8380fd5b8390346100945781600319360112610094577f000000000000000000000000da6bee5441f2e6b364f3b25e85d5f3c29bfb669e6001600160a01b03168152602090f35b600435906001600160a01b038216820361027257565b600080fd5b67ffffffffffffffff811161028b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761028b57604052565b5190811515820361027257565b6040805163665b4b0b60e01b81526001600160a01b03919060009060047f0000000000000000000000003f1c547b21f65e10480de3ad8e19faac46c95034851660e0838381845afa9586156105b6578485908695879961055f575b5061054f57156104db57813b1561044557855163599906cd60e11b81528581858183875af18015610485576104c8575b50855163a1903eab60e01b8152971682880152602095868860248134865af19788156104be57859861048f575b508551638fcb4e5b60e01b8152338482015260248101899052878160448189875af180156104855790889161045c575b5050801561044957813b1561044557849283859360449389519788968795630b2d7de160e21b87528601520460248401525af1801561043b57610424575b50505182815233917fc46f13d9ebbe944358918389e840211b4197cfdf0af8d48ebb5f09fa190243cd91a290565b61042e8291610277565b61043857806103f6565b80fd5b83513d84823e3d90fd5b8480fd5b634e487b7160e01b855260128352602485fd5b813d831161047e575b61046f81836102a1565b810103126102725786386103b8565b503d610465565b87513d88823e3d90fd5b9097508681813d83116104b7575b6104a781836102a1565b8101031261027257519638610388565b503d61049d565b86513d87823e3d90fd5b6104d490959195610277565b933861035b565b925060249195509584966020949551968794859363a1903eab60e01b8552169083015234905af19283156105455750809261051557505090565b9091506020823d821161053d575b81610530602093836102a1565b8101031261043857505190565b3d9150610523565b51903d90823e3d90fd5b8651636bea2ae560e01b81528490fd5b98505050925060e0863d82116105ae575b8161057d60e093836102a1565b810103126102155761058e866102c3565b9261059b602088016102c3565b606088015160809098015197943861032b565b3d9150610570565b85513d86823e3d90fdfea2646970667358221220eca010f2a5ebaead15b2a0ab0807a2be8943801ad633b61ed1311f17fb9b402a64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003f1c547b21f65e10480de3ad8e19faac46c95034000000000000000000000000da6bee5441f2e6b364f3b25e85d5f3c29bfb669e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000066b25cfe6b9f0e61bd80c4847225baf4ee6ba0a2

-----Decoded View---------------
Arg [0] : _lido (address): 0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034
Arg [1] : _owner (address): 0xDA6bEE5441f2e6b364F3b25E85d5f3C29Bfb669E
Arg [2] : _allowedList (address[]): 0x66b25CFe6B9F0e61Bd80c4847225Baf4EE6Ba0A2

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000003f1c547b21f65e10480de3ad8e19faac46c95034
Arg [1] : 000000000000000000000000da6bee5441f2e6b364f3b25e85d5f3c29bfb669e
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 00000000000000000000000066b25cfe6b9f0e61bd80c4847225baf4ee6ba0a2


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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