Skip to content

Commit

Permalink
Add OV parameter to OverlayV1ChainlinkFeedFactory constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
magnetto90 committed Jan 29, 2024
1 parent 0c4fb0c commit 7bf34ab
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
12 changes: 8 additions & 4 deletions contracts/feeds/chainlink/OverlayV1ChainlinkFeedFactory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,22 @@ import "./OverlayV1ChainlinkFeed.sol";
import "../../interfaces/feeds/chainlink/IOverlayV1ChainlinkFeedFactory.sol";

contract OverlayV1ChainlinkFeedFactory is IOverlayV1ChainlinkFeedFactory, OverlayV1FeedFactory {
address public immutable OV;
// registry of feeds; for a given aggregator pair, returns associated feed
mapping(address => address) public getFeed;

constructor(uint256 _microWindow, uint256 _macroWindow)
constructor(address _ov, uint256 _microWindow, uint256 _macroWindow)
OverlayV1FeedFactory(_microWindow, _macroWindow)
{}
{
require(_ov != address(0), "OVV1: invalid ov");
OV = _ov;
}

/// @dev deploys a new feed contract
/// @param _aggregator chainlink price feed
/// @param _heartbeat expected update frequency of the feed
/// @return _feed address of the new feed
function deployFeed(address _ov, address _aggregator, uint256 _heartbeat)
function deployFeed(address _aggregator, uint256 _heartbeat)
external
returns (address _feed)
{
Expand All @@ -26,7 +30,7 @@ contract OverlayV1ChainlinkFeedFactory is IOverlayV1ChainlinkFeedFactory, Overla

// Create a new Feed contract
_feed = address(
new OverlayV1ChainlinkFeed(_ov, _aggregator, microWindow, macroWindow, _heartbeat)
new OverlayV1ChainlinkFeed(OV, _aggregator, microWindow, macroWindow, _heartbeat)
);

// store feed registry record for _aggregator and record address as deployed feed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interface IOverlayV1ChainlinkFeedFactory is IOverlayV1FeedFactory {

/// @dev deploys a new feed contract
/// @return _feed address of the new feed
function deployFeed(address _ov, address _aggregator, uint256 _heartbeat)
function deployFeed(address _aggregator, uint256 _heartbeat)
external
returns (address _feed);
}
6 changes: 2 additions & 4 deletions tests/OverlayV1ChainlinkFeed.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ contract MarketTest is Test {
vm.createSelectFork(vm.envString("RPC"), 169_490_320);
ov = new OverlayV1Token();
aggregator = new AggregatorMock();
feedFactory = new OverlayV1ChainlinkFeedFactory(600, 3600);
feed = OverlayV1ChainlinkFeed(
feedFactory.deployFeed(address(ov), address(aggregator), 60 minutes)
);
feedFactory = new OverlayV1ChainlinkFeedFactory(address(ov), 600, 3600);
feed = OverlayV1ChainlinkFeed(feedFactory.deployFeed(address(aggregator), 60 minutes));
ov.grantRole(GOVERNOR_ROLE, GOVERNOR);
}

Expand Down

0 comments on commit 7bf34ab

Please sign in to comment.