Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 116 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Exchange | 19760291 | 72 days ago | IN | 0 ETH | 0.00234458 | ||||
Exchange | 19388409 | 124 days ago | IN | 0 ETH | 0.01220243 | ||||
Exchange | 19032399 | 174 days ago | IN | 0 ETH | 0.00811511 | ||||
Exchange | 19031610 | 174 days ago | IN | 0 ETH | 0.00721839 | ||||
Exchange | 18965057 | 184 days ago | IN | 0 ETH | 0.00601138 | ||||
Exchange | 18891431 | 194 days ago | IN | 0 ETH | 0.00602301 | ||||
Exchange | 18845823 | 200 days ago | IN | 0 ETH | 0.00625623 | ||||
Exchange | 18806745 | 206 days ago | IN | 0 ETH | 0.01258467 | ||||
Exchange | 18795297 | 208 days ago | IN | 0 ETH | 0.01174739 | ||||
Exchange | 18760547 | 212 days ago | IN | 0 ETH | 0.00717334 | ||||
Exchange | 18740424 | 215 days ago | IN | 0 ETH | 0.00912453 | ||||
Exchange | 18725765 | 217 days ago | IN | 0 ETH | 0.01470874 | ||||
Exchange | 18718584 | 218 days ago | IN | 0 ETH | 0.01146665 | ||||
Exchange | 18711100 | 219 days ago | IN | 0 ETH | 0.02316228 | ||||
Exchange | 18684453 | 223 days ago | IN | 0 ETH | 0.00846213 | ||||
Exchange | 18642650 | 229 days ago | IN | 0 ETH | 0.01238383 | ||||
Exchange | 18630391 | 231 days ago | IN | 0 ETH | 0.01239375 | ||||
Exchange | 18608487 | 234 days ago | IN | 0 ETH | 0.01010678 | ||||
Exchange | 18601618 | 235 days ago | IN | 0 ETH | 0.00466131 | ||||
Exchange | 18589510 | 236 days ago | IN | 0 ETH | 0.00595107 | ||||
Exchange | 18582616 | 237 days ago | IN | 0 ETH | 0.00653688 | ||||
Exchange | 18581866 | 237 days ago | IN | 0 ETH | 0.009221 | ||||
Exchange | 18581420 | 237 days ago | IN | 0 ETH | 0.008692 | ||||
Exchange | 18574590 | 238 days ago | IN | 0 ETH | 0.00714827 | ||||
Exchange | 18572516 | 239 days ago | IN | 0 ETH | 0.01056267 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
19760291 | 72 days ago | 24.54947288 ETH | ||||
19760291 | 72 days ago | 24.54947288 ETH | ||||
19388409 | 124 days ago | 23.69109909 ETH | ||||
19388409 | 124 days ago | 23.69109909 ETH | ||||
19032399 | 174 days ago | 24.22930324 ETH | ||||
19032399 | 174 days ago | 24.22930324 ETH | ||||
19031610 | 174 days ago | 25.19188887 ETH | ||||
19031610 | 174 days ago | 25.19188887 ETH | ||||
18965057 | 184 days ago | 24.44012924 ETH | ||||
18965057 | 184 days ago | 24.44012924 ETH | ||||
18891431 | 194 days ago | 48.06531767 ETH | ||||
18891431 | 194 days ago | 48.06531767 ETH | ||||
18845823 | 200 days ago | 23.61656878 ETH | ||||
18845823 | 200 days ago | 23.61656878 ETH | ||||
18806745 | 206 days ago | 23.18075337 ETH | ||||
18806745 | 206 days ago | 23.18075337 ETH | ||||
18795297 | 208 days ago | 30.09623422 ETH | ||||
18795297 | 208 days ago | 30.09623422 ETH | ||||
18760547 | 212 days ago | 34.43071977 ETH | ||||
18760547 | 212 days ago | 34.43071977 ETH | ||||
18740424 | 215 days ago | 36.51307465 ETH | ||||
18740424 | 215 days ago | 36.51307465 ETH | ||||
18725765 | 217 days ago | 26.36575688 ETH | ||||
18725765 | 217 days ago | 26.36575688 ETH | ||||
18718584 | 218 days ago | 27.48829678 ETH |
Loading...
Loading
Contract Name:
LidoBridgeSwapper
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; import "./ZkSyncBridgeSwapper.sol"; import "./interfaces/IZkSync.sol"; import "./interfaces/IWstETH.sol"; import "./interfaces/ILido.sol"; import "./interfaces/ICurvePool.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /** * Exchanges between ETH and wStETH * index 0: ETH * index 1: wStETH */ contract LidoBridgeSwapper is ZkSyncBridgeSwapper { // The address of the stEth token address public immutable stEth; // The address of the wrapped stEth token address public immutable wStEth; // The address of the stEth/Eth Curve pool address public immutable stEthPool; // The referral address for Lido address public immutable lidoReferral; constructor( address _zkSync, address _l2Account, address _wStEth, address _stEthPool, address _lidoReferral ) ZkSyncBridgeSwapper(_zkSync, _l2Account) { wStEth = _wStEth; address _stEth = IWstETH(_wStEth).stETH(); require(_stEth == ICurvePool(_stEthPool).coins(1), "stEth mismatch"); stEth = _stEth; stEthPool = _stEthPool; lidoReferral = _lidoReferral; } function exchange( uint256 _indexIn, uint256 _indexOut, uint256 _amountIn, uint256 _minAmountOut ) onlyOwner external override returns (uint256 amountOut) { require(_indexIn + _indexOut == 1, "invalid indexes"); if (_indexIn == 0) { transferFromZkSync(ETH_TOKEN); amountOut = swapEthForWstEth(_amountIn); require(amountOut >= _minAmountOut, "slippage"); transferToZkSync(wStEth, amountOut); emit Swapped(ETH_TOKEN, _amountIn, wStEth, amountOut); } else { transferFromZkSync(wStEth); amountOut = swapWstEthForEth(_amountIn); require(amountOut >= _minAmountOut, "slippage"); transferToZkSync(ETH_TOKEN, amountOut); emit Swapped(wStEth, _amountIn, ETH_TOKEN, amountOut); } } /** * @dev Swaps ETH for wrapped stETH and deposits the resulting wstETH to the ZkSync bridge. * First withdraws ETH from the bridge if there is a pending balance. * @param _amountIn The amount of ETH to swap. */ function swapEthForWstEth(uint256 _amountIn) internal returns (uint256) { uint256 dy = ICurvePool(stEthPool).get_dy(0, 1, _amountIn); uint256 stEthAmount; // if stETH below parity on Curve get it there, otherwise stake on Lido contract if (dy > _amountIn) { stEthAmount = ICurvePool(stEthPool).exchange{value: _amountIn}(0, 1, _amountIn, 1); } else { ILido(stEth).submit{value: _amountIn}(lidoReferral); stEthAmount = _amountIn; } // approve the wStEth contract to take the stEth IERC20(stEth).approve(wStEth, stEthAmount); // wrap to wStEth and return deposited amount return IWstETH(wStEth).wrap(stEthAmount); } /** * @dev Swaps wrapped stETH for ETH and deposits the resulting ETH to the ZkSync bridge. * First withdraws wrapped stETH from the bridge if there is a pending balance. * @param _amountIn The amount of wrapped stETH to swap. */ function swapWstEthForEth(uint256 _amountIn) internal returns (uint256) { // unwrap to stEth uint256 unwrapped = IWstETH(wStEth).unwrap(_amountIn); // approve pool bool success = IERC20(stEth).approve(stEthPool, unwrapped); require(success, "approve failed"); // swap stEth for ETH on Curve and return deposited amount return ICurvePool(stEthPool).exchange(1, 0, unwrapped, 1); } }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; import "./interfaces/IZkSync.sol"; import "./interfaces/IBridgeSwapper.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; abstract contract ZkSyncBridgeSwapper is IBridgeSwapper { // The owner of the contract address public owner; // The ZkSync bridge contract address public immutable zkSync; // The L2 market maker account address public immutable l2Account; address constant internal ETH_TOKEN = address(0); event OwnerChanged(address _owner, address _newOwner); event SlippageChanged(uint256 _slippagePercent); modifier onlyOwner { require(msg.sender == owner, "unauthorised"); _; } constructor(address _zkSync, address _l2Account) { zkSync = _zkSync; l2Account = _l2Account; owner = msg.sender; } function changeOwner(address _newOwner) external onlyOwner { require(_newOwner != address(0), "invalid input"); owner = _newOwner; emit OwnerChanged(owner, _newOwner); } /** * @dev Check if there is a pending balance to withdraw in zkSync and withdraw it if applicable. * @param _token The token to withdraw. */ function transferFromZkSync(address _token) internal { uint128 pendingBalance = IZkSync(zkSync).getPendingBalance(address(this), _token); if (pendingBalance > 0) { IZkSync(zkSync).withdrawPendingBalance(payable(address(this)), _token, pendingBalance); } } /** * @dev Deposit the ETH or ERC20 token to zkSync. * @param _outputToken The token that was given. * @param _amountOut The amount of given token. */ function transferToZkSync(address _outputToken, uint256 _amountOut) internal { if (_outputToken == ETH_TOKEN) { // deposit Eth to L2 bridge IZkSync(zkSync).depositETH{value: _amountOut}(l2Account); } else { // approve the zkSync bridge to take the output token IERC20(_outputToken).approve(zkSync, _amountOut); // deposit the output token to the L2 bridge IZkSync(zkSync).depositERC20(IERC20(_outputToken), toUint104(_amountOut), l2Account); } } /** * @dev Safety method to recover ETH or ERC20 tokens that are sent to the contract by error. * @param _token The token to recover. */ function recoverToken(address _recipient, address _token) external onlyOwner returns (uint256 balance) { bool success; if (_token == ETH_TOKEN) { balance = address(this).balance; (success, ) = _recipient.call{value: balance}(""); } else { balance = IERC20(_token).balanceOf(address(this)); success = IERC20(_token).transfer(_recipient, balance); } require(success, "failed to recover"); } /** * @dev fallback method to make sure we can receive ETH */ receive() external payable { } /** * @dev Returns the downcasted uint104 from uint256, reverting on * overflow (when the input is greater than largest uint104). */ function toUint104(uint256 value) internal pure returns (uint104) { require(value <= type(uint104).max, "SafeCast: value doesn't fit in 104 bits"); return uint104(value); } }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface IZkSync { function getPendingBalance(address _address, address _token) external view returns (uint128); function withdrawPendingBalance(address payable _owner, address _token, uint128 _amount) external; function depositETH(address _zkSyncAddress) external payable; function depositERC20(IERC20 _token, uint104 _amount, address _zkSyncAddress) external; }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; interface IWstETH { function stETH() external returns (address); function wrap(uint256 _stETHAmount) external returns (uint256); function unwrap(uint256 _wstETHAmount) external returns (uint256); }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; interface ILido { function submit(address _referral) external payable returns (uint256); }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; interface ICurvePool { function coins(uint256 _i) external view returns (address); function lp_token() external view returns (address); function get_virtual_price() external view returns (uint256); function get_dy(int128 _i, int128 _j, uint256 _dx) external view returns (uint256); function exchange(int128 _i, int128 _j, uint256 _dx, uint256 _minDy) external payable returns (uint256); function add_liquidity(uint256[2] calldata _amounts, uint256 _minMintAmount) external payable returns (uint256); function remove_liquidity_one_coin(uint256 _amount, int128 _i, uint256 _minAmount) external payable returns (uint256); function calc_token_amount(uint256[2] calldata _amounts, bool _isDeposit) external view returns (uint256); function calc_withdraw_one_coin(uint256 _amount, int128 _i) external view returns (uint256); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @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); }
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.3; interface IBridgeSwapper { event Swapped(address _inputToken, uint256 _amountIn, address _outputToken, uint256 _amountOut); /** * @notice Perform an exchange between two tokens * @dev Index values can usually be found via the constructor arguments (if not hardcoded) * @param _indexIn Index value for the token to send * @param _indexOut Index valie of the token to receive * @param _amountIn Amount of `_indexIn` being exchanged * @return Actual amount of `_indexOut` received */ function exchange(uint256 _indexIn, uint256 _indexOut, uint256 _amountIn, uint256 _minAmountOut) external returns (uint256); }
{ "optimizer": { "enabled": true, "runs": 1000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_zkSync","type":"address"},{"internalType":"address","name":"_l2Account","type":"address"},{"internalType":"address","name":"_wStEth","type":"address"},{"internalType":"address","name":"_stEthPool","type":"address"},{"internalType":"address","name":"_lidoReferral","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"address","name":"_newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_slippagePercent","type":"uint256"}],"name":"SlippageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_inputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amountIn","type":"uint256"},{"indexed":false,"internalType":"address","name":"_outputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amountOut","type":"uint256"}],"name":"Swapped","type":"event"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexIn","type":"uint256"},{"internalType":"uint256","name":"_indexOut","type":"uint256"},{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_minAmountOut","type":"uint256"}],"name":"exchange","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l2Account","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lidoReferral","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":"_recipient","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"recoverToken","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stEth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stEthPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wStEth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zkSync","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101406040523480156200001257600080fd5b50604051620017e4380380620017e483398101604081905262000035916200022b565b6001600160601b0319606086811b821660805285811b821660a052600080546001600160a01b031916331781559085901b90911660e0526040805163183fc7c960e31b815290516001600160a01b0386169163c1fe3e4891600480830192602092919082900301818787803b158015620000ae57600080fd5b505af1158015620000c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e9919062000207565b60405163c661065760e01b8152600160048201529091506001600160a01b0384169063c66106579060240160206040518083038186803b1580156200012d57600080fd5b505afa15801562000142573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000168919062000207565b6001600160a01b0316816001600160a01b031614620001be5760405162461bcd60e51b815260206004820152600e60248201526d0e6e88ae8d040dad2e6dac2e8c6d60931b604482015260640160405180910390fd5b6001600160601b0319606091821b811660c05292811b8316610100521b1661012052506200029a915050565b80516001600160a01b03811681146200020257600080fd5b919050565b60006020828403121562000219578081fd5b6200022482620001ea565b9392505050565b600080600080600060a0868803121562000243578081fd5b6200024e86620001ea565b94506200025e60208701620001ea565b93506200026e60408701620001ea565b92506200027e60608701620001ea565b91506200028e60808701620001ea565b90509295509295909350565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6101205160601c61144f620003956000396000818160d30152610bca01526000818161026401528181610a5c01528181610b0d015281816110ee01526112190152600081816101da015281816103a8015281816103de01528181610447015281816104c201528181610c8c01528181610d67015261105b01526000818161020e01528181610bf201528181610cbb015261112301526000818161012401528181610e340152610fef015260008181610186015281816108c4015281816109b001528181610e5c01528181610ed60152610f64015261144f6000f3fe6080604052600436106100b55760003560e01c80638dc3546b11610069578063a6f9dae11161004e578063a6f9dae114610230578063ac856ea014610252578063feaea58614610286576100bc565b80638dc3546b146101c857806399940ece146101fc576100bc565b80635b41b9081161009a5780635b41b908146101465780637c19f005146101745780638da5cb5b146101a8576100bc565b8063047e3670146100c157806335aa6df814610112576100bc565b366100bc57005b600080fd5b3480156100cd57600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011e57600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561015257600080fd5b506101666101613660046113ab565b6102a6565b604051908152602001610109565b34801561018057600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b3480156101b457600080fd5b506000546100f5906001600160a01b031681565b3480156101d457600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561020857600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561023c57600080fd5b5061025061024b3660046112f0565b610535565b005b34801561025e57600080fd5b506100f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561029257600080fd5b506101666102a1366004611311565b610647565b600080546001600160a01b031633146102f55760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064015b60405180910390fd5b6102ff84866113dc565b60011461034e5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c696420696e6465786573000000000000000000000000000000000060448201526064016102ec565b846104425761035d6000610883565b61036683610a12565b9050818110156103a35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016102ec565b6103cd7f000000000000000000000000000000000000000000000000000000000000000082610df6565b6040805160008152602081018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316818301526060810183905290517fdb587d878116df0bdd4fe154699aa2c5f439da001cc811dfd05d9f589fc5a8ee9181900360800190a161052d565b61046b7f0000000000000000000000000000000000000000000000000000000000000000610883565b6104748361101f565b9050818110156104b15760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016102ec565b6104bc600082610df6565b604080517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602081018590526000818301526060810183905290517fdb587d878116df0bdd4fe154699aa2c5f439da001cc811dfd05d9f589fc5a8ee9181900360800190a15b949350505050565b6000546001600160a01b0316331461057e5760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064016102ec565b6001600160a01b0381166105d45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064016102ec565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040805182815260208101929092527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a150565b600080546001600160a01b031633146106915760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064016102ec565b60006001600160a01b0383166106fd576040514792506001600160a01b038516908390600081818185875af1925050503d80600081146106ed576040519150601f19603f3d011682016040523d82523d6000602084013e6106f2565b606091505b50508091505061082f565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078d9190611393565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018390529193509084169063a9059cbb90604401602060405180830381600087803b1580156107f457600080fd5b505af1158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611343565b90505b8061087c5760405162461bcd60e51b815260206004820152601160248201527f6661696c656420746f207265636f76657200000000000000000000000000000060448201526064016102ec565b5092915050565b6040517f5aca41f60000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690635aca41f69060440160206040518083038186803b15801561090857600080fd5b505afa15801561091c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109409190611363565b90506fffffffffffffffffffffffffffffffff811615610a0e576040517fd514da500000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383811660248301526fffffffffffffffffffffffffffffffff831660448301527f0000000000000000000000000000000000000000000000000000000000000000169063d514da50906064015b600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b505050505b5050565b6040517f5e0d443f00000000000000000000000000000000000000000000000000000000815260006004820181905260016024830152604482018390529081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635e0d443f9060640160206040518083038186803b158015610a9e57600080fd5b505afa158015610ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad69190611393565b9050600083821115610b9a57604051630f7c084960e21b8152600060048201526001602482018190526044820186905260648201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633df021249086906084016020604051808303818588803b158015610b5a57600080fd5b505af1158015610b6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b939190611393565b9050610c75565b6040517fa1903eab0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab9086906024016020604051808303818588803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c709190611393565b508390505b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d379190611343565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea598cb0906024015b602060405180830381600087803b158015610db457600080fd5b505af1158015610dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dec9190611393565b925050505b919050565b6001600160a01b038216610ebf576040517f2d2da8060000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632d2da8069083906024016000604051808303818588803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b5050505050610a0e565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820183905283169063095ea7b390604401602060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f619190611343565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e17376b583610f9b84611250565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201526cffffffffffffffffffffffffff90911660248201527f00000000000000000000000000000000000000000000000000000000000000009190911660448201526064016109db565b6040517fde0e9a3e0000000000000000000000000000000000000000000000000000000081526004810182905260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063de0e9a3e90602401602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d79190611393565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190611343565b9050806111ee5760405162461bcd60e51b815260206004820152600e60248201527f617070726f7665206661696c656400000000000000000000000000000000000060448201526064016102ec565b604051630f7c084960e21b8152600160048201819052600060248301526044820184905260648201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633df0212490608401610d9a565b60006cffffffffffffffffffffffffff8211156112d55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f303420626974730000000000000000000000000000000000000000000000000060648201526084016102ec565b5090565b80356001600160a01b0381168114610df157600080fd5b600060208284031215611301578081fd5b61130a826112d9565b9392505050565b60008060408385031215611323578081fd5b61132c836112d9565b915061133a602084016112d9565b90509250929050565b600060208284031215611354578081fd5b8151801515811461130a578182fd5b600060208284031215611374578081fd5b81516fffffffffffffffffffffffffffffffff8116811461130a578182fd5b6000602082840312156113a4578081fd5b5051919050565b600080600080608085870312156113c0578182fd5b5050823594602084013594506040840135936060013592509050565b60008219821115611414577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50019056fea26469706673582212204b344488effefb7e94a43c0fe29e95d7bf5e80c274be81d5a562f450bb76be2064736f6c63430008030033000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022000000000000000000000000ef8e1b4b676a5285db79d55d3288bc5fe65c71cc
Deployed Bytecode
0x6080604052600436106100b55760003560e01c80638dc3546b11610069578063a6f9dae11161004e578063a6f9dae114610230578063ac856ea014610252578063feaea58614610286576100bc565b80638dc3546b146101c857806399940ece146101fc576100bc565b80635b41b9081161009a5780635b41b908146101465780637c19f005146101745780638da5cb5b146101a8576100bc565b8063047e3670146100c157806335aa6df814610112576100bc565b366100bc57005b600080fd5b3480156100cd57600080fd5b506100f57f000000000000000000000000ef8e1b4b676a5285db79d55d3288bc5fe65c71cc81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011e57600080fd5b506100f57f0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa281565b34801561015257600080fd5b506101666101613660046113ab565b6102a6565b604051908152602001610109565b34801561018057600080fd5b506100f57f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef81565b3480156101b457600080fd5b506000546100f5906001600160a01b031681565b3480156101d457600080fd5b506100f57f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081565b34801561020857600080fd5b506100f57f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8481565b34801561023c57600080fd5b5061025061024b3660046112f0565b610535565b005b34801561025e57600080fd5b506100f57f000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f6702281565b34801561029257600080fd5b506101666102a1366004611311565b610647565b600080546001600160a01b031633146102f55760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064015b60405180910390fd5b6102ff84866113dc565b60011461034e5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c696420696e6465786573000000000000000000000000000000000060448201526064016102ec565b846104425761035d6000610883565b61036683610a12565b9050818110156103a35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016102ec565b6103cd7f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca082610df6565b6040805160008152602081018590527f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b0316818301526060810183905290517fdb587d878116df0bdd4fe154699aa2c5f439da001cc811dfd05d9f589fc5a8ee9181900360800190a161052d565b61046b7f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0610883565b6104748361101f565b9050818110156104b15760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016102ec565b6104bc600082610df6565b604080517f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b03168152602081018590526000818301526060810183905290517fdb587d878116df0bdd4fe154699aa2c5f439da001cc811dfd05d9f589fc5a8ee9181900360800190a15b949350505050565b6000546001600160a01b0316331461057e5760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064016102ec565b6001600160a01b0381166105d45760405162461bcd60e51b815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064016102ec565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040805182815260208101929092527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a150565b600080546001600160a01b031633146106915760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5cd95960a21b60448201526064016102ec565b60006001600160a01b0383166106fd576040514792506001600160a01b038516908390600081818185875af1925050503d80600081146106ed576040519150601f19603f3d011682016040523d82523d6000602084013e6106f2565b606091505b50508091505061082f565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078d9190611393565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018390529193509084169063a9059cbb90604401602060405180830381600087803b1580156107f457600080fd5b505af1158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611343565b90505b8061087c5760405162461bcd60e51b815260206004820152601160248201527f6661696c656420746f207265636f76657200000000000000000000000000000060448201526064016102ec565b5092915050565b6040517f5aca41f60000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382811660248301526000917f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef90911690635aca41f69060440160206040518083038186803b15801561090857600080fd5b505afa15801561091c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109409190611363565b90506fffffffffffffffffffffffffffffffff811615610a0e576040517fd514da500000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383811660248301526fffffffffffffffffffffffffffffffff831660448301527f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef169063d514da50906064015b600060405180830381600087803b1580156109f557600080fd5b505af1158015610a09573d6000803e3d6000fd5b505050505b5050565b6040517f5e0d443f00000000000000000000000000000000000000000000000000000000815260006004820181905260016024830152604482018390529081906001600160a01b037f000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f670221690635e0d443f9060640160206040518083038186803b158015610a9e57600080fd5b505afa158015610ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad69190611393565b9050600083821115610b9a57604051630f7c084960e21b8152600060048201526001602482018190526044820186905260648201527f000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f670226001600160a01b031690633df021249086906084016020604051808303818588803b158015610b5a57600080fd5b505af1158015610b6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b939190611393565b9050610c75565b6040517fa1903eab0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000ef8e1b4b676a5285db79d55d3288bc5fe65c71cc811660048301527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063a1903eab9086906024016020604051808303818588803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c709190611393565b508390505b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081166004830152602482018390527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063095ea7b390604401602060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d379190611343565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b03169063ea598cb0906024015b602060405180830381600087803b158015610db457600080fd5b505af1158015610dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dec9190611393565b925050505b919050565b6001600160a01b038216610ebf576040517f2d2da8060000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa2811660048301527f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef1690632d2da8069083906024016000604051808303818588803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b5050505050610a0e565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef811660048301526024820183905283169063095ea7b390604401602060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f619190611343565b507f000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef6001600160a01b031663e17376b583610f9b84611250565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201526cffffffffffffffffffffffffff90911660248201527f0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa29190911660448201526064016109db565b6040517fde0e9a3e0000000000000000000000000000000000000000000000000000000081526004810182905260009081906001600160a01b037f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0169063de0e9a3e90602401602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d79190611393565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f6702281166004830152602482018390529192506000917f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063095ea7b390604401602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190611343565b9050806111ee5760405162461bcd60e51b815260206004820152600e60248201527f617070726f7665206661696c656400000000000000000000000000000000000060448201526064016102ec565b604051630f7c084960e21b8152600160048201819052600060248301526044820184905260648201527f000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f670226001600160a01b031690633df0212490608401610d9a565b60006cffffffffffffffffffffffffff8211156112d55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f303420626974730000000000000000000000000000000000000000000000000060648201526084016102ec565b5090565b80356001600160a01b0381168114610df157600080fd5b600060208284031215611301578081fd5b61130a826112d9565b9392505050565b60008060408385031215611323578081fd5b61132c836112d9565b915061133a602084016112d9565b90509250929050565b600060208284031215611354578081fd5b8151801515811461130a578182fd5b600060208284031215611374578081fd5b81516fffffffffffffffffffffffffffffffff8116811461130a578182fd5b6000602082840312156113a4578081fd5b5051919050565b600080600080608085870312156113c0578182fd5b5050823594602084013594506040840135936060013592509050565b60008219821115611414577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50019056fea26469706673582212204b344488effefb7e94a43c0fe29e95d7bf5e80c274be81d5a562f450bb76be2064736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022000000000000000000000000ef8e1b4b676a5285db79d55d3288bc5fe65c71cc
-----Decoded View---------------
Arg [0] : _zkSync (address): 0xaBEA9132b05A70803a4E85094fD0e1800777fBEF
Arg [1] : _l2Account (address): 0x4D4c6545C17396bDFB7c635Ca5C5361D00335aa2
Arg [2] : _wStEth (address): 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
Arg [3] : _stEthPool (address): 0xDC24316b9AE028F1497c275EB9192a3Ea0f67022
Arg [4] : _lidoReferral (address): 0xef8e1b4b676A5285db79d55d3288bC5FE65C71cc
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000abea9132b05a70803a4e85094fd0e1800777fbef
Arg [1] : 0000000000000000000000004d4c6545c17396bdfb7c635ca5c5361d00335aa2
Arg [2] : 0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0
Arg [3] : 000000000000000000000000dc24316b9ae028f1497c275eb9192a3ea0f67022
Arg [4] : 000000000000000000000000ef8e1b4b676a5285db79d55d3288bc5fe65c71cc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ZKSYNC | 100.00% | $3,102.22 | 0.0014 | $4.34 |
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.