Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EthX price feed #193

Merged
merged 6 commits into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions script/Mainnet/production/switchETHXPriceFeed.part2.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.8.21;

import { Math } from "src/utils/Math.sol";
import { Deployer } from "src/Deployer.sol";
import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
import { ERC20 } from "@solmate/tokens/ERC20.sol";
import { Registry } from "src/Registry.sol";
import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
import { IChainlinkAggregator } from "src/interfaces/external/IChainlinkAggregator.sol";
import { ERC20Adaptor } from "src/modules/adaptors/ERC20Adaptor.sol";

import { MainnetAddresses } from "test/resources/MainnetAddresses.sol";

import "forge-std/Script.sol";

/**
* @dev Run
* `source .env && forge script script/Mainnet/production/switchETHXPriceFeed.part2.s.sol:switchEthXPriceFeed --rpc-url $MAINNET_RPC_URL --sender $MULTI_SIG --with-gas-price 25000000000`
*/
contract switchEthXPriceFeed is Script, MainnetAddresses {


Registry public registry = Registry(0xEED68C267E9313a6ED6ee08de08c9F68dee44476);
PriceRouter public priceRouter = PriceRouter(0xA1A0bc3D59e4ee5840c9530e49Bdc2d1f88AaF92);


uint8 public constant CHAINLINK_DERIVATIVE = 1;
uint8 public constant TWAP_DERIVATIVE = 2;
uint8 public constant EXTENSION_DERIVATIVE = 3;

function run() external {

//Complete EDIT asset

uint256 ethx_price = uint256(IChainlinkAggregator(ETHX_ETH_FEED).latestAnswer());

uint256 eth_price = uint256(IChainlinkAggregator(WETH_USD_FEED).latestAnswer());

uint256 price = ethx_price * eth_price/1e18;

PriceRouter.AssetSettings memory settings;


settings = PriceRouter.AssetSettings(CHAINLINK_DERIVATIVE, ETHX_ETH_FEED);
PriceRouter.ChainlinkDerivativeStorage memory stor;
stor.inETH = true;

vm.startBroadcast();

priceRouter.completeEditAsset(ETHX, settings, abi.encode(stor), price);

vm.stopBroadcast();
}

}
50 changes: 50 additions & 0 deletions script/Mainnet/production/switchETHXPriceFeed.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.8.21;

import { Math } from "src/utils/Math.sol";
import { Deployer } from "src/Deployer.sol";
import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
import { ERC20 } from "@solmate/tokens/ERC20.sol";
import { Registry } from "src/Registry.sol";
import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
import { IChainlinkAggregator } from "src/interfaces/external/IChainlinkAggregator.sol";
import { ERC20Adaptor } from "src/modules/adaptors/ERC20Adaptor.sol";

import { MainnetAddresses } from "test/resources/MainnetAddresses.sol";

import "forge-std/Script.sol";

/**
* @dev Run
* `source .env && forge script script/Mainnet/production/switchETHXPriceFeed.s.sol:swithEthXPriceFeed --rpc-url $MAINNET_RPC_URL --sender $MULTI_SIG --with-gas-price 25000000000`
*/
contract swithEthXPriceFeed is Script, MainnetAddresses {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure accurate contract name.

The contract name swithEthXPriceFeed seems to have a typographical error. It should likely be switchEthXPriceFeed as indicated by the file name and usage in other documents.

- contract swithEthXPriceFeed is Script, MainnetAddresses {
+ contract switchEthXPriceFeed is Script, MainnetAddresses {
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
contract swithEthXPriceFeed is Script, MainnetAddresses {
contract switchEthXPriceFeed is Script, MainnetAddresses {



Registry public registry = Registry(0xEED68C267E9313a6ED6ee08de08c9F68dee44476);
PriceRouter public priceRouter = PriceRouter(0xA1A0bc3D59e4ee5840c9530e49Bdc2d1f88AaF92);


uint8 public constant CHAINLINK_DERIVATIVE = 1;
uint8 public constant TWAP_DERIVATIVE = 2;
uint8 public constant EXTENSION_DERIVATIVE = 3;

function run() external {

//Start EDIT asset

PriceRouter.AssetSettings memory settings;


settings = PriceRouter.AssetSettings(CHAINLINK_DERIVATIVE, ETHX_ETH_FEED);
PriceRouter.ChainlinkDerivativeStorage memory stor;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stor.inETH should be set to true. I looked at the feed and this is am ETHx/ETH feed not a USD one.

stor.inETH = true;

vm.startBroadcast();

priceRouter.startEditAsset(ETHX, settings, abi.encode(stor));

vm.stopBroadcast();
}

}
Loading