BaseHedgingManager.sol
1 pragma solidity >=0.6.0; 2 pragma experimental ABIEncoderV2; 3 4 import "../../deployment/Deployer.sol"; 5 import "../../deployment/ManagedContract.sol"; 6 import "../../interfaces/IProtocolSettings.sol"; 7 import "../../interfaces/IBaseHedgingManager.sol"; 8 import "../../interfaces/ICreditProvider.sol"; 9 import "../../interfaces/IOptionsExchange.sol"; 10 import "../../utils/MoreMath.sol"; 11 import "../../utils/SafeERC20.sol"; 12 import "../../utils/SafeCast.sol"; 13 14 abstract contract BaseHedgingManager is ManagedContract, IBaseHedgingManager { 15 using SafeERC20 for IERC20_2; 16 using SafeCast for uint; 17 using SafeMath for uint; 18 using SignedSafeMath for int; 19 20 IProtocolSettings internal settings; 21 ICreditProvider internal creditProvider; 22 IOptionsExchange internal exchange; 23 24 address public poolAddr; 25 26 function initialize(Deployer deployer) virtual override internal { 27 creditProvider = ICreditProvider(deployer.getContractAddress("CreditProvider")); 28 settings = IProtocolSettings(deployer.getContractAddress("ProtocolSettings")); 29 exchange = IOptionsExchange(deployer.getContractAddress("OptionsExchange")); 30 } 31 32 function getPosSize(address underlying, bool isLong) virtual override public view returns (uint[] memory); 33 function getHedgeExposure(address underlying) virtual override public view returns (int256); 34 function idealHedgeExposure(address underlying) virtual override public view returns (int256); 35 function realHedgeExposure(address udlFeedAddr) virtual override public view returns (int256); 36 function balanceExposure(address underlying) virtual override external returns (bool); 37 function totalTokenStock() virtual override public view returns (uint v); 38 function transferTokensToCreditProvider(address tokenAddr) virtual override external; 39 }