ETH Price: $3,440.07 (-0.46%)
Gas: 2 Gwei

Contract

0x2766dC21ac3C0B15A2445e5e8033A47304f91fdF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040148688392022-05-29 21:40:26786 days ago1653860426IN
 Create: VaultDummyImplementation
0 ETH0.0219046926.101

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VaultDummyImplementation

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : v2.sol
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

contract UserModule {
    /**
     * @dev User function to supply.
     * @param token_ address of token.
     * @param amount_ amount to supply.
     * @param to_ address to send vTokens to.
     * @return vtokenAmount_ amount of vTokens sent to the `to_` address passed
     */
    function supply(
        address token_,
        uint256 amount_,
        address to_
    ) external returns (uint256 vtokenAmount_) {}

    /**
     * @dev User function to withdraw.
     * @param amount_ amount to withdraw.
     * @param to_ address to send tokens to.
     * @return vtokenAmount_ amount of vTokens burnt from caller
     */
    function withdraw(uint256 amount_, address to_)
        external
        returns (uint256 vtokenAmount_)
    {}

    /**
     * @dev If ratio is below then this function will allow anyone to swap from steth -> weth.
     * @param amt_ amount of stEth to swap for weth.
     */
    function leverage(uint256 amt_) external {}

    /**
     * @dev If ratio is above then this function will allow anyone to payback WETH and withdraw astETH to msg.sender at 1:1 ratio.
     * @param amt_ amount of weth to swap for steth.
     */
    function deleverage(uint256 amt_) external {}

    /**
     * @dev Function to allow users to max withdraw
     */
    function deleverageAndWithdraw(
        uint256 deleverageAmt_,
        uint256 withdrawAmount_,
        address to_
    ) external {}

    event supplyLog(
        uint256 amount_,
        address indexed caller_,
        address indexed to_
    );

    event withdrawLog(
        uint256 amount_,
        address indexed caller_,
        address indexed to_
    );

    event leverageLog(uint256 amt_, uint256 transferAmt_);

    event deleverageLog(uint256 amt_, uint256 transferAmt_);

    event deleverageAndWithdrawLog(
        uint256 deleverageAmt_,
        uint256 transferAmt_,
        uint256 vtokenAmount_,
        address to_
    );
}

contract RebalancerModule {
    /**
     * @dev low gas function just to collect profit.
     * @notice Collected the profit & leave it in the DSA itself to optimize further on gas.
     * @param isWeth what token to swap. WETH or stETH.
     * @param withdrawAmt_ need to borrow any weth amount or withdraw steth for swaps from Aave position.
     * @param amt_ amount to swap into base vault token.
     * @param unitAmt_ unit amount for swap.
     * @param oneInchData_ 1inch's data for the swaps.
     */
    function collectProfit(
        bool isWeth, // either weth or steth
        uint256 withdrawAmt_,
        uint256 amt_,
        uint256 unitAmt_,
        bytes memory oneInchData_
    ) external {}

    /**
     * @dev Rebalancer function to leverage and rebalance the position.
     */
    function rebalanceOne(
        address flashTkn_,
        uint256 flashAmt_,
        uint256 route_,
        address[] memory vaults_, // leverage using other vaults
        uint256[] memory amts_,
        uint256 leverageAmt_,
        uint256 swapAmt_, // 1inch's swap amount
        uint256 tokenSupplyAmt_,
        uint256 tokenWithdrawAmt_,
        uint256 unitAmt_,
        bytes memory oneInchData_
    ) external {}

    /**
     * @dev Rebalancer function for saving. To be run in times of making position less risky or to fill up the withdraw amount for users to exit
     */
    function rebalanceTwo(
        address flashTkn_,
        uint256 flashAmt_,
        uint256 route_,
        uint256 saveAmt_,
        uint256 tokenSupplyAmt_,
        uint256 unitAmt_,
        bytes memory oneInchData_
    ) external {}

    event collectProfitLog(
        bool isWeth,
        uint256 withdrawAmt_,
        uint256 amt_,
        uint256 unitAmt_
    );

    event rebalanceOneLog(
        address flashTkn_,
        uint256 flashAmt_,
        uint256 route_,
        address[] vaults_,
        uint256[] amts_,
        uint256 leverageAmt_,
        uint256 swapAmt_,
        uint256 tokenSupplyAmt_,
        uint256 tokenWithdrawAmt_,
        uint256 unitAmt_
    );

    event rebalanceTwoLog(
        address flashTkn_,
        uint256 flashAmt_,
        uint256 route_,
        uint256 saveAmt_,
        uint256 unitAmt_
    );
}

contract AdminModule {
    /**
     * @dev Update rebalancer.
     * @param rebalancer_ address of rebalancer.
     * @param isRebalancer_ true for setting the rebalancer, false for removing.
     */
    function updateRebalancer(address rebalancer_, bool isRebalancer_)
        external
    {}

    /**
     * @dev Update all fees.
     * @param revenueFee_ new revenue fee.
     * @param withdrawalFee_ new withdrawal fee.
     * @param swapFee_ new swap fee or leverage fee.
     * @param deleverageFee_ new deleverage fee.
     */
    function updateFees(
        uint256 revenueFee_,
        uint256 withdrawalFee_,
        uint256 swapFee_,
        uint256 deleverageFee_
    ) external {}

    /**
     * @dev Update ratios.
     * @param ratios_ new ratios.
     */
    function updateRatios(uint16[] memory ratios_) external {}

    /**
     * @dev Change status.
     * @param status_ new status, function to pause all functionality of the contract, status = 2 -> pause, status = 1 -> resume.
     */
    function changeStatus(uint256 status_) external {}

    /**
     * @dev Function to collect token revenue.
     * @param amount_ amount to claim
     * @param to_ address to send the claimed revenue to
     */
    function collectRevenue(uint256 amount_, address to_) external {}

    /**
     * @dev Function to collect eth revenue.
     * @param amount_ amount to claim
     * @param to_ address to send the claimed revenue to
     */
    function collectRevenueEth(uint256 amount_, address to_) external {}

    /**
     * @dev function to initialize variables
     */
    function initialize(
        string memory name_,
        string memory symbol_,
        address rebalancer_,
        address token_,
        address atoken_,
        uint256 revenueFee_,
        uint256 withdrawalFee_,
        uint256 idealExcessAmt_,
        uint16[] memory ratios_,
        uint256 swapFee_,
        uint256 saveSlippage_,
        uint256 deleverageFee_
    ) external {}

    event updateRebalancerLog(address auth_, bool isAuth_);

    event changeStatusLog(uint256 status_);

    event updateRatiosLog(
        uint16 maxLimit,
        uint16 maxLimitGap,
        uint16 minLimit,
        uint16 minLimitGap,
        uint16 stEthLimit,
        uint128 maxBorrowRate
    );

    event updateFeesLog(
        uint256 revenueFee_,
        uint256 withdrawalFee_,
        uint256 swapFee_,
        uint256 deleverageFee_
    );

    event collectRevenueLog(uint256 amount_, address to_);

    event collectRevenueEthLog(
        uint256 amount_,
        uint256 stethAmt_,
        uint256 wethAmt_,
        address to_
    );
}

contract ReadModule {
    function isRebalancer(address accountAddr_) public view returns (bool) {}

    /**
     * @dev Base token of the vault
     */
    function token() public view returns (address) {}

    /**
     * @dev Minimum token limit used inside the functions
     */
    function tokenMinLimit() public view returns (uint256) {}

    /**
     * @dev atoken of the base token of the vault
     */
    function atoken() public view returns (address) {}

    /**
     * @dev DSA for this particular vault
     */
    function vaultDsa() public view returns (address) {}

    struct Ratios {
        uint16 maxLimit; // Above this withdrawals are not allowed
        uint16 maxLimitGap;
        uint16 minLimit; // After leverage the ratio should be below minLimit & above minLimitGap
        uint16 minLimitGap;
        uint16 stEthLimit; // if 7500. Meaning stETH collateral covers 75% of the ETH debt. Excess ETH will be covered by token limit.
        // send borrow rate in 4 decimals from UI. In the smart contract it'll convert to 27 decimals which where is 100%
        uint128 maxBorrowRate; // maximum borrow rate above this leveraging should not happen
    }

    /**
     * @dev Ratios to set particular limits on leveraging, saving and risks of the vault.
     */
    function ratios() public view returns (Ratios memory) {}

    /**
     * @dev last stored revenue exchange price
     */
    function lastRevenueExchangePrice() public view returns (uint256) {}

    /**
     * @dev cut to take from the profits
     */
    function revenueFee() public view returns (uint256) {}

    /**
     * @dev base token revenue stored in the vault
     */
    function revenue() public view returns (uint256) {}

    /**
     * @dev ETH revenue stored in the vault
     */
    function revenueEth() public view returns (uint256) {}

    /**
     * @dev Withdrawl Fee of the vault
     */
    function withdrawalFee() public view returns (uint256) {}

    /**
     * @dev extra eth/stETH amount to leave in the vault for easier swaps.
     */
    function idealExcessAmt() public view returns (uint256) {}

    /**
     * @dev Fees of leverage swaps.
     */
    function swapFee() public view returns (uint256) {}

    /**
     * @dev Max allowed slippage at the time of saving the vault
     */
    function saveSlippage() public view returns (uint256) {}

    /**
     * @dev Fees of deleverage swaps.
     */
    function deleverageFee() public view returns (uint256) {}
}

contract SecurityModule {
    /**
     * @dev Admin Spell function
     * @param to_ target address
     * @param calldata_ function calldata
     * @param value_ function msg.value
     * @param operation_ .call or .delegate. (0 => .call, 1 => .delegateCall)
     */
    function spell(
        address to_,
        bytes memory calldata_,
        uint256 value_,
        uint256 operation_
    ) external payable {}

    /**
     * @dev Admin function to add auth on DSA
     * @param auth_ new auth address for DSA
     */
    function addDSAAuth(address auth_) external {}
}

contract HelperReadFunctions {
    /**
     * @dev Helper function to token balances of everywhere.
     */
    function getVaultBalances()
        public
        view
        returns (
            uint256 tokenCollateralAmt_,
            uint256 stethCollateralAmt_,
            uint256 wethDebtAmt_,
            uint256 tokenVaultBal_,
            uint256 tokenDSABal_,
            uint256 netTokenBal_
        )
    {}

    // returns net eth. net stETH + ETH - net ETH debt.
    function getNewProfits() public view returns (uint256 profits_) {}

    /**
     * @dev Helper function to get current exchange price and new revenue generated.
     */
    function getCurrentExchangePrice()
        public
        view
        returns (uint256 exchangePrice_, uint256 newTokenRevenue_)
    {}
}

contract ERC20Functions {
    function decimals() public view returns (uint8) {}

    function totalSupply() external view returns (uint256) {}

    function balanceOf(address account) external view returns (uint256) {}

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool) {}

    function name() external view returns (string memory) {}

    function symbol() external view returns (string memory) {}

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract VaultDummyImplementation is
    UserModule,
    RebalancerModule,
    AdminModule,
    ReadModule,
    SecurityModule,
    HelperReadFunctions,
    ERC20Functions
{
    receive() external payable {}
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"status_","type":"uint256"}],"name":"changeStatusLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isWeth","type":"bool"},{"indexed":false,"internalType":"uint256","name":"withdrawAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unitAmt_","type":"uint256"}],"name":"collectProfitLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stethAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wethAmt_","type":"uint256"},{"indexed":false,"internalType":"address","name":"to_","type":"address"}],"name":"collectRevenueEthLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":false,"internalType":"address","name":"to_","type":"address"}],"name":"collectRevenueLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"deleverageAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"vtokenAmount_","type":"uint256"},{"indexed":false,"internalType":"address","name":"to_","type":"address"}],"name":"deleverageAndWithdrawLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferAmt_","type":"uint256"}],"name":"deleverageLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferAmt_","type":"uint256"}],"name":"leverageLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"flashTkn_","type":"address"},{"indexed":false,"internalType":"uint256","name":"flashAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"route_","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"vaults_","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amts_","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"leverageAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"swapAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenSupplyAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenWithdrawAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unitAmt_","type":"uint256"}],"name":"rebalanceOneLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"flashTkn_","type":"address"},{"indexed":false,"internalType":"uint256","name":"flashAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"route_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"saveAmt_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unitAmt_","type":"uint256"}],"name":"rebalanceTwoLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":true,"internalType":"address","name":"caller_","type":"address"},{"indexed":true,"internalType":"address","name":"to_","type":"address"}],"name":"supplyLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"revenueFee_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"withdrawalFee_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"swapFee_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deleverageFee_","type":"uint256"}],"name":"updateFeesLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"maxLimit","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"maxLimitGap","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"minLimit","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"minLimitGap","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"stEthLimit","type":"uint16"},{"indexed":false,"internalType":"uint128","name":"maxBorrowRate","type":"uint128"}],"name":"updateRatiosLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"auth_","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuth_","type":"bool"}],"name":"updateRebalancerLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"},{"indexed":true,"internalType":"address","name":"caller_","type":"address"},{"indexed":true,"internalType":"address","name":"to_","type":"address"}],"name":"withdrawLog","type":"event"},{"inputs":[{"internalType":"address","name":"auth_","type":"address"}],"name":"addDSAAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"atoken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"status_","type":"uint256"}],"name":"changeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isWeth","type":"bool"},{"internalType":"uint256","name":"withdrawAmt_","type":"uint256"},{"internalType":"uint256","name":"amt_","type":"uint256"},{"internalType":"uint256","name":"unitAmt_","type":"uint256"},{"internalType":"bytes","name":"oneInchData_","type":"bytes"}],"name":"collectProfit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"}],"name":"collectRevenue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"}],"name":"collectRevenueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt_","type":"uint256"}],"name":"deleverage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"deleverageAmt_","type":"uint256"},{"internalType":"uint256","name":"withdrawAmount_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"}],"name":"deleverageAndWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleverageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentExchangePrice","outputs":[{"internalType":"uint256","name":"exchangePrice_","type":"uint256"},{"internalType":"uint256","name":"newTokenRevenue_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNewProfits","outputs":[{"internalType":"uint256","name":"profits_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVaultBalances","outputs":[{"internalType":"uint256","name":"tokenCollateralAmt_","type":"uint256"},{"internalType":"uint256","name":"stethCollateralAmt_","type":"uint256"},{"internalType":"uint256","name":"wethDebtAmt_","type":"uint256"},{"internalType":"uint256","name":"tokenVaultBal_","type":"uint256"},{"internalType":"uint256","name":"tokenDSABal_","type":"uint256"},{"internalType":"uint256","name":"netTokenBal_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idealExcessAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"rebalancer_","type":"address"},{"internalType":"address","name":"token_","type":"address"},{"internalType":"address","name":"atoken_","type":"address"},{"internalType":"uint256","name":"revenueFee_","type":"uint256"},{"internalType":"uint256","name":"withdrawalFee_","type":"uint256"},{"internalType":"uint256","name":"idealExcessAmt_","type":"uint256"},{"internalType":"uint16[]","name":"ratios_","type":"uint16[]"},{"internalType":"uint256","name":"swapFee_","type":"uint256"},{"internalType":"uint256","name":"saveSlippage_","type":"uint256"},{"internalType":"uint256","name":"deleverageFee_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accountAddr_","type":"address"}],"name":"isRebalancer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRevenueExchangePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt_","type":"uint256"}],"name":"leverage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ratios","outputs":[{"components":[{"internalType":"uint16","name":"maxLimit","type":"uint16"},{"internalType":"uint16","name":"maxLimitGap","type":"uint16"},{"internalType":"uint16","name":"minLimit","type":"uint16"},{"internalType":"uint16","name":"minLimitGap","type":"uint16"},{"internalType":"uint16","name":"stEthLimit","type":"uint16"},{"internalType":"uint128","name":"maxBorrowRate","type":"uint128"}],"internalType":"struct ReadModule.Ratios","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"flashTkn_","type":"address"},{"internalType":"uint256","name":"flashAmt_","type":"uint256"},{"internalType":"uint256","name":"route_","type":"uint256"},{"internalType":"address[]","name":"vaults_","type":"address[]"},{"internalType":"uint256[]","name":"amts_","type":"uint256[]"},{"internalType":"uint256","name":"leverageAmt_","type":"uint256"},{"internalType":"uint256","name":"swapAmt_","type":"uint256"},{"internalType":"uint256","name":"tokenSupplyAmt_","type":"uint256"},{"internalType":"uint256","name":"tokenWithdrawAmt_","type":"uint256"},{"internalType":"uint256","name":"unitAmt_","type":"uint256"},{"internalType":"bytes","name":"oneInchData_","type":"bytes"}],"name":"rebalanceOne","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"flashTkn_","type":"address"},{"internalType":"uint256","name":"flashAmt_","type":"uint256"},{"internalType":"uint256","name":"route_","type":"uint256"},{"internalType":"uint256","name":"saveAmt_","type":"uint256"},{"internalType":"uint256","name":"tokenSupplyAmt_","type":"uint256"},{"internalType":"uint256","name":"unitAmt_","type":"uint256"},{"internalType":"bytes","name":"oneInchData_","type":"bytes"}],"name":"rebalanceTwo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revenueEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revenueFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saveSlippage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"bytes","name":"calldata_","type":"bytes"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"uint256","name":"operation_","type":"uint256"}],"name":"spell","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"}],"name":"supply","outputs":[{"internalType":"uint256","name":"vtokenAmount_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenMinLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"revenueFee_","type":"uint256"},{"internalType":"uint256","name":"withdrawalFee_","type":"uint256"},{"internalType":"uint256","name":"swapFee_","type":"uint256"},{"internalType":"uint256","name":"deleverageFee_","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"ratios_","type":"uint16[]"}],"name":"updateRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rebalancer_","type":"address"},{"internalType":"bool","name":"isRebalancer_","type":"bool"}],"name":"updateRebalancer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultDsa","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"vtokenAmount_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50610e3a806100206000396000f3fe60806040526004361061026a5760003560e01c80637c37411c11610144578063b0037ada116100b6578063d4d544d01161007a578063d4d544d014610314578063d96ac74c146105e2578063dc935698146103ed578063dd62ed3e1461060b578063e8025d77146104f6578063fc0c546a146103ed57600080fd5b8063b0037ada14610468578063c6616ba114610511578063cc4a01581461052c578063cf6d625e1461054d578063d3f852fd1461031457600080fd5b80639fdabec2116101085780639fdabec2146104f6578063a293b0cd146103ed578063a4c6c1e014610314578063a9059cbb146102c8578063aa1a59e214610314578063acd431a8146104f657600080fd5b80637c37411c146104c05780638b2a4df5146104db5780638bc7e8c414610314578063922a167c1461031457806395d89b41146102ac57600080fd5b8063313ce567116101dd578063467c9eff116101a1578063467c9eff1461042957806354cf2aeb14610314578063590ee3461461044a5780635c87743a1461046857806370a082311461048357806372e518c21461049e57600080fd5b8063313ce567146103ed57806336bd1f2f1461031457806336e4ec64146103145780633b3fdb5c146104095780633e9491a21461031457600080fd5b806315ff627d1161022f57806315ff627d1461032857806318160ddd14610314578063223706851461033c5780632391f3c11461037d57806323b872dd146103a157806325258d0c146103c557600080fd5b8062f714ce1461027657806306fdde03146102ac578063095ea7b3146102c85780630de30836146102f35780630f9775d51461031457600080fd5b3661027157005b600080fd5b34801561028257600080fd5b50610299610291366004610cc3565b600092915050565b6040519081526020015b60405180910390f35b3480156102b857600080fd5b5060606040516102a39190610d44565b3480156102d457600080fd5b506102e3610291366004610932565b60405190151581526020016102a3565b3480156102ff57600080fd5b5061031261030e3660046108aa565b5050565b005b34801561032057600080fd5b506000610299565b6103126103363660046108d4565b50505050565b34801561034857600080fd5b5060008080808080604080519687526020870195909552938501929092526060840152608083015260a082015260c0016102a3565b34801561038957600080fd5b50610312610398366004610a7d565b50505050505050565b3480156103ad57600080fd5b506102e36103bc36600461086e565b60009392505050565b3480156103d157600080fd5b506103126103e0366004610998565b5050505050505050505050565b3480156103f957600080fd5b50604051600081526020016102a3565b34801561041557600080fd5b50610312610424366004610ce6565b505050565b34801561043557600080fd5b506102e3610444366004610819565b50600090565b34801561045657600080fd5b50610312610465366004610819565b50565b34801561047457600080fd5b5061031261030e366004610cc3565b34801561048f57600080fd5b50610299610444366004610819565b3480156104aa57600080fd5b506103126104b9366004610b38565b5050505050565b3480156104cc57600080fd5b50610312610465366004610afb565b3480156104e757600080fd5b506102996103bc36600461095c565b34801561050257600080fd5b50610312610465366004610caa565b34801561051d57600080fd5b50610312610336366004610d12565b34801561053857600080fd5b506040805160008082526020820152016102a3565b34801561055957600080fd5b506040805160c08082018352600080835260208084018281528486018381526060808701858152608080890187815260a0998a018881528b51988952955161ffff90811697890197909752935186169987019990995251841690850152519091169482019490945292516fffffffffffffffffffffffffffffffff1691830191909152016102a3565b3480156105ee57600080fd5b506103126105fd366004610ba3565b505050505050505050505050565b34801561061757600080fd5b5061029961029136600461083b565b80356001600160a01b038116811461063d57600080fd5b919050565b600082601f83011261065357600080fd5b8135602061066861066383610dca565b610d99565b80838252828201915082860187848660051b890101111561068857600080fd5b60005b858110156106ae5761069c82610626565b8452928401929084019060010161068b565b5090979650505050505050565b600082601f8301126106cc57600080fd5b813560206106dc61066383610dca565b80838252828201915082860187848660051b89010111156106fc57600080fd5b6000805b8681101561072b57823561ffff81168114610719578283fd5b85529385019391850191600101610700565b509198975050505050505050565b600082601f83011261074a57600080fd5b8135602061075a61066383610dca565b80838252828201915082860187848660051b890101111561077a57600080fd5b60005b858110156106ae5781358452928401929084019060010161077d565b8035801515811461063d57600080fd5b600082601f8301126107ba57600080fd5b813567ffffffffffffffff8111156107d4576107d4610dee565b6107e7601f8201601f1916602001610d99565b8181528460208386010111156107fc57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561082b57600080fd5b61083482610626565b9392505050565b6000806040838503121561084e57600080fd5b61085783610626565b915061086560208401610626565b90509250929050565b60008060006060848603121561088357600080fd5b61088c84610626565b925061089a60208501610626565b9150604084013590509250925092565b600080604083850312156108bd57600080fd5b6108c683610626565b915061086560208401610799565b600080600080608085870312156108ea57600080fd5b6108f385610626565b9350602085013567ffffffffffffffff81111561090f57600080fd5b61091b878288016107a9565b949794965050505060408301359260600135919050565b6000806040838503121561094557600080fd5b61094e83610626565b946020939093013593505050565b60008060006060848603121561097157600080fd5b61097a84610626565b92506020840135915061098f60408501610626565b90509250925092565b60008060008060008060008060008060006101608c8e0312156109ba57600080fd5b6109c38c610626565b9a5060208c0135995060408c0135985067ffffffffffffffff8060608e013511156109ed57600080fd5b6109fd8e60608f01358f01610642565b98508060808e01351115610a1057600080fd5b610a208e60808f01358f01610739565b975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d01359250806101408e01351115610a5957600080fd5b50610a6b8d6101408e01358e016107a9565b90509295989b509295989b9093969950565b600080600080600080600060e0888a031215610a9857600080fd5b610aa188610626565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff811115610ae057600080fd5b610aec8a828b016107a9565b91505092959891949750929550565b600060208284031215610b0d57600080fd5b813567ffffffffffffffff811115610b2457600080fd5b610b30848285016106bb565b949350505050565b600080600080600060a08688031215610b5057600080fd5b610b5986610799565b9450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115610b8a57600080fd5b610b96888289016107a9565b9150509295509295909350565b6000806000806000806000806000806000806101808d8f031215610bc657600080fd5b67ffffffffffffffff8d351115610bdc57600080fd5b610be98e8e358f016107a9565b9b5067ffffffffffffffff60208e01351115610c0457600080fd5b610c148e60208f01358f016107a9565b9a50610c2260408e01610626565b9950610c3060608e01610626565b9850610c3e60808e01610626565b975060a08d0135965060c08d0135955060e08d0135945067ffffffffffffffff6101008e01351115610c6f57600080fd5b610c808e6101008f01358f016106bb565b93506101208d013592506101408d013591506101608d013590509295989b509295989b509295989b565b600060208284031215610cbc57600080fd5b5035919050565b60008060408385031215610cd657600080fd5b8235915061086560208401610626565b600080600060608486031215610cfb57600080fd5b833592506020840135915061098f60408501610626565b60008060008060808587031215610d2857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015610d7157858101830151858201604001528201610d55565b81811115610d83576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610dc257610dc2610dee565b604052919050565b600067ffffffffffffffff821115610de457610de4610dee565b5060051b60200190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b79e67e5266f8f3497be807022c80c1afca10e46782dc5254ed90f9f0957c97964736f6c63430008060033

Deployed Bytecode

0x60806040526004361061026a5760003560e01c80637c37411c11610144578063b0037ada116100b6578063d4d544d01161007a578063d4d544d014610314578063d96ac74c146105e2578063dc935698146103ed578063dd62ed3e1461060b578063e8025d77146104f6578063fc0c546a146103ed57600080fd5b8063b0037ada14610468578063c6616ba114610511578063cc4a01581461052c578063cf6d625e1461054d578063d3f852fd1461031457600080fd5b80639fdabec2116101085780639fdabec2146104f6578063a293b0cd146103ed578063a4c6c1e014610314578063a9059cbb146102c8578063aa1a59e214610314578063acd431a8146104f657600080fd5b80637c37411c146104c05780638b2a4df5146104db5780638bc7e8c414610314578063922a167c1461031457806395d89b41146102ac57600080fd5b8063313ce567116101dd578063467c9eff116101a1578063467c9eff1461042957806354cf2aeb14610314578063590ee3461461044a5780635c87743a1461046857806370a082311461048357806372e518c21461049e57600080fd5b8063313ce567146103ed57806336bd1f2f1461031457806336e4ec64146103145780633b3fdb5c146104095780633e9491a21461031457600080fd5b806315ff627d1161022f57806315ff627d1461032857806318160ddd14610314578063223706851461033c5780632391f3c11461037d57806323b872dd146103a157806325258d0c146103c557600080fd5b8062f714ce1461027657806306fdde03146102ac578063095ea7b3146102c85780630de30836146102f35780630f9775d51461031457600080fd5b3661027157005b600080fd5b34801561028257600080fd5b50610299610291366004610cc3565b600092915050565b6040519081526020015b60405180910390f35b3480156102b857600080fd5b5060606040516102a39190610d44565b3480156102d457600080fd5b506102e3610291366004610932565b60405190151581526020016102a3565b3480156102ff57600080fd5b5061031261030e3660046108aa565b5050565b005b34801561032057600080fd5b506000610299565b6103126103363660046108d4565b50505050565b34801561034857600080fd5b5060008080808080604080519687526020870195909552938501929092526060840152608083015260a082015260c0016102a3565b34801561038957600080fd5b50610312610398366004610a7d565b50505050505050565b3480156103ad57600080fd5b506102e36103bc36600461086e565b60009392505050565b3480156103d157600080fd5b506103126103e0366004610998565b5050505050505050505050565b3480156103f957600080fd5b50604051600081526020016102a3565b34801561041557600080fd5b50610312610424366004610ce6565b505050565b34801561043557600080fd5b506102e3610444366004610819565b50600090565b34801561045657600080fd5b50610312610465366004610819565b50565b34801561047457600080fd5b5061031261030e366004610cc3565b34801561048f57600080fd5b50610299610444366004610819565b3480156104aa57600080fd5b506103126104b9366004610b38565b5050505050565b3480156104cc57600080fd5b50610312610465366004610afb565b3480156104e757600080fd5b506102996103bc36600461095c565b34801561050257600080fd5b50610312610465366004610caa565b34801561051d57600080fd5b50610312610336366004610d12565b34801561053857600080fd5b506040805160008082526020820152016102a3565b34801561055957600080fd5b506040805160c08082018352600080835260208084018281528486018381526060808701858152608080890187815260a0998a018881528b51988952955161ffff90811697890197909752935186169987019990995251841690850152519091169482019490945292516fffffffffffffffffffffffffffffffff1691830191909152016102a3565b3480156105ee57600080fd5b506103126105fd366004610ba3565b505050505050505050505050565b34801561061757600080fd5b5061029961029136600461083b565b80356001600160a01b038116811461063d57600080fd5b919050565b600082601f83011261065357600080fd5b8135602061066861066383610dca565b610d99565b80838252828201915082860187848660051b890101111561068857600080fd5b60005b858110156106ae5761069c82610626565b8452928401929084019060010161068b565b5090979650505050505050565b600082601f8301126106cc57600080fd5b813560206106dc61066383610dca565b80838252828201915082860187848660051b89010111156106fc57600080fd5b6000805b8681101561072b57823561ffff81168114610719578283fd5b85529385019391850191600101610700565b509198975050505050505050565b600082601f83011261074a57600080fd5b8135602061075a61066383610dca565b80838252828201915082860187848660051b890101111561077a57600080fd5b60005b858110156106ae5781358452928401929084019060010161077d565b8035801515811461063d57600080fd5b600082601f8301126107ba57600080fd5b813567ffffffffffffffff8111156107d4576107d4610dee565b6107e7601f8201601f1916602001610d99565b8181528460208386010111156107fc57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561082b57600080fd5b61083482610626565b9392505050565b6000806040838503121561084e57600080fd5b61085783610626565b915061086560208401610626565b90509250929050565b60008060006060848603121561088357600080fd5b61088c84610626565b925061089a60208501610626565b9150604084013590509250925092565b600080604083850312156108bd57600080fd5b6108c683610626565b915061086560208401610799565b600080600080608085870312156108ea57600080fd5b6108f385610626565b9350602085013567ffffffffffffffff81111561090f57600080fd5b61091b878288016107a9565b949794965050505060408301359260600135919050565b6000806040838503121561094557600080fd5b61094e83610626565b946020939093013593505050565b60008060006060848603121561097157600080fd5b61097a84610626565b92506020840135915061098f60408501610626565b90509250925092565b60008060008060008060008060008060006101608c8e0312156109ba57600080fd5b6109c38c610626565b9a5060208c0135995060408c0135985067ffffffffffffffff8060608e013511156109ed57600080fd5b6109fd8e60608f01358f01610642565b98508060808e01351115610a1057600080fd5b610a208e60808f01358f01610739565b975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d01359250806101408e01351115610a5957600080fd5b50610a6b8d6101408e01358e016107a9565b90509295989b509295989b9093969950565b600080600080600080600060e0888a031215610a9857600080fd5b610aa188610626565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff811115610ae057600080fd5b610aec8a828b016107a9565b91505092959891949750929550565b600060208284031215610b0d57600080fd5b813567ffffffffffffffff811115610b2457600080fd5b610b30848285016106bb565b949350505050565b600080600080600060a08688031215610b5057600080fd5b610b5986610799565b9450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115610b8a57600080fd5b610b96888289016107a9565b9150509295509295909350565b6000806000806000806000806000806000806101808d8f031215610bc657600080fd5b67ffffffffffffffff8d351115610bdc57600080fd5b610be98e8e358f016107a9565b9b5067ffffffffffffffff60208e01351115610c0457600080fd5b610c148e60208f01358f016107a9565b9a50610c2260408e01610626565b9950610c3060608e01610626565b9850610c3e60808e01610626565b975060a08d0135965060c08d0135955060e08d0135945067ffffffffffffffff6101008e01351115610c6f57600080fd5b610c808e6101008f01358f016106bb565b93506101208d013592506101408d013591506101608d013590509295989b509295989b509295989b565b600060208284031215610cbc57600080fd5b5035919050565b60008060408385031215610cd657600080fd5b8235915061086560208401610626565b600080600060608486031215610cfb57600080fd5b833592506020840135915061098f60408501610626565b60008060008060808587031215610d2857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015610d7157858101830151858201604001528201610d55565b81811115610d83576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610dc257610dc2610dee565b604052919050565b600067ffffffffffffffff821115610de457610de4610dee565b5060051b60200190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b79e67e5266f8f3497be807022c80c1afca10e46782dc5254ed90f9f0957c97964736f6c63430008060033

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  ]

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.