/ contracts / interfaces / ILiquidityPool.sol
ILiquidityPool.sol
 1  pragma solidity >=0.6.0;
 2  
 3  interface ILiquidityPool {
 4  
 5      event AddSymbol(string optSymbol);
 6      
 7      event RemoveSymbol(string optSymbol);
 8  
 9      event Buy(address indexed token, address indexed buyer, uint price, uint volume);
10      
11      event Sell(address indexed token, address indexed seller, uint price, uint volume);
12  
13      function maturity() external view returns (uint);
14  
15      function yield(uint dt) external view returns (uint y);
16  
17      function depositTokens(
18          address to,
19          address token,
20          uint value,
21          uint deadline,
22          uint8 v,
23          bytes32 r,
24          bytes32 s
25      ) external;
26  
27      function depositTokens(address to, address token, uint value) external;
28  
29      function withdraw(uint amount) external;
30  
31      function listSymbols() external view returns (string memory available);
32  
33      function queryBuy(string calldata optSymbol) external view returns (uint price, uint volume);
34  
35      function querySell(string calldata optSymbol) external view returns (uint price, uint volume);
36  
37      function buy(
38          string calldata optSymbol,
39          uint price,
40          uint volume,
41          address token,
42          uint maxValue,
43          uint deadline,
44          uint8 v,
45          bytes32 r,
46          bytes32 s
47      )
48          external
49          returns (address addr);
50  
51      function buy(string calldata optSymbol, uint price, uint volume, address token)
52          external
53          returns (address addr);
54  
55      function sell(
56          string calldata optSymbol,
57          uint price,
58          uint volume,
59          uint deadline,
60          uint8 v,
61          bytes32 r,
62          bytes32 s
63      )
64          external;
65  
66      function sell(string calldata optSymbol, uint price, uint volume) external;
67  }