dsa-connectors/contracts/mainnet/connectors/euler/interface.sol
2022-07-05 17:03:47 +04:00

56 lines
1.9 KiB
Solidity

//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
interface IEulerMarkets {
function enterMarket(uint subAccountId, address newMarket) external;
function getEnteredMarkets(address account) external view returns (address[] memory);
function underlyingToEToken(address underlying) external view returns (address);
function underlyingToDToken(address underlying) external view returns (address);
}
interface IEulerEToken {
function deposit(uint subAccountId, uint amount) external;
function withdraw(uint subAccountId, uint amount) external;
function decimals() external view returns (uint8);
function mint(uint subAccountId, uint amount) external;
function burn(uint subAccountId, uint amount) external;
function balanceOf(address account) external view returns (uint);
function transfer(address to, uint amount) external returns (bool);
}
interface IEulerDToken {
function underlyingToDToken(address underlying) external view returns (address);
function decimals() external view returns (uint8);
function borrow(uint subAccountId, uint amount) external;
function repay(uint subAccountId, uint amount) external;
function balanceOf(address account) external view returns (uint);
function transfer(address to, uint amount) external returns (bool);
}
interface IEulerSwap {
struct SwapUniExactInputSingleParams {
uint subAccountIdIn;
uint subAccountIdOut;
address underlyingIn;
address underlyingOut;
uint amountIn;
uint amountOutMinimum;
uint deadline;
uint24 fee;
uint160 sqrtPriceLimitX96;
}
struct Swap1InchParams {
uint subAccountIdIn;
uint subAccountIdOut;
address underlyingIn;
address underlyingOut;
uint amount;
uint amountOutMinimum;
bytes payload;
}
function swap1Inch(Swap1InchParams memory) external;
}