/ contracts / finance / hedging / BaseHedgingManager.sol
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  }