ETH Price: $3,319.81 (-1.19%)

Contract

0xBD9fc4FdB07e46a69349101E862e82aa002aDe0d
 
Transaction Hash
Method
Block
From
To
Eth Zap In212426672024-11-22 10:26:5912 hrs ago1732271219IN
0xBD9fc4Fd...a002aDe0d
0.848 ETH0.001016511.70351607
St ETH Zap In212333822024-11-21 3:19:5944 hrs ago1732159199IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.001634589.26983418
Eth Zap In212293382024-11-20 13:46:112 days ago1732110371IN
0xBD9fc4Fd...a002aDe0d
0.2 ETH0.0012363414.23455671
Eth Zap In212270462024-11-20 6:05:232 days ago1732082723IN
0xBD9fc4Fd...a002aDe0d
0.0089 ETH0.000857779.87599319
E ETH Zap In212270062024-11-20 5:57:232 days ago1732082243IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.001076067.22862431
E ETH Zap In212248332024-11-19 22:41:353 days ago1732056095IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.0031292418.85246155
Eth Zap In212165562024-11-18 19:00:234 days ago1731956423IN
0xBD9fc4Fd...a002aDe0d
0.02 ETH0.0019460122.40534091
Eth Zap In212131332024-11-18 7:33:114 days ago1731915191IN
0xBD9fc4Fd...a002aDe0d
0.5 ETH0.0009799811.28304811
Eth Zap In212079712024-11-17 14:17:475 days ago1731853067IN
0xBD9fc4Fd...a002aDe0d
0.4 ETH0.000823549.48184247
Eth Zap In212006942024-11-16 13:55:596 days ago1731765359IN
0xBD9fc4Fd...a002aDe0d
0.25 ETH0.0009951813.6
Eth Zap In211996782024-11-16 10:31:596 days ago1731753119IN
0xBD9fc4Fd...a002aDe0d
0.03 ETH0.0010275911.83120965
Eth Zap In211986762024-11-16 7:10:476 days ago1731741047IN
0xBD9fc4Fd...a002aDe0d
0.00547778 ETH0.0012187814.03243054
E ETH Zap In211973792024-11-16 2:50:356 days ago1731725435IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.0022764113.32904683
Eth Zap In211967382024-11-16 0:41:476 days ago1731717707IN
0xBD9fc4Fd...a002aDe0d
1.24 ETH0.0012604714.51238331
Eth Zap In211950142024-11-15 18:54:477 days ago1731696887IN
0xBD9fc4Fd...a002aDe0d
0.03 ETH0.0015464917.80545063
E ETH Zap In211859652024-11-14 12:34:478 days ago1731587687IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.004410126.56913964
Eth Zap In211856832024-11-14 11:37:478 days ago1731584267IN
0xBD9fc4Fd...a002aDe0d
0.012 ETH0.0024406228.1
Eth Zap In211829402024-11-14 2:26:478 days ago1731551207IN
0xBD9fc4Fd...a002aDe0d
0.02101151 ETH0.0033397238.45172274
Eth Zap In211783392024-11-13 11:01:239 days ago1731495683IN
0xBD9fc4Fd...a002aDe0d
0.01 ETH0.0024449428.14973534
Eth Zap In211748282024-11-12 23:15:5910 days ago1731453359IN
0xBD9fc4Fd...a002aDe0d
0.0008 ETH0.0018134920.8795199
Eth Zap In211748282024-11-12 23:15:5910 days ago1731453359IN
0xBD9fc4Fd...a002aDe0d
0.00082 ETH0.0018144520.89061007
E ETH Zap In211746352024-11-12 22:37:2310 days ago1731451043IN
0xBD9fc4Fd...a002aDe0d
0 ETH0.0045026227.12654616
Eth Zap In211733592024-11-12 18:21:3510 days ago1731435695IN
0xBD9fc4Fd...a002aDe0d
0.0008 ETH0.0020358423.43958525
Eth Zap In211719272024-11-12 13:33:3510 days ago1731418415IN
0xBD9fc4Fd...a002aDe0d
0.0008 ETH0.0019329422.25479788
Eth Zap In211718802024-11-12 13:24:1110 days ago1731417851IN
0xBD9fc4Fd...a002aDe0d
0.00084 ETH0.0019353422.28248756
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
212426672024-11-22 10:26:5912 hrs ago1732271219
0xBD9fc4Fd...a002aDe0d
0.848 ETH
212293382024-11-20 13:46:112 days ago1732110371
0xBD9fc4Fd...a002aDe0d
0.2 ETH
212270462024-11-20 6:05:232 days ago1732082723
0xBD9fc4Fd...a002aDe0d
0.0089 ETH
212165562024-11-18 19:00:234 days ago1731956423
0xBD9fc4Fd...a002aDe0d
0.02 ETH
212131332024-11-18 7:33:114 days ago1731915191
0xBD9fc4Fd...a002aDe0d
0.5 ETH
212079712024-11-17 14:17:475 days ago1731853067
0xBD9fc4Fd...a002aDe0d
0.4 ETH
212006942024-11-16 13:55:596 days ago1731765359
0xBD9fc4Fd...a002aDe0d
0.25 ETH
211996782024-11-16 10:31:596 days ago1731753119
0xBD9fc4Fd...a002aDe0d
0.03 ETH
211986762024-11-16 7:10:476 days ago1731741047
0xBD9fc4Fd...a002aDe0d
0.00547778 ETH
211967382024-11-16 0:41:476 days ago1731717707
0xBD9fc4Fd...a002aDe0d
1.24 ETH
211950142024-11-15 18:54:477 days ago1731696887
0xBD9fc4Fd...a002aDe0d
0.03 ETH
211904682024-11-15 3:40:117 days ago1731642011
0xBD9fc4Fd...a002aDe0d
0.043875 ETH
211904682024-11-15 3:40:117 days ago1731642011
0xBD9fc4Fd...a002aDe0d
0.043875 ETH
211856832024-11-14 11:37:478 days ago1731584267
0xBD9fc4Fd...a002aDe0d
0.012 ETH
211829402024-11-14 2:26:478 days ago1731551207
0xBD9fc4Fd...a002aDe0d
0.02101151 ETH
211783392024-11-13 11:01:239 days ago1731495683
0xBD9fc4Fd...a002aDe0d
0.01 ETH
211748282024-11-12 23:15:5910 days ago1731453359
0xBD9fc4Fd...a002aDe0d
0.0008 ETH
211748282024-11-12 23:15:5910 days ago1731453359
0xBD9fc4Fd...a002aDe0d
0.00082 ETH
211733592024-11-12 18:21:3510 days ago1731435695
0xBD9fc4Fd...a002aDe0d
0.0008 ETH
211719272024-11-12 13:33:3510 days ago1731418415
0xBD9fc4Fd...a002aDe0d
0.0008 ETH
211718802024-11-12 13:24:1110 days ago1731417851
0xBD9fc4Fd...a002aDe0d
0.00084 ETH
211718332024-11-12 13:14:4710 days ago1731417287
0xBD9fc4Fd...a002aDe0d
0.00084 ETH
211717962024-11-12 13:07:2310 days ago1731416843
0xBD9fc4Fd...a002aDe0d
0.00081 ETH
211717642024-11-12 13:00:5910 days ago1731416459
0xBD9fc4Fd...a002aDe0d
0.00084 ETH
211717012024-11-12 12:48:2310 days ago1731415703
0xBD9fc4Fd...a002aDe0d
0.0008 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Zap

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion
File 1 of 6 : Zap.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";

import {IWETH} from "./interfaces/IWETH.sol";
import {IWeETH} from "./interfaces/IWeETH.sol";
import {IWstETH} from "./interfaces/IWstETH.sol";
import {ISimpleStakingERC20} from "./interfaces/ISimpleStakingERC20.sol";

contract Zap {
    IWETH public immutable weth;
    IERC20 public immutable eETH;
    IERC20 public immutable stETH;
    IWeETH public immutable weETH;
    IWstETH public immutable wstETH;
    ISimpleStakingERC20 public immutable stakingContract;

    constructor(address payable _weth, address _wstETH, address _weETH, address _stakingContract) {
        weth = IWETH(_weth);
        weETH = IWeETH(_weETH);
        wstETH = IWstETH(_wstETH);
        eETH = IERC20(weETH.eETH());
        stETH = IERC20(wstETH.stETH());
        stakingContract = ISimpleStakingERC20(_stakingContract);

        eETH.approve(address(weETH), type(uint256).max);
        weth.approve(_stakingContract, type(uint256).max);
        stETH.approve(address(wstETH), type(uint256).max);
        weETH.approve(address(stakingContract), type(uint256).max);
        wstETH.approve(address(stakingContract), type(uint256).max);
    }

    function ethZapIn() external payable {
        if (msg.value == 0) revert ISimpleStakingERC20.AMOUNT_NULL();
        // Wrap ETH to wETH
        weth.deposit{value: msg.value}();

        // Deposit wETH to staking contract
        stakingContract.deposit(IERC20(address(weth)), msg.value, msg.sender);
    }

    function stETHZapIn(uint256 _amount) external {
        if (_amount == 0) revert ISimpleStakingERC20.AMOUNT_NULL();
        // Transfer stETH from msg.sender to this contract, sometimes 1 or 2 wei can be missing.
        stETH.transferFrom(msg.sender, address(this), _amount);

        // Deposit wstETH to staking contract
        stakingContract.deposit(IERC20(address(wstETH)), wstETH.wrap(stETH.balanceOf(address(this))), msg.sender);
    }

    function eETHZapIn(uint256 _amount) external {
        if (_amount == 0) revert ISimpleStakingERC20.AMOUNT_NULL();
        // Transfer eETH from msg.sender to this contract, sometimes 1 or 2 wei can be missing.
        eETH.transferFrom(msg.sender, address(this), _amount);

        // Deposit eETH to staking contract
        stakingContract.deposit(IERC20(address(weETH)), weETH.wrap(eETH.balanceOf(address(this))), msg.sender);
    }
}

File 2 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

File 3 of 6 : IWETH.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

interface IWETH {
    function deposit() external payable;

    function withdraw(uint256) external;

    function approve(address, uint256) external returns (bool);

    function transfer(address, uint256) external returns (bool);

    function transferFrom(address, address, uint256) external returns (bool);

    function balanceOf(address) external view returns (uint256);
}

File 4 of 6 : IWeETH.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

interface IWeETH {
    function approve(address _spender, uint256 _amount) external returns (bool);
    function eETH() external view returns (address);
    function liquidityPool() external view returns (address);
    function wrap(uint256 _stETHAmount) external returns (uint256);
}

File 5 of 6 : IWstETH.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

interface IWstETH {
    function approve(address _spender, uint256 _amount) external returns (bool);
    function getWstETHByStETH(uint256 _stETHAmount) external view returns (uint256);
    function stETH() external view returns (address);
    function wrap(uint256 _stETHAmount) external returns (uint256);
}

File 6 of 6 : ISimpleStakingERC20.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface ISimpleStakingERC20 {
    /// @notice Struct to hold the supported booleans
    /// @param deposit true if deposit is supported
    /// @param withdraw true if withdraw is supported
    struct Supported {
        bool deposit;
        bool withdraw;
    }

    /// @notice Error emitted when the amount is null
    error AMOUNT_NULL();

    /// @notice Error emitted when the address is null
    error ADDRESS_NULL();

    /// @notice Error emitted when the balance is insufficient
    error INSUFFICIENT_BALANCE();

    /// @notice Error emitted when the token is not allowed
    error TOKEN_NOT_ALLOWED(IERC20 token);

    /// @notice Event emitted when a token is added or removed
    /// @param token address of the token
    /// @param supported struct with deposit and withdraw booleans
    event SupportedToken(IERC20 indexed token, Supported supported);

    /// @notice Event emitted when a deposit is made
    /// @param token address of the token
    /// @param staker address of the staker
    /// @param amount amount of the deposit
    event Deposit(IERC20 indexed token, address indexed staker, uint256 amount);

    /// @notice Event emitted when a withdrawal is made
    /// @param token address of the token
    /// @param staker address of the staker
    /// @param amount amount of the withdrawal
    event Withdraw(IERC20 indexed token, address indexed staker, uint256 amount);

    /// @notice Method to deposit tokens
    /// @dev token are transferred from the sender, and the receiver is credited
    /// @param _token address of the token
    /// @param _amount amount to deposit
    /// @param _receiver address of the receiver
    function deposit(IERC20 _token, uint256 _amount, address _receiver) external;

    /// @notice Method to rescue tokens, only callable by the owner
    /// @dev difference between balance and internal balance is transferred to the owner
    /// @param _token address of the token
    function rescueERC20(IERC20 _token) external;

    /// @notice Method to add or remove a token
    /// @dev only callable by the owner
    /// @param _token address of the token
    /// @param _supported struct with deposit and withdraw booleans
    function supportToken(IERC20 _token, Supported calldata _supported) external;

    /// @notice Method to rescue tokens, only callable by the owner
    /// @dev token are transferred to the receiver and sender is credited
    /// @param _token address of the token
    /// @param _amount amount to withdraw
    /// @param _receiver address of the receiver
    function withdraw(IERC20 _token, uint256 _amount, address _receiver) external;
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_weth","type":"address"},{"internalType":"address","name":"_wstETH","type":"address"},{"internalType":"address","name":"_weETH","type":"address"},{"internalType":"address","name":"_stakingContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AMOUNT_NULL","type":"error"},{"inputs":[],"name":"eETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"eETHZapIn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethZapIn","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"stETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stETHZapIn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract ISimpleStakingERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weETH","outputs":[{"internalType":"contract IWeETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wstETH","outputs":[{"internalType":"contract IWstETH","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

61014060405234801562000011575f80fd5b5060405162000c8b38038062000c8b8339810160408190526200003491620003c3565b6001600160a01b0380851660805282811660e081905290841661010052604080516306f1b8f160e11b81529051630de371e2916004808201926020929091908290030181865afa1580156200008b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000b1919062000428565b6001600160a01b031660a0816001600160a01b031681525050610100516001600160a01b031663c1fe3e486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000130919062000428565b6001600160a01b0390811660c0528181166101205260a05160e05160405163095ea7b360e01b815290831660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801562000190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b691906200044d565b5060805160405163095ea7b360e01b81526001600160a01b0383811660048301525f1960248301529091169063095ea7b3906044016020604051808303815f875af115801562000208573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022e91906200044d565b5060c0516101005160405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801562000283573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a991906200044d565b5060e0516101205160405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015620002fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032491906200044d565b50610100516101205160405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af11580156200037a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a091906200044d565b50505050506200046e565b6001600160a01b0381168114620003c0575f80fd5b50565b5f805f8060808587031215620003d7575f80fd5b8451620003e481620003ab565b6020860151909450620003f781620003ab565b60408601519093506200040a81620003ab565b60608601519092506200041d81620003ab565b939692955090935050565b5f6020828403121562000439575f80fd5b81516200044681620003ab565b9392505050565b5f602082840312156200045e575f80fd5b8151801515811462000446575f80fd5b60805160a05160c05160e051610100516101205161078a620005015f395f81816101dd015281816102f601528181610425015261067901525f818161011b015261044f01525f818161018101526106a301525f818161014e01528181610395015261047b01525f81816099015281816105e901526106cf01525f818160e80152818161024001526102c2015261078a5ff3fe608060405260043610610084575f3560e01c8063c72bf7a511610057578063c72bf7a514610170578063c7411491146101a3578063d4f2bf44146101ad578063ee99205c146101cc578063f0d2aee0146101ff575f80fd5b80630de371e2146100885780633fc8cef3146100d75780634aa07e641461010a578063c1fe3e481461013d575b5f80fd5b348015610093575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e2575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b348015610115575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b348015610148575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561017b575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b6101ab61021e565b005b3480156101b8575f80fd5b506101ab6101c7366004610700565b610353565b3480156101d7575f80fd5b506100bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561020a575f80fd5b506101ab610219366004610700565b6105a7565b345f0361023e576040516312073f6d60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610297575f80fd5b505af11580156102a9573d5f803e3d5ffd5b5050604051633d14d1b760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523460248301523360448301527f000000000000000000000000000000000000000000000000000000000000000016935063f45346dc925060640190505f604051808303815f87803b15801561033b575f80fd5b505af115801561034d573d5f803e3d5ffd5b50505050565b805f03610373576040516312073f6d60e21b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af11580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104079190610717565b506040516370a0823160e01b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163f45346dc917f0000000000000000000000000000000000000000000000000000000000000000918282169163ea598cb0917f0000000000000000000000000000000000000000000000000000000000000000909116906370a08231906024015b602060405180830381865afa1580156104c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e7919061073d565b6040518263ffffffff1660e01b815260040161050591815260200190565b6020604051808303815f875af1158015610521573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610545919061073d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201523360448201526064015f604051808303815f87803b15801561058e575f80fd5b505af11580156105a0573d5f803e3d5ffd5b5050505050565b805f036105c7576040516312073f6d60e21b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610717565b506040516370a0823160e01b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163f45346dc917f0000000000000000000000000000000000000000000000000000000000000000918282169163ea598cb0917f0000000000000000000000000000000000000000000000000000000000000000909116906370a08231906024016104a8565b5f60208284031215610710575f80fd5b5035919050565b5f60208284031215610727575f80fd5b81518015158114610736575f80fd5b9392505050565b5f6020828403121561074d575f80fd5b505191905056fea26469706673582212200d8f2c7ea9d5c6132fe99d9ea11add91eef37a931238066be9ecf55e8a6e3cef64736f6c63430008170033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d774

Deployed Bytecode

0x608060405260043610610084575f3560e01c8063c72bf7a511610057578063c72bf7a514610170578063c7411491146101a3578063d4f2bf44146101ad578063ee99205c146101cc578063f0d2aee0146101ff575f80fd5b80630de371e2146100885780633fc8cef3146100d75780634aa07e641461010a578063c1fe3e481461013d575b5f80fd5b348015610093575f80fd5b506100bb7f00000000000000000000000035fa164735182de50811e8e2e824cfb9b6118ac281565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e2575f80fd5b506100bb7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b348015610115575f80fd5b506100bb7f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081565b348015610148575f80fd5b506100bb7f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8481565b34801561017b575f80fd5b506100bb7f000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee81565b6101ab61021e565b005b3480156101b8575f80fd5b506101ab6101c7366004610700565b610353565b3480156101d7575f80fd5b506100bb7f00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d77481565b34801561020a575f80fd5b506101ab610219366004610700565b6105a7565b345f0361023e576040516312073f6d60e21b815260040160405180910390fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610297575f80fd5b505af11580156102a9573d5f803e3d5ffd5b5050604051633d14d1b760e21b81526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2811660048301523460248301523360448301527f00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d77416935063f45346dc925060640190505f604051808303815f87803b15801561033b575f80fd5b505af115801561034d573d5f803e3d5ffd5b50505050565b805f03610373576040516312073f6d60e21b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018290527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe846001600160a01b0316906323b872dd906064016020604051808303815f875af11580156103e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104079190610717565b506040516370a0823160e01b81523060048201526001600160a01b037f00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d77481169163f45346dc917f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0918282169163ea598cb0917f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84909116906370a08231906024015b602060405180830381865afa1580156104c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e7919061073d565b6040518263ffffffff1660e01b815260040161050591815260200190565b6020604051808303815f875af1158015610521573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610545919061073d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201523360448201526064015f604051808303815f87803b15801561058e575f80fd5b505af11580156105a0573d5f803e3d5ffd5b5050505050565b805f036105c7576040516312073f6d60e21b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000035fa164735182de50811e8e2e824cfb9b6118ac26001600160a01b0316906323b872dd906064016020604051808303815f875af1158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610717565b506040516370a0823160e01b81523060048201526001600160a01b037f00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d77481169163f45346dc917f000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee918282169163ea598cb0917f00000000000000000000000035fa164735182de50811e8e2e824cfb9b6118ac2909116906370a08231906024016104a8565b5f60208284031215610710575f80fd5b5035919050565b5f60208284031215610727575f80fd5b81518015158114610736575f80fd5b9392505050565b5f6020828403121561074d575f80fd5b505191905056fea26469706673582212200d8f2c7ea9d5c6132fe99d9ea11add91eef37a931238066be9ecf55e8a6e3cef64736f6c63430008170033

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

000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d774

-----Decoded View---------------
Arg [0] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _wstETH (address): 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
Arg [2] : _weETH (address): 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee
Arg [3] : _stakingContract (address): 0x38D43a6Cb8DA0E855A42fB6b0733A0498531d774

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0
Arg [2] : 000000000000000000000000cd5fe23c85820f7b72d0926fc9b05b43e359b7ee
Arg [3] : 00000000000000000000000038d43a6cb8da0e855a42fb6b0733a0498531d774


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.