diff --git a/scripts/feeds/chainlink/Create.s.sol b/scripts/feeds/chainlink/Create.s.sol new file mode 100644 index 00000000..db5d30b6 --- /dev/null +++ b/scripts/feeds/chainlink/Create.s.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Script, console2} from "forge-std/Script.sol"; +import {OverlayV1ChainlinkFeedFactory} from "contracts/feeds/chainlink/OverlayV1ChainlinkFeedFactory.sol"; + +// 1. Set required environment variables: ETHERSCAN_API_KEY, DEPLOYER_PK, RPC. +// 2. Run with: +// $ source .env +// $ forge script scripts/Create.s.sol:CreateFeed --rpc-url $RPC --verify -vvvv --broadcast + +contract CreateFeed is Script { + // TODO: update values as needed + address constant FEED_FACTORY = 0x0000000000000000000000000000000000000000; + address constant AGGREGATOR = 0x0000000000000000000000000000000000000000; + uint256 constant HEARTBEAT = 120 minutes; + + function run() external { + uint256 DEPLOYER_PK = vm.envUint("DEPLOYER_PK"); + + vm.startBroadcast(DEPLOYER_PK); + + OverlayV1ChainlinkFeedFactory feedFactory = OverlayV1ChainlinkFeedFactory(FEED_FACTORY); + + // + + address feed = feedFactory.deployFeed(AGGREGATOR, HEARTBEAT); + + // + + vm.stopBroadcast(); + + console2.log("Feed deployed at:", feed); + } +} diff --git a/scripts/feeds/chainlink/Deploy.s.sol b/scripts/feeds/chainlink/Deploy.s.sol new file mode 100644 index 00000000..fa678639 --- /dev/null +++ b/scripts/feeds/chainlink/Deploy.s.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Script, console2} from "forge-std/Script.sol"; +import {OverlayV1ChainlinkFeedFactory} from "contracts/feeds/chainlink/OverlayV1ChainlinkFeedFactory.sol"; + +// 1. Set required environment variables: ETHERSCAN_API_KEY, DEPLOYER_PK, RPC. +// 2. Run with: +// $ source .env +// $ forge script scripts/Deploy.s.sol:DeployFeedFactory --rpc-url $RPC --verify -vvvv --broadcast + +contract DeployFeedFactory is Script { + // TODO: update values as needed + address constant OVL = 0x0000000000000000000000000000000000000000; + uint256 constant MICRO_WINDOW = 600; + uint256 constant MACRO_WINDOW = 3600; + + function run() external { + uint256 DEPLOYER_PK = vm.envUint("DEPLOYER_PK"); + + vm.startBroadcast(DEPLOYER_PK); + + // + + OverlayV1ChainlinkFeedFactory feedFactory = new OverlayV1ChainlinkFeedFactory(OVL, MICRO_WINDOW, MACRO_WINDOW); + + // + + vm.stopBroadcast(); + + console2.log("FeedFactory deployed at:", address(feedFactory)); + } +}