-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathISwapFacility.sol
41 lines (30 loc) · 1.82 KB
/
ISwapFacility.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// SPDX-License-Identifier: BUSL-1.1
/*
██████╗░██╗░░░░░░█████╗░░█████╗░███╗░░░███╗
██╔══██╗██║░░░░░██╔══██╗██╔══██╗████╗░████║
██████╦╝██║░░░░░██║░░██║██║░░██║██╔████╔██║
██╔══██╗██║░░░░░██║░░██║██║░░██║██║╚██╔╝██║
██████╦╝███████╗╚█████╔╝╚█████╔╝██║░╚═╝░██║
╚═════╝░╚══════╝░╚════╝░░╚════╝░╚═╝░░░░░╚═╝
*/
pragma solidity 0.8.23;
import {IWhitelist} from "../interfaces/IWhitelist.sol";
interface ISwapFacility {
// =================== Functions ===================
/// @notice Get Underlying token
function underlyingToken() external view returns (address);
/// @notice Get Billy token
function billyToken() external view returns (address);
/// @notice Get Price oracle for underlying token
function underlyingTokenOracle() external view returns (address);
/// @notice Get Price oracle for billy token
function billyTokenOracle() external view returns (address);
/// @notice Get Whitelist contract
function whitelist() external view returns (IWhitelist);
/// @notice Get Spread price
function spread() external view returns (uint256);
/// @notice Get Pool address
function pool() external view returns (address);
/// @notice swap tokens Underlying <-> Billy
function swap(address inToken, address outToken, uint256 inAmount, bytes32[] calldata proof) external;
}