Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x67C472fdD2851666aBE99B1Ec0F091cE3e06c365
Balance 0 ETH
Nonce 1
Code Size 1387 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

1387 bytes
0x608060405234801561001057600080fd5b50600436106100415760003560e01c806310d1e85c1461004657806339b37ab0146100d45780633d57b2a914610103575b600080fd5b6100d26004803603608081101561005c57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561009357600080fd5b8201836020820111156100a557600080fd5b803590602001918460018302840111640100000000831117156100c757600080fd5b50909250905061012c565b005b6100f1600480360360208110156100ea57600080fd5b50356102c3565b60408051918252519081900360200190f35b6100d26004803603606081101561011957600080fd5b5080359060208101359060400135610389565b738e595470ed749b85c6f7669de83eae304c2ec68f6001600160a01b031663a0712d68856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561018657600080fd5b505af115801561019a573d6000803e3d6000fd5b505050506000828260208110156101b057600080fd5b506040805163317afabb60e21b815291356004830181905290519092507341c84c0e2ee0b740cf0d31f63f3b6f627dc6b3939163c5ebeaec91602480830192600092919082900301818387803b15801561020957600080fd5b505af115801561021d573d6000803e3d6000fd5b50506040805163a9059cbb60e01b815273c3d03e4f041fd4cd388c549ee2a29a9e5075882f600482015260248101859052905173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935063a9059cbb925060448083019260209291908290030181600087803b15801561028f57600080fd5b505af11580156102a3573d6000803e3d6000fd5b505050506040513d60208110156102b957600080fd5b5050505050505050565b600080600073c3d03e4f041fd4cd388c549ee2a29a9e5075882f6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561031557600080fd5b505afa158015610329573d6000803e3d6000fd5b505050506040513d606081101561033f57600080fd5b50805160209091015190925090506dffffffffffffffffffffffffffff80821685026103e8029083168590036103e502600081838161037a57fe5b04600101979650505050505050565b6000546001600160a01b031633146103a057600080fd5b604080516323b872dd60e01b8152336004820152306024820152604481018390529051737589c9e17bcfce1ccaa1f921196fda177f0207fc916323b872dd9160648083019260209291908290030181600087803b15801561040057600080fd5b505af1158015610414573d6000803e3d6000fd5b505050506040513d602081101561042a57600080fd5b50506040805160208181018590528251808303820181528284019384905263022c0d9f60e01b909352604482018681526000606484018190523060848501819052608060a48601908152865160c4870152865173c3d03e4f041fd4cd388c549ee2a29a9e5075882f9763022c0d9f978c97959694959194939260e4909101918501908083838a5b838110156104c95781810151838201526020016104b1565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561051857600080fd5b505af115801561052c573d6000803e3d6000fd5b5050505050505056fea2646970667358221220d162787e0511e61cb8fcff735774f00626c9ca7d8d3cbf52505f8cc5872ab97264736f6c63430007060033

Verified Source Code Full Match

Compiler: v0.7.6+commit.7338295f EVM: istanbul Optimization: Yes (200 runs)
lev.sol 77 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.5;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

interface ISushiswapV2Pair {
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function sync() external;
}

interface IComptroller {
    function enterMarkets(address[] memory cTokens) external;
}

interface cyToken {
    function borrow(uint) external;
    function mint(uint) external;
    function redeem(uint) external;
    function repayBorrow(uint) external;
}

contract xVault {
    
    address owner;
    
    IComptroller constant COMPTROLLER = IComptroller(0xAB1c342C7bf5Ec5F02ADEA1c2270670bCa144CbB); 
    address constant cyDAI = address(0x8e595470Ed749b85C6F7669de83EAe304C2ec68F);
    address constant cyWETH = address(0x41c84c0e2EE0b740Cf0d31F63f3B6F627DC6b393);
    address constant cyY3CRV = address(0x7589C9E17BCFcE1Ccaa1f921196FDa177F0207Fc);
    ISushiswapV2Pair constant WETHDAI = ISushiswapV2Pair(0xC3D03e4F041Fd4cD388c549Ee2A29a9E5075882f);
    address constant WETH = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
    address constant DAI = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);
    
    constructor() {
        owner = msg.sender;
        address[] memory _markets = new address[](3);
        _markets[0] = cyDAI;
        _markets[1] = cyWETH;
        _markets[2] = cyY3CRV;
        COMPTROLLER.enterMarkets(_markets);
        IERC20(DAI).approve(cyDAI, uint(-1));
    }
    
    function open(uint dai, uint weth, uint mamt) external {
        require(owner == msg.sender);
        IERC20(cyY3CRV).transferFrom(msg.sender, address(this), mamt);
        WETHDAI.swap(dai, 0, address(this), abi.encode(weth));
    }
    
    function fee(uint amount0) external view returns (uint) {
        (uint112 daiReserves, uint112 wethReserves,) = WETHDAI.getReserves();
        uint numerator = wethReserves * amount0 * 1000;
        uint denominator = (daiReserves - amount0) * 997;
        uint wethAmount = numerator / denominator + 1;
        return wethAmount;
    }
    
    function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external {
        cyToken(cyDAI).mint(amount0);
        (uint repay) = abi.decode(data, (uint));
        cyToken(cyWETH).borrow(repay);
        IERC20(WETH).transfer(address(WETHDAI), repay);
    }
    
    
}

Read Contract

fee 0x39b37ab0 → uint256

Write Contract 2 functions

These functions modify contract state and require a wallet transaction to execute.

open 0x3d57b2a9
uint256 dai
uint256 weth
uint256 mamt
uniswapV2Call 0x10d1e85c
address sender
uint256 amount0
uint256 amount1
bytes data

Recent Transactions

No transactions found for this address