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 }