Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 58 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unlimited Submit | 3135340 | 3 hrs ago | IN | 256 ETH | 0.00016993 | ||||
Unlimited Submit | 3104593 | 4 days ago | IN | 12,358 ETH | 0.00016997 | ||||
Unlimited Submit | 3040691 | 14 days ago | IN | 18,000 ETH | 0.00016993 | ||||
Unlimited Submit | 3020978 | 17 days ago | IN | 6,144 ETH | 0.00016993 | ||||
Unlimited Submit | 2996864 | 20 days ago | IN | 32 ETH | 0.00016993 | ||||
Unlimited Submit | 2996802 | 20 days ago | IN | 86 ETH | 0.00016993 | ||||
Unlimited Submit | 2996798 | 20 days ago | IN | 128 ETH | 0.00016993 | ||||
Unlimited Submit | 2927699 | 31 days ago | IN | 992 ETH | 0.00016993 | ||||
Unlimited Submit | 2927495 | 31 days ago | IN | 2,080 ETH | 0.00016993 | ||||
Unlimited Submit | 2881925 | 38 days ago | IN | 192 ETH | 0.00016993 | ||||
Unlimited Submit | 2861894 | 41 days ago | IN | 64 ETH | 0.00016993 | ||||
Unlimited Submit | 2811340 | 48 days ago | IN | 800 ETH | 0.00000361 | ||||
Unlimited Submit | 2769166 | 55 days ago | IN | 38,144 ETH | 0.00016993 | ||||
Unlimited Submit | 2769146 | 55 days ago | IN | 30,080 ETH | 0.00016993 | ||||
Unlimited Submit | 2658360 | 71 days ago | IN | 2,976 ETH | 0.00016993 | ||||
Unlimited Submit | 2651149 | 72 days ago | IN | 12,832 ETH | 0.00016993 | ||||
Unlimited Submit | 2649700 | 73 days ago | IN | 4,256 ETH | 0.00016993 | ||||
Unlimited Submit | 2631446 | 75 days ago | IN | 19,200 ETH | 0.00016993 | ||||
Unlimited Submit | 2612114 | 78 days ago | IN | 950 ETH | 0.00016993 | ||||
Unlimited Submit | 2584047 | 83 days ago | IN | 8,576 ETH | 0.00016958 | ||||
Unlimited Submit | 2557458 | 87 days ago | IN | 10,208 ETH | 0.00016993 | ||||
Unlimited Submit | 2550735 | 88 days ago | IN | 30,944 ETH | 0.00016993 | ||||
Unlimited Submit | 2504950 | 94 days ago | IN | 3,238 ETH | 0.00116576 | ||||
Unlimited Submit | 2503957 | 95 days ago | IN | 3,524 ETH | 0.00076798 | ||||
Unlimited Submit | 2486442 | 97 days ago | IN | 772 ETH | 0.00016993 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
3135340 | 3 hrs ago | 256 ETH | ||||
3104593 | 4 days ago | 12,358 ETH | ||||
3040691 | 14 days ago | 18,000 ETH | ||||
3020978 | 17 days ago | 6,144 ETH | ||||
2996864 | 20 days ago | 32 ETH | ||||
2996802 | 20 days ago | 86 ETH | ||||
2996798 | 20 days ago | 128 ETH | ||||
2927699 | 31 days ago | 992 ETH | ||||
2927495 | 31 days ago | 2,080 ETH | ||||
2881925 | 38 days ago | 192 ETH | ||||
2861894 | 41 days ago | 64 ETH | ||||
2769166 | 55 days ago | 38,144 ETH | ||||
2769146 | 55 days ago | 30,080 ETH | ||||
2658360 | 71 days ago | 2,976 ETH | ||||
2651149 | 72 days ago | 12,832 ETH | ||||
2649700 | 73 days ago | 4,256 ETH | ||||
2631446 | 75 days ago | 19,200 ETH | ||||
2612114 | 78 days ago | 950 ETH | ||||
2584047 | 83 days ago | 8,576 ETH | ||||
2557458 | 87 days ago | 10,208 ETH | ||||
2550735 | 88 days ago | 30,944 ETH | ||||
2504950 | 94 days ago | 3,238 ETH | ||||
2503957 | 95 days ago | 3,524 ETH | ||||
2486442 | 97 days ago | 772 ETH | ||||
2438976 | 104 days ago | 3,250 ETH |
Loading...
Loading
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)
// 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; } }
// 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 ); }
{ "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": {} }
[{"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"}]
Contract Creation Code
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
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.