false
true
0

Contract Address Details

0x2766dC21ac3C0B15A2445e5e8033A47304f91fdF

Contract Name
VaultDummyImplementation
Creator
0x85b40e–837fc5 at 0xda17bc–4f5d02
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
26505130
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
VaultDummyImplementation




Optimization enabled
true
Compiler version
v0.8.6+commit.11564f7e




Optimization runs
200
EVM Version
berlin




Verified at
2026-05-11T18:10:40.441336Z

contracts/dummyImplementations/mainnet/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 {}
}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"berlin","compilationTarget":{"contracts/dummyImplementations/mainnet/v2.sol":"VaultDummyImplementation"}}
              

Contract ABI

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

Contract Creation Code

0x608060405234801561001057600080fd5b50610e3a806100206000396000f3fe60806040526004361061026a5760003560e01c80637c37411c11610144578063b0037ada116100b6578063d4d544d01161007a578063d4d544d014610314578063d96ac74c146105e2578063dc935698146103ed578063dd62ed3e1461060b578063e8025d77146104f6578063fc0c546a146103ed57600080fd5b8063b0037ada14610468578063c6616ba114610511578063cc4a01581461052c578063cf6d625e1461054d578063d3f852fd1461031457600080fd5b80639fdabec2116101085780639fdabec2146104f6578063a293b0cd146103ed578063a4c6c1e014610314578063a9059cbb146102c8578063aa1a59e214610314578063acd431a8146104f657600080fd5b80637c37411c146104c05780638b2a4df5146104db5780638bc7e8c414610314578063922a167c1461031457806395d89b41146102ac57600080fd5b8063313ce567116101dd578063467c9eff116101a1578063467c9eff1461042957806354cf2aeb14610314578063590ee3461461044a5780635c87743a1461046857806370a082311461048357806372e518c21461049e57600080fd5b8063313ce567146103ed57806336bd1f2f1461031457806336e4ec64146103145780633b3fdb5c146104095780633e9491a21461031457600080fd5b806315ff627d1161022f57806315ff627d1461032857806318160ddd14610314578063223706851461033c5780632391f3c11461037d57806323b872dd146103a157806325258d0c146103c557600080fd5b8062f714ce1461027657806306fdde03146102ac578063095ea7b3146102c85780630de30836146102f35780630f9775d51461031457600080fd5b3661027157005b600080fd5b34801561028257600080fd5b50610299610291366004610cc3565b600092915050565b6040519081526020015b60405180910390f35b3480156102b857600080fd5b5060606040516102a39190610d44565b3480156102d457600080fd5b506102e3610291366004610932565b60405190151581526020016102a3565b3480156102ff57600080fd5b5061031261030e3660046108aa565b5050565b005b34801561032057600080fd5b506000610299565b6103126103363660046108d4565b50505050565b34801561034857600080fd5b5060008080808080604080519687526020870195909552938501929092526060840152608083015260a082015260c0016102a3565b34801561038957600080fd5b50610312610398366004610a7d565b50505050505050565b3480156103ad57600080fd5b506102e36103bc36600461086e565b60009392505050565b3480156103d157600080fd5b506103126103e0366004610998565b5050505050505050505050565b3480156103f957600080fd5b50604051600081526020016102a3565b34801561041557600080fd5b50610312610424366004610ce6565b505050565b34801561043557600080fd5b506102e3610444366004610819565b50600090565b34801561045657600080fd5b50610312610465366004610819565b50565b34801561047457600080fd5b5061031261030e366004610cc3565b34801561048f57600080fd5b50610299610444366004610819565b3480156104aa57600080fd5b506103126104b9366004610b38565b5050505050565b3480156104cc57600080fd5b50610312610465366004610afb565b3480156104e757600080fd5b506102996103bc36600461095c565b34801561050257600080fd5b50610312610465366004610caa565b34801561051d57600080fd5b50610312610336366004610d12565b34801561053857600080fd5b506040805160008082526020820152016102a3565b34801561055957600080fd5b506040805160c08082018352600080835260208084018281528486018381526060808701858152608080890187815260a0998a018881528b51988952955161ffff90811697890197909752935186169987019990995251841690850152519091169482019490945292516fffffffffffffffffffffffffffffffff1691830191909152016102a3565b3480156105ee57600080fd5b506103126105fd366004610ba3565b505050505050505050505050565b34801561061757600080fd5b5061029961029136600461083b565b80356001600160a01b038116811461063d57600080fd5b919050565b600082601f83011261065357600080fd5b8135602061066861066383610dca565b610d99565b80838252828201915082860187848660051b890101111561068857600080fd5b60005b858110156106ae5761069c82610626565b8452928401929084019060010161068b565b5090979650505050505050565b600082601f8301126106cc57600080fd5b813560206106dc61066383610dca565b80838252828201915082860187848660051b89010111156106fc57600080fd5b6000805b8681101561072b57823561ffff81168114610719578283fd5b85529385019391850191600101610700565b509198975050505050505050565b600082601f83011261074a57600080fd5b8135602061075a61066383610dca565b80838252828201915082860187848660051b890101111561077a57600080fd5b60005b858110156106ae5781358452928401929084019060010161077d565b8035801515811461063d57600080fd5b600082601f8301126107ba57600080fd5b813567ffffffffffffffff8111156107d4576107d4610dee565b6107e7601f8201601f1916602001610d99565b8181528460208386010111156107fc57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561082b57600080fd5b61083482610626565b9392505050565b6000806040838503121561084e57600080fd5b61085783610626565b915061086560208401610626565b90509250929050565b60008060006060848603121561088357600080fd5b61088c84610626565b925061089a60208501610626565b9150604084013590509250925092565b600080604083850312156108bd57600080fd5b6108c683610626565b915061086560208401610799565b600080600080608085870312156108ea57600080fd5b6108f385610626565b9350602085013567ffffffffffffffff81111561090f57600080fd5b61091b878288016107a9565b949794965050505060408301359260600135919050565b6000806040838503121561094557600080fd5b61094e83610626565b946020939093013593505050565b60008060006060848603121561097157600080fd5b61097a84610626565b92506020840135915061098f60408501610626565b90509250925092565b60008060008060008060008060008060006101608c8e0312156109ba57600080fd5b6109c38c610626565b9a5060208c0135995060408c0135985067ffffffffffffffff8060608e013511156109ed57600080fd5b6109fd8e60608f01358f01610642565b98508060808e01351115610a1057600080fd5b610a208e60808f01358f01610739565b975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d01359250806101408e01351115610a5957600080fd5b50610a6b8d6101408e01358e016107a9565b90509295989b509295989b9093969950565b600080600080600080600060e0888a031215610a9857600080fd5b610aa188610626565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff811115610ae057600080fd5b610aec8a828b016107a9565b91505092959891949750929550565b600060208284031215610b0d57600080fd5b813567ffffffffffffffff811115610b2457600080fd5b610b30848285016106bb565b949350505050565b600080600080600060a08688031215610b5057600080fd5b610b5986610799565b9450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115610b8a57600080fd5b610b96888289016107a9565b9150509295509295909350565b6000806000806000806000806000806000806101808d8f031215610bc657600080fd5b67ffffffffffffffff8d351115610bdc57600080fd5b610be98e8e358f016107a9565b9b5067ffffffffffffffff60208e01351115610c0457600080fd5b610c148e60208f01358f016107a9565b9a50610c2260408e01610626565b9950610c3060608e01610626565b9850610c3e60808e01610626565b975060a08d0135965060c08d0135955060e08d0135945067ffffffffffffffff6101008e01351115610c6f57600080fd5b610c808e6101008f01358f016106bb565b93506101208d013592506101408d013591506101608d013590509295989b509295989b509295989b565b600060208284031215610cbc57600080fd5b5035919050565b60008060408385031215610cd657600080fd5b8235915061086560208401610626565b600080600060608486031215610cfb57600080fd5b833592506020840135915061098f60408501610626565b60008060008060808587031215610d2857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015610d7157858101830151858201604001528201610d55565b81811115610d83576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610dc257610dc2610dee565b604052919050565b600067ffffffffffffffff821115610de457610de4610dee565b5060051b60200190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b79e67e5266f8f3497be807022c80c1afca10e46782dc5254ed90f9f0957c97964736f6c63430008060033

Deployed ByteCode

0x60806040526004361061026a5760003560e01c80637c37411c11610144578063b0037ada116100b6578063d4d544d01161007a578063d4d544d014610314578063d96ac74c146105e2578063dc935698146103ed578063dd62ed3e1461060b578063e8025d77146104f6578063fc0c546a146103ed57600080fd5b8063b0037ada14610468578063c6616ba114610511578063cc4a01581461052c578063cf6d625e1461054d578063d3f852fd1461031457600080fd5b80639fdabec2116101085780639fdabec2146104f6578063a293b0cd146103ed578063a4c6c1e014610314578063a9059cbb146102c8578063aa1a59e214610314578063acd431a8146104f657600080fd5b80637c37411c146104c05780638b2a4df5146104db5780638bc7e8c414610314578063922a167c1461031457806395d89b41146102ac57600080fd5b8063313ce567116101dd578063467c9eff116101a1578063467c9eff1461042957806354cf2aeb14610314578063590ee3461461044a5780635c87743a1461046857806370a082311461048357806372e518c21461049e57600080fd5b8063313ce567146103ed57806336bd1f2f1461031457806336e4ec64146103145780633b3fdb5c146104095780633e9491a21461031457600080fd5b806315ff627d1161022f57806315ff627d1461032857806318160ddd14610314578063223706851461033c5780632391f3c11461037d57806323b872dd146103a157806325258d0c146103c557600080fd5b8062f714ce1461027657806306fdde03146102ac578063095ea7b3146102c85780630de30836146102f35780630f9775d51461031457600080fd5b3661027157005b600080fd5b34801561028257600080fd5b50610299610291366004610cc3565b600092915050565b6040519081526020015b60405180910390f35b3480156102b857600080fd5b5060606040516102a39190610d44565b3480156102d457600080fd5b506102e3610291366004610932565b60405190151581526020016102a3565b3480156102ff57600080fd5b5061031261030e3660046108aa565b5050565b005b34801561032057600080fd5b506000610299565b6103126103363660046108d4565b50505050565b34801561034857600080fd5b5060008080808080604080519687526020870195909552938501929092526060840152608083015260a082015260c0016102a3565b34801561038957600080fd5b50610312610398366004610a7d565b50505050505050565b3480156103ad57600080fd5b506102e36103bc36600461086e565b60009392505050565b3480156103d157600080fd5b506103126103e0366004610998565b5050505050505050505050565b3480156103f957600080fd5b50604051600081526020016102a3565b34801561041557600080fd5b50610312610424366004610ce6565b505050565b34801561043557600080fd5b506102e3610444366004610819565b50600090565b34801561045657600080fd5b50610312610465366004610819565b50565b34801561047457600080fd5b5061031261030e366004610cc3565b34801561048f57600080fd5b50610299610444366004610819565b3480156104aa57600080fd5b506103126104b9366004610b38565b5050505050565b3480156104cc57600080fd5b50610312610465366004610afb565b3480156104e757600080fd5b506102996103bc36600461095c565b34801561050257600080fd5b50610312610465366004610caa565b34801561051d57600080fd5b50610312610336366004610d12565b34801561053857600080fd5b506040805160008082526020820152016102a3565b34801561055957600080fd5b506040805160c08082018352600080835260208084018281528486018381526060808701858152608080890187815260a0998a018881528b51988952955161ffff90811697890197909752935186169987019990995251841690850152519091169482019490945292516fffffffffffffffffffffffffffffffff1691830191909152016102a3565b3480156105ee57600080fd5b506103126105fd366004610ba3565b505050505050505050505050565b34801561061757600080fd5b5061029961029136600461083b565b80356001600160a01b038116811461063d57600080fd5b919050565b600082601f83011261065357600080fd5b8135602061066861066383610dca565b610d99565b80838252828201915082860187848660051b890101111561068857600080fd5b60005b858110156106ae5761069c82610626565b8452928401929084019060010161068b565b5090979650505050505050565b600082601f8301126106cc57600080fd5b813560206106dc61066383610dca565b80838252828201915082860187848660051b89010111156106fc57600080fd5b6000805b8681101561072b57823561ffff81168114610719578283fd5b85529385019391850191600101610700565b509198975050505050505050565b600082601f83011261074a57600080fd5b8135602061075a61066383610dca565b80838252828201915082860187848660051b890101111561077a57600080fd5b60005b858110156106ae5781358452928401929084019060010161077d565b8035801515811461063d57600080fd5b600082601f8301126107ba57600080fd5b813567ffffffffffffffff8111156107d4576107d4610dee565b6107e7601f8201601f1916602001610d99565b8181528460208386010111156107fc57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561082b57600080fd5b61083482610626565b9392505050565b6000806040838503121561084e57600080fd5b61085783610626565b915061086560208401610626565b90509250929050565b60008060006060848603121561088357600080fd5b61088c84610626565b925061089a60208501610626565b9150604084013590509250925092565b600080604083850312156108bd57600080fd5b6108c683610626565b915061086560208401610799565b600080600080608085870312156108ea57600080fd5b6108f385610626565b9350602085013567ffffffffffffffff81111561090f57600080fd5b61091b878288016107a9565b949794965050505060408301359260600135919050565b6000806040838503121561094557600080fd5b61094e83610626565b946020939093013593505050565b60008060006060848603121561097157600080fd5b61097a84610626565b92506020840135915061098f60408501610626565b90509250925092565b60008060008060008060008060008060006101608c8e0312156109ba57600080fd5b6109c38c610626565b9a5060208c0135995060408c0135985067ffffffffffffffff8060608e013511156109ed57600080fd5b6109fd8e60608f01358f01610642565b98508060808e01351115610a1057600080fd5b610a208e60808f01358f01610739565b975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d01359250806101408e01351115610a5957600080fd5b50610a6b8d6101408e01358e016107a9565b90509295989b509295989b9093969950565b600080600080600080600060e0888a031215610a9857600080fd5b610aa188610626565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff811115610ae057600080fd5b610aec8a828b016107a9565b91505092959891949750929550565b600060208284031215610b0d57600080fd5b813567ffffffffffffffff811115610b2457600080fd5b610b30848285016106bb565b949350505050565b600080600080600060a08688031215610b5057600080fd5b610b5986610799565b9450602086013593506040860135925060608601359150608086013567ffffffffffffffff811115610b8a57600080fd5b610b96888289016107a9565b9150509295509295909350565b6000806000806000806000806000806000806101808d8f031215610bc657600080fd5b67ffffffffffffffff8d351115610bdc57600080fd5b610be98e8e358f016107a9565b9b5067ffffffffffffffff60208e01351115610c0457600080fd5b610c148e60208f01358f016107a9565b9a50610c2260408e01610626565b9950610c3060608e01610626565b9850610c3e60808e01610626565b975060a08d0135965060c08d0135955060e08d0135945067ffffffffffffffff6101008e01351115610c6f57600080fd5b610c808e6101008f01358f016106bb565b93506101208d013592506101408d013591506101608d013590509295989b509295989b509295989b565b600060208284031215610cbc57600080fd5b5035919050565b60008060408385031215610cd657600080fd5b8235915061086560208401610626565b600080600060608486031215610cfb57600080fd5b833592506020840135915061098f60408501610626565b60008060008060808587031215610d2857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015610d7157858101830151858201604001528201610d55565b81811115610d83576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715610dc257610dc2610dee565b604052919050565b600067ffffffffffffffff821115610de457610de4610dee565b5060051b60200190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b79e67e5266f8f3497be807022c80c1afca10e46782dc5254ed90f9f0957c97964736f6c63430008060033