IGovernableLiquidityPool.sol
1 pragma solidity >=0.6.0; 2 3 import "../interfaces/IOptionsExchange.sol"; 4 5 6 interface IGovernableLiquidityPool { 7 8 enum Operation { NONE, BUY, SELL } 9 10 struct PricingParameters { 11 address udlFeed; 12 IOptionsExchange.OptionType optType; 13 uint120 strike; 14 uint32 maturity; 15 uint32 t0; 16 uint32 t1; 17 uint[3] bsStockSpread; //buyStock == bsStockSpread[0], sellStock == bsStockSpread[1], spread == bsStockSpread[2] 18 uint120[] x; 19 uint120[] y; 20 } 21 22 struct Range { 23 uint120 start; 24 uint120 end; 25 } 26 27 event AddSymbol(string optSymbol); 28 29 //event RemoveSymbol(string optSymbol); 30 31 event Buy(address indexed token, address indexed buyer, uint price, uint volume); 32 33 event Sell(address indexed token, address indexed seller, uint price, uint volume); 34 35 function setParameters(uint _reserveRatio, uint _withdrawFee, uint _mt, uint _lm, address _hmngr, uint _ht) external; 36 37 function addSymbol(address udlFeed, uint strike, uint _mt, IOptionsExchange.OptionType optType, uint t0, uint t1, uint120[] calldata x, uint120[] calldata y, uint[3] calldata bsStockSpread) external; 38 39 function yield(uint dt) external view returns (uint); 40 41 function depositTokens(address to, address token, uint value) external; 42 43 function withdraw(uint amount) external; 44 45 function valueOf(address ownr) external view returns (uint); 46 47 function maturity() external view returns (uint); 48 49 function withdrawFee() external view returns (uint); 50 51 function calcFreeBalance() external view returns (uint balance); 52 53 function listSymbols() external view returns (string memory available); 54 55 function queryBuy(string calldata optSymbol, bool isBuy) external view returns (uint price, uint volume); 56 57 58 function buy(string calldata optSymbol, uint price, uint volume, address token) 59 external 60 returns (address addr); 61 62 function sell( 63 string calldata optSymbol, 64 uint price, 65 uint volume 66 ) 67 external; 68 69 function getHedgingManager() external view returns (address manager); 70 function getLeverage() external view returns (uint leverage); 71 function getHedgeNotionalThreshold() external view returns (uint threshold); 72 }