/ contracts / finance / hedging / GNSHedgingManagerFactory.sol
GNSHedgingManagerFactory.sol
 1  pragma solidity >=0.6.0;
 2  pragma experimental ABIEncoderV2;
 3  
 4  import "../../deployment/Deployer.sol";
 5  import "../../deployment/ManagedContract.sol";
 6  import "./GNSHedgingManager.sol";
 7  
 8  contract GNSHedgingManagerFactory is ManagedContract {
 9      address public _daiAddr;
10      address public _referrer;
11      address public _gnsTradingAddr;
12      address public _gnsPairInfoAddr;
13      address public _gnsFarmTradingStorageAddr;
14  
15      address private deployerAddress;
16  
17      constructor(address daiAddr, address referrer, address gnsTradingAddr, address gnsPairInfoAddr, address gnsFarmTradingStorageAddr) public {
18          _daiAddr = daiAddr;
19          _referrer = referrer; //TODO NOT SURE WHAT TO SET HERE
20          _gnsTradingAddr = gnsTradingAddr;
21          _gnsPairInfoAddr = gnsPairInfoAddr;
22          _gnsFarmTradingStorageAddr = gnsFarmTradingStorageAddr;
23      }
24      
25      function initialize(Deployer deployer) override internal {
26          deployerAddress = address(deployer);
27      }
28  
29      function create(address _poolAddr) external returns (address) {
30          address hdgMngr = address(
31              new GNSHedgingManager(
32                  deployerAddress,
33                  _poolAddr
34              )
35          );
36          return hdgMngr;
37      }
38  }