ETH Price: $2,130.35 (+3.75%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Zap ETH204709872024-08-06 17:21:11602 days ago1722964871IN
0x0465aa3f...889C700D6
0.02 ETH0.002523947.90896605
Zap ETH204707992024-08-06 16:43:35602 days ago1722962615IN
0x0465aa3f...889C700D6
0.03 ETH0.002266887.1034504
Zap ETH204524522024-08-04 3:19:23605 days ago1722741563IN
0x0465aa3f...889C700D6
4 ETH0.000399871.25121886
Zap ETH204523202024-08-04 2:52:59605 days ago1722739979IN
0x0465aa3f...889C700D6
2.6 ETH0.000422611.32235253
Zap ETH203950162024-07-27 2:51:47613 days ago1722048707IN
0x0465aa3f...889C700D6
6 ETH0.000448981.40693318
Zap ETH202584592024-07-08 1:17:47632 days ago1720401467IN
0x0465aa3f...889C700D6
2.5 ETH0.0033998810.70151813
Zap ETH202427762024-07-05 20:44:47634 days ago1720212287IN
0x0465aa3f...889C700D6
0.39 ETH0.000906882.85452772
Zap ETH202247512024-07-03 8:20:11637 days ago1719994811IN
0x0465aa3f...889C700D6
0.04415541 ETH0.001069723.36707624
Zap ETH201801522024-06-27 2:51:23643 days ago1719456683IN
0x0465aa3f...889C700D6
9.11139183 ETH0.002119866.66275872
Zap ETH201346302024-06-20 18:08:59649 days ago1718906939IN
0x0465aa3f...889C700D6
0.26 ETH0.002784758.75251154
Zap ETH200518492024-06-09 4:21:47661 days ago1717906907IN
0x0465aa3f...889C700D6
21.6 ETH0.00117653.70317316
Zap ETH200433522024-06-07 23:52:47662 days ago1717804367IN
0x0465aa3f...889C700D6
1.25 ETH0.002649528.32750405
Zap ETH199665052024-05-28 6:14:11673 days ago1716876851IN
0x0465aa3f...889C700D6
12.2 ETH0.0054045517.0114637
Zap ETH199463832024-05-25 10:45:59676 days ago1716633959IN
0x0465aa3f...889C700D6
0.1 ETH0.001271054.00080528
Zap ETH198385802024-05-10 8:55:59691 days ago1715331359IN
0x0465aa3f...889C700D6
13 ETH0.001209033.8
Zap ETH198268292024-05-08 17:28:47692 days ago1715189327IN
0x0465aa3f...889C700D6
6 ETH0.001391194.37254413
Zap ETH198233302024-05-08 5:42:59693 days ago1715146979IN
0x0465aa3f...889C700D6
0.3 ETH0.001235743.88395405
Zap ETH197859232024-05-03 0:10:47698 days ago1714695047IN
0x0465aa3f...889C700D6
0.1 ETH0.001489844.6894713
Zap ETH196377472024-04-12 6:30:35719 days ago1712903435IN
0x0465aa3f...889C700D6
0.005 ETH0.0040884812.86896543
Zap ETH196367622024-04-12 3:11:35719 days ago1712891495IN
0x0465aa3f...889C700D6
0.00650298 ETH0.005036615.85327341
Zap ETH196261842024-04-10 15:41:11720 days ago1712763671IN
0x0465aa3f...889C700D6
1.00150298 ETH0.0076652524.12726943
Zap ETH196225062024-04-10 3:19:59721 days ago1712719199IN
0x0465aa3f...889C700D6
0.14231164 ETH0.0048737915.34083769
Zap ETH196079432024-04-08 2:21:23723 days ago1712542883IN
0x0465aa3f...889C700D6
0.00731164 ETH0.0039104812.30870221
Zap WETH195730962024-04-03 5:14:35728 days ago1712121275IN
0x0465aa3f...889C700D6
0.00231164 ETH0.0065752519.13815443
Zap ETH195651372024-04-02 2:27:23729 days ago1712024843IN
0x0465aa3f...889C700D6
0.01231164 ETH0.0065197620.52168725
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Deposit To App C...204709872024-08-06 17:21:11602 days ago1722964871
0x0465aa3f...889C700D6
0.00048582 ETH
Submit204709872024-08-06 17:21:11602 days ago1722964871
0x0465aa3f...889C700D6
0.01951417 ETH
Deposit To App C...204707992024-08-06 16:43:35602 days ago1722962615
0x0465aa3f...889C700D6
0.00048582 ETH
Submit204707992024-08-06 16:43:35602 days ago1722962615
0x0465aa3f...889C700D6
0.02951417 ETH
Deposit To App C...204524522024-08-04 3:19:23605 days ago1722741563
0x0465aa3f...889C700D6
0.00010243 ETH
Submit204524522024-08-04 3:19:23605 days ago1722741563
0x0465aa3f...889C700D6
3.99989756 ETH
Deposit To App C...204523202024-08-04 2:52:59605 days ago1722739979
0x0465aa3f...889C700D6
0.00010243 ETH
Submit204523202024-08-04 2:52:59605 days ago1722739979
0x0465aa3f...889C700D6
2.59989756 ETH
Deposit To App C...203950162024-07-27 2:51:47613 days ago1722048707
0x0465aa3f...889C700D6
0.00014778 ETH
Submit203950162024-07-27 2:51:47613 days ago1722048707
0x0465aa3f...889C700D6
5.99985221 ETH
Deposit To App C...202584592024-07-08 1:17:47632 days ago1720401467
0x0465aa3f...889C700D6
0.00013104 ETH
Submit202584592024-07-08 1:17:47632 days ago1720401467
0x0465aa3f...889C700D6
2.49986895 ETH
Deposit To App C...202427762024-07-05 20:44:47634 days ago1720212287
0x0465aa3f...889C700D6
0.00013104 ETH
Submit202427762024-07-05 20:44:47634 days ago1720212287
0x0465aa3f...889C700D6
0.38986895 ETH
Deposit To App C...202247512024-07-03 8:20:11637 days ago1719994811
0x0465aa3f...889C700D6
0.00013104 ETH
Submit202247512024-07-03 8:20:11637 days ago1719994811
0x0465aa3f...889C700D6
0.04402436 ETH
Deposit To App C...201801522024-06-27 2:51:23643 days ago1719456683
0x0465aa3f...889C700D6
0.0003346 ETH
Submit201801522024-06-27 2:51:23643 days ago1719456683
0x0465aa3f...889C700D6
9.11105722 ETH
Deposit To App C...201346302024-06-20 18:08:59649 days ago1718906939
0x0465aa3f...889C700D6
0.00072698 ETH
Submit201346302024-06-20 18:08:59649 days ago1718906939
0x0465aa3f...889C700D6
0.25927301 ETH
Deposit To App C...200518492024-06-09 4:21:47661 days ago1717906907
0x0465aa3f...889C700D6
0.00097919 ETH
Submit200518492024-06-09 4:21:47661 days ago1717906907
0x0465aa3f...889C700D6
21.5990208 ETH
Deposit To App C...200433522024-06-07 23:52:47662 days ago1717804367
0x0465aa3f...889C700D6
0.00097919 ETH
Submit200433522024-06-07 23:52:47662 days ago1717804367
0x0465aa3f...889C700D6
1.2490208 ETH
Deposit To App C...199665052024-05-28 6:14:11673 days ago1716876851
0x0465aa3f...889C700D6
0.00127566 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LyraWstETHZapper

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 2000 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import {IERC20} from "../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {ISocketVault} from "../interfaces/ISocketVault.sol";
import {ILightAccountFactory} from "../interfaces/ILightAccountFactory.sol";
import {Ownable} from "../../lib/openzeppelin-contracts/contracts/access/Ownable.sol";
import {IWstETH} from "../interfaces/wstETH/IWstETH.sol";
import {IStETH} from "../interfaces/wstETH/IStETH.sol";
import {IWETH} from "../interfaces/IWETH.sol";

/**
 * @title  LyraWstETHZapper
 * @dev    Helper contract to wrap ETH/WETH/stETH into Lido wstETH, and then deposit to lyra chain via socket bridge.
 */
contract LyraWstETHZapper is Ownable {
    IWETH public immutable weth;
    IWstETH public immutable wstETH;
    IStETH public immutable stETH;

    ///@dev Light Account factory address.
    address public constant lightAccountFactory = 0x000000893A26168158fbeaDD9335Be5bC96592E2;

    constructor(address _weth, address _wstETH) Ownable() {
        weth = IWETH(_weth);
        wstETH = IWstETH(_wstETH);
        stETH = IStETH(wstETH.stETH());
    }

    function recover(address token, uint256 amount) external onlyOwner {
        IERC20(token).transfer(msg.sender, amount);
        _returnAllEth();
    }

    function estimateWstethReceived(
        uint256 amountEth,
        address socketVault,
        uint256 gasLimit,
        address connector,
        bool takeOutFee
    ) external view returns (uint256) {
        uint256 socketFee = 0;
        if (takeOutFee) {
            socketFee = ISocketVault(socketVault).getMinFees(connector, gasLimit);
        }
        uint256 depositAmount = amountEth - socketFee;
        return wstETH.stETH().getSharesByPooledEth(depositAmount);
    }

    ///////////////////////////
    // ETH and WETH deposits //
    ///////////////////////////
    /**
     * @notice Wrap ETH into wstETH and deposit to Lyra Chain via socket vault
     */
    function zapETH(address socketVault, bool isSCW, uint256 gasLimit, address connector) external payable {
        _wrapETHAndDeposit(socketVault, isSCW, gasLimit, connector);
    }

    /**
     * @notice Wrap ETH into wstETH and deposit to Lyra Chain via socket vault
     */
    function zapWETH(uint256 amount, address socketVault, bool isSCW, uint256 gasLimit, address connector)
        external
        payable
    {
        // unrwap weth to eth
        weth.transferFrom(msg.sender, address(this), amount);
        weth.withdraw(weth.balanceOf(address(this)));

        _wrapETHAndDeposit(socketVault, isSCW, gasLimit, connector);
    }

    function _wrapETHAndDeposit(address socketVault, bool isSCW, uint256 gasLimit, address connector) internal {
        uint256 ethBalance = address(this).balance;

        uint256 socketFee = ISocketVault(socketVault).getMinFees(connector, gasLimit);
        uint256 depositAmount = ethBalance - socketFee;

        stETH.submit{value: depositAmount}(address(this));
        stETH.approve(address(wstETH), depositAmount);
        wstETH.wrap(depositAmount);

        _depositAllWstETH(socketVault, gasLimit, connector, socketFee, _getL2Receiver(isSCW));
    }

    ///////////
    // stETH //
    ///////////
    /**
     * @notice Wrap stETH into wstETH and deposit to Lyra Chain via socket vault.
     * Must pay eth as well to cover the socket fee.
     */
    function zapStETH(uint256 amount, address socketVault, bool isSCW, uint256 gasLimit, address connector)
        external
        payable
    {
        // unrwap weth to eth
        stETH.transferFrom(msg.sender, address(this), amount);
        stETH.approve(address(wstETH), amount);
        // we dont get the wstETH amount as we always just deposit balance of this contract
        wstETH.wrap(amount);

        uint256 socketFee = ISocketVault(socketVault).getMinFees(connector, gasLimit);

        // We assume the user transfers enough ETH to cover the fee. The depositToAppchain call will fail if not
        _depositAllWstETH(socketVault, gasLimit, connector, socketFee, _getL2Receiver(isSCW));
    }

    /////////////
    // Helpers //
    /////////////

    /**
     * @notice Deposit wstETH held in this contract on behalf of the sender
     */
    function _depositAllWstETH(
        address socketVault,
        uint256 gasLimit,
        address connector,
        uint256 socketFee,
        address recipient
    ) internal {
        uint256 amount = wstETH.balanceOf(address(this));
        wstETH.approve(socketVault, type(uint256).max);

        ISocketVault(socketVault).depositToAppChain{value: socketFee}(recipient, amount, gasLimit, connector);

        _returnAllEth();
    }

    /**
     * @notice Return the receiver address on L2
     */
    function _getL2Receiver(bool isScwWallet) internal view returns (address) {
        if (isScwWallet) {
            return ILightAccountFactory(lightAccountFactory).getAddress(msg.sender, 0);
        } else {
            return msg.sender;
        }
    }

    function _returnAllEth() internal {
        payable(msg.sender).transfer(address(this).balance);
    }

    // Needs to be able to receive ETH from unwrapping WETH
    receive() external payable {}
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;

interface ISocketVault {
    function depositToAppChain(address receiver_, uint256 amount_, uint256 msgGasLimit_, address connector_)
        external
        payable;

    function __token() external view returns (address);

    function getMinFees(address connector, uint256 minGasLimit) external view returns (uint256);
}

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

interface ILightAccountFactory {
    /**
     * @notice Create an account, and return its address.
     * Returns the address even if the account is already deployed.
     * @dev During UserOperation execution, this method is called only if the account is not deployed.
     * This method returns an existing account address so that entryPoint.getSenderAddress() would work even after account creation.
     * @param owner The owner of the account to be created
     * @param salt A salt, which can be changed to create multiple accounts with the same owner
     * @return ret The address of either the newly deployed account or an existing account with this owner and salt
     */
    function createAccount(address owner, uint256 salt) external returns (address ret);

    /**
     * @notice Calculate the counterfactual address of this account as it would be returned by createAccount()
     * @param owner The owner of the account to be created
     * @param salt A salt, which can be changed to create multiple accounts with the same owner
     * @return The address of the account that would be created with createAccount()
     */
    function getAddress(address owner, uint256 salt) external view returns (address);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import {IERC20} from "../../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {IStETH} from "./IStETH.sol";

interface IWstETH is IERC20 {
    function stETH() external view returns (IStETH);
    function wrap(uint256 _stETHAmount) external returns (uint256 wstETHAmount);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

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

interface IStETH is IERC20 {
    function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);
    function getSharesByPooledEth(uint256 _pooledEthAmount) external view returns (uint256);
    function submit(address _referral) external payable returns (uint256);
}

pragma solidity >=0.5.0;

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

interface IWETH is IERC20 {
    function deposit() external payable;
    function withdraw(uint256) external;
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "remappings": [
    "account-abstraction/=lib/account-abstraction/contracts/",
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "account-abstraction/=lib/account-abstraction/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "relay-context-contracts/=lib/relay-context-contracts/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 2000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_wstETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"amountEth","type":"uint256"},{"internalType":"address","name":"socketVault","type":"address"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"address","name":"connector","type":"address"},{"internalType":"bool","name":"takeOutFee","type":"bool"}],"name":"estimateWstethReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lightAccountFactory","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":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stETH","outputs":[{"internalType":"contract IStETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"socketVault","type":"address"},{"internalType":"bool","name":"isSCW","type":"bool"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"address","name":"connector","type":"address"}],"name":"zapETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"socketVault","type":"address"},{"internalType":"bool","name":"isSCW","type":"bool"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"address","name":"connector","type":"address"}],"name":"zapStETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"socketVault","type":"address"},{"internalType":"bool","name":"isSCW","type":"bool"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"address","name":"connector","type":"address"}],"name":"zapWETH","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040523480156200001157600080fd5b506040516200148038038062001480833981016040819052620000349162000134565b6200003f33620000cb565b6001600160a01b03808316608052811660a08190526040805163183fc7c960e31b8152905163c1fe3e48916004808201926020929091908290030181865afa15801562000090573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b6919062000173565b6001600160a01b031660c052506200019a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b6000602082840312156200018657600080fd5b815162000193816200011b565b9392505050565b60805160a05160c05161125c620002246000396000818161024f015281816106d50152818161079101528181610b440152610bfa01526000818161013a0152818161031e015281816107620152818161082e01528181610bcb01528181610c9701528181610e640152610f1f01526000818160e90152818161051801526105bc015261125c6000f3fe6080604052600436106100cb5760003560e01c80637e902d5711610074578063bfb355e01161004e578063bfb355e01461022a578063c1fe3e481461023d578063f2fde38b1461027157600080fd5b80637e902d57146101d45780638da5cb5b146101f9578063a209849c1461021757600080fd5b80635705ae43116100a55780635705ae431461018a578063599c17fc146101ac578063715018a6146101bf57600080fd5b80633fc8cef3146100d75780634aa07e64146101285780634eb8182e1461015c57600080fd5b366100d257005b600080fd5b3480156100e357600080fd5b5061010b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561013457600080fd5b5061010b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561016857600080fd5b5061017c610177366004611046565b610291565b60405190815260200161011f565b34801561019657600080fd5b506101aa6101a53660046110a5565b610418565b005b6101aa6101ba3660046110d1565b6104b7565b3480156101cb57600080fd5b506101aa6104c9565b3480156101e057600080fd5b5061010b70893a26168158fbeadd9335be5bc96592e281565b34801561020557600080fd5b506000546001600160a01b031661010b565b6101aa610225366004611124565b6104dd565b6101aa610238366004611124565b61069a565b34801561024957600080fd5b5061010b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561027d57600080fd5b506101aa61028c366004611175565b610938565b600080821561030e57604051638367080f60e01b81526001600160a01b03858116600483015260248201879052871690638367080f90604401602060405180830381865afa1580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b9190611199565b90505b600061031a82896111b2565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c1fe3e486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039e91906111ec565b6001600160a01b03166319208451826040518263ffffffff1660e01b81526004016103cb91815260200190565b602060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611199565b98975050505050505050565b6104206109e7565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104aa9190611209565b506104b3610a5b565b5050565b6104c384848484610a87565b50505050565b6104d16109e7565b6104db6000610d26565b565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058d9190611209565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190611199565b6040518263ffffffff1660e01b815260040161065591815260200190565b600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b5050505061069384848484610a87565b5050505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611209565b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190611209565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea598cb0906024016020604051808303816000875af115801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611199565b50604051638367080f60e01b81526001600160a01b0382811660048301526024820184905260009190861690638367080f90604401602060405180830381865afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190611199565b90506109308584848461092b89610d8e565b610e33565b505050505050565b6109406109e7565b6001600160a01b0381166109db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6109e481610d26565b50565b6000546001600160a01b031633146104db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109d2565b60405133904780156108fc02916000818181858888f193505050501580156109e4573d6000803e3d6000fd5b604051638367080f60e01b81526001600160a01b038281166004830152602482018490524791600091871690638367080f90604401602060405180830381865afa158015610ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afd9190611199565b90506000610b0b82846111b2565b6040517fa1903eab0000000000000000000000000000000000000000000000000000000081523060048201529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab90839060240160206040518083038185885af1158015610b8e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb39190611199565b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190611209565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea598cb0906024016020604051808303816000875af1158015610ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c9190611199565b50610d1d8786868561092b8b610d8e565b50505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008115610e2c576040517f8cb84e180000000000000000000000000000000000000000000000000000000081523360048201526000602482015270893a26168158fbeadd9335be5bc96592e290638cb84e1890604401602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2691906111ec565b92915050565b5033919050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611199565b60405163095ea7b360e01b81526001600160a01b0388811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015610f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8e9190611209565b506040517f864f6a7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905260448201879052858116606483015287169063864f6a7a9085906084016000604051808303818588803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b5050505050610930610a5b565b6001600160a01b03811681146109e457600080fd5b80151581146109e457600080fd5b600080600080600060a0868803121561105e57600080fd5b85359450602086013561107081611023565b935060408601359250606086013561108781611023565b9150608086013561109781611038565b809150509295509295909350565b600080604083850312156110b857600080fd5b82356110c381611023565b946020939093013593505050565b600080600080608085870312156110e757600080fd5b84356110f281611023565b9350602085013561110281611038565b925060408501359150606085013561111981611023565b939692955090935050565b600080600080600060a0868803121561113c57600080fd5b85359450602086013561114e81611023565b9350604086013561115e81611038565b925060608601359150608086013561109781611023565b60006020828403121561118757600080fd5b813561119281611023565b9392505050565b6000602082840312156111ab57600080fd5b5051919050565b81810381811115610e26577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000602082840312156111fe57600080fd5b815161119281611023565b60006020828403121561121b57600080fd5b81516111928161103856fea2646970667358221220cef04dbeabeba88d18ce9a622f3de47885348ca945a596b126a87d776d3c0bee64736f6c63430008150033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0

Deployed Bytecode

0x6080604052600436106100cb5760003560e01c80637e902d5711610074578063bfb355e01161004e578063bfb355e01461022a578063c1fe3e481461023d578063f2fde38b1461027157600080fd5b80637e902d57146101d45780638da5cb5b146101f9578063a209849c1461021757600080fd5b80635705ae43116100a55780635705ae431461018a578063599c17fc146101ac578063715018a6146101bf57600080fd5b80633fc8cef3146100d75780634aa07e64146101285780634eb8182e1461015c57600080fd5b366100d257005b600080fd5b3480156100e357600080fd5b5061010b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561013457600080fd5b5061010b7f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081565b34801561016857600080fd5b5061017c610177366004611046565b610291565b60405190815260200161011f565b34801561019657600080fd5b506101aa6101a53660046110a5565b610418565b005b6101aa6101ba3660046110d1565b6104b7565b3480156101cb57600080fd5b506101aa6104c9565b3480156101e057600080fd5b5061010b70893a26168158fbeadd9335be5bc96592e281565b34801561020557600080fd5b506000546001600160a01b031661010b565b6101aa610225366004611124565b6104dd565b6101aa610238366004611124565b61069a565b34801561024957600080fd5b5061010b7f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8481565b34801561027d57600080fd5b506101aa61028c366004611175565b610938565b600080821561030e57604051638367080f60e01b81526001600160a01b03858116600483015260248201879052871690638367080f90604401602060405180830381865afa1580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b9190611199565b90505b600061031a82896111b2565b90507f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b031663c1fe3e486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039e91906111ec565b6001600160a01b03166319208451826040518263ffffffff1660e01b81526004016103cb91815260200190565b602060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611199565b98975050505050505050565b6104206109e7565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104aa9190611209565b506104b3610a5b565b5050565b6104c384848484610a87565b50505050565b6104d16109e7565b6104db6000610d26565b565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058d9190611209565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190611199565b6040518263ffffffff1660e01b815260040161065591815260200190565b600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b5050505061069384848484610a87565b5050505050565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe846001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611209565b5060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081166004830152602482018790527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063095ea7b3906044016020604051808303816000875af11580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190611209565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018690527f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b03169063ea598cb0906024016020604051808303816000875af115801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611199565b50604051638367080f60e01b81526001600160a01b0382811660048301526024820184905260009190861690638367080f90604401602060405180830381865afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109199190611199565b90506109308584848461092b89610d8e565b610e33565b505050505050565b6109406109e7565b6001600160a01b0381166109db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6109e481610d26565b50565b6000546001600160a01b031633146104db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109d2565b60405133904780156108fc02916000818181858888f193505050501580156109e4573d6000803e3d6000fd5b604051638367080f60e01b81526001600160a01b038281166004830152602482018490524791600091871690638367080f90604401602060405180830381865afa158015610ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afd9190611199565b90506000610b0b82846111b2565b6040517fa1903eab0000000000000000000000000000000000000000000000000000000081523060048201529091506001600160a01b037f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063a1903eab90839060240160206040518083038185885af1158015610b8e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb39190611199565b5060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca081166004830152602482018390527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84169063095ea7b3906044016020604051808303816000875af1158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190611209565b506040517fea598cb0000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b03169063ea598cb0906024016020604051808303816000875af1158015610ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c9190611199565b50610d1d8786868561092b8b610d8e565b50505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008115610e2c576040517f8cb84e180000000000000000000000000000000000000000000000000000000081523360048201526000602482015270893a26168158fbeadd9335be5bc96592e290638cb84e1890604401602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2691906111ec565b92915050565b5033919050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca06001600160a01b0316906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611199565b60405163095ea7b360e01b81526001600160a01b0388811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301529192507f0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca09091169063095ea7b3906044016020604051808303816000875af1158015610f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8e9190611209565b506040517f864f6a7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905260448201879052858116606483015287169063864f6a7a9085906084016000604051808303818588803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b5050505050610930610a5b565b6001600160a01b03811681146109e457600080fd5b80151581146109e457600080fd5b600080600080600060a0868803121561105e57600080fd5b85359450602086013561107081611023565b935060408601359250606086013561108781611023565b9150608086013561109781611038565b809150509295509295909350565b600080604083850312156110b857600080fd5b82356110c381611023565b946020939093013593505050565b600080600080608085870312156110e757600080fd5b84356110f281611023565b9350602085013561110281611038565b925060408501359150606085013561111981611023565b939692955090935050565b600080600080600060a0868803121561113c57600080fd5b85359450602086013561114e81611023565b9350604086013561115e81611038565b925060608601359150608086013561109781611023565b60006020828403121561118757600080fd5b813561119281611023565b9392505050565b6000602082840312156111ab57600080fd5b5051919050565b81810381811115610e26577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000602082840312156111fe57600080fd5b815161119281611023565b60006020828403121561121b57600080fd5b81516111928161103856fea2646970667358221220cef04dbeabeba88d18ce9a622f3de47885348ca945a596b126a87d776d3c0bee64736f6c63430008150033

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

000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0

-----Decoded View---------------
Arg [0] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _wstETH (address): 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.