Skip to content
This repository was archived by the owner on Aug 26, 2024. It is now read-only.

Commit 362a58d

Browse files
committed
merge
1 parent 7c4d392 commit 362a58d

File tree

171 files changed

+54465
-13412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+54465
-13412
lines changed

chainDeploy/helpers/dynamicFlywheels.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { zeroAddress, Hash, Address } from "viem";
2+
import { FuseFlywheelDeployFnParams } from "../types";
23

3-
import { FuseFlywheelDeployFnParams } from "..";
44

55
export const deployFlywheelWithDynamicRewards = async ({
66
viem,

chainDeploy/helpers/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export { ChainDeployConfig, ChainlinkFeedBaseCurrency } from "../../chains/types";
1+
export { ChainDeployConfig, ChainlinkFeedBaseCurrency } from "../types";
22
export { deployIRMs } from "./irms";
33
export { deployChainlinkOracle } from "./oracles/chainlink";
44
export { deployFlywheelWithDynamicRewards } from "./dynamicFlywheels";

chainDeploy/helpers/irms.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { Address, Hash, parseEther } from "viem";
22
import { mode } from "viem/chains";
33

4-
import { IrmDeployFnParams } from "../../chains/types";
4+
import { assetSymbols } from "../../../monorepo/packages/types";
5+
import assets from "../../../monorepo/packages/chains/src/mode/assets";
6+
import { IrmDeployFnParams } from "../types";
7+
58
import { underlying } from "./utils";
6-
import assets from "../../chains/mode/assets";
7-
import { assetSymbols } from "../../chains/assets";
89

910
const PRUDENTIA_RATE_CONTROLLER_MODE = "0xC40753877CfeF6f50E13695395c58357505719F8";
1011

chainDeploy/helpers/liquidators/ionicLiquidator.ts

+4-10
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
import { Address, GetContractReturnType, Hash, parseEther, PublicClient, WalletClient, zeroAddress } from "viem";
2-
import {
3-
AddressesProviderConfigFnParams,
4-
BalancerSwapTokenLiquidatorData,
5-
LiquidatorConfigFnParams,
6-
LiquidatorDeployFnParams
7-
} from "../../../chains/types";
8-
import { chainIdToConfig } from "../../../chains";
9-
import { addressesProviderAbi } from "../../../generated";
1+
import { Address, Hash, parseEther, PublicClient, zeroAddress } from "viem";
2+
import { AddressesProviderConfigFnParams, LiquidatorConfigFnParams, LiquidatorDeployFnParams } from "../../types";
3+
import { chainIdToConfig } from "../../../../monorepo/packages/chains/src";
104

115
export const deployIonicLiquidator = async ({
126
viem,
@@ -138,7 +132,7 @@ export const configureIonicLiquidator = async ({
138132
for (const fundingStrategy of chainIdToConfig[chainId].fundingStrategies) {
139133
const { strategy } = fundingStrategy;
140134
const fundingStrategyContract = await viem.getContractAt(
141-
strategy,
135+
strategy as string,
142136
(await deployments.get(strategy)).address as Address
143137
);
144138

chainDeploy/helpers/liquidators/registry.ts

+29-14
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Address } from "viem";
2-
import { LiquidatorsRegistryConfigFnParams } from "../../../chains/types";
3-
import { chainIdToConfig } from "../../../chains";
2+
import { LiquidatorsRegistryConfigFnParams } from "../../types";
3+
import { chainIdToConfig } from "../../../../monorepo/packages/chains/src";
44

55
export const configureLiquidatorsRegistry = async ({
66
viem,
7-
getNamedAccounts,
87
chainId,
98
deployments
109
}: LiquidatorsRegistryConfigFnParams): Promise<void> => {
@@ -24,7 +23,7 @@ export const configureLiquidatorsRegistry = async ({
2423
for (const redemptionStrategy of chainIdToConfig[chainId].redemptionStrategies) {
2524
const { strategy, outputToken, inputToken } = redemptionStrategy;
2625
const redemptionStrategyContract = await viem.getContractAt(
27-
strategy,
26+
strategy as string,
2827
(await deployments.get(strategy)).address as Address
2928
);
3029

@@ -33,12 +32,16 @@ export const configureLiquidatorsRegistry = async ({
3332
outputTokens.push(outputToken);
3433
}
3534
const matchingStrategies = await liquidatorsRegistry.read.pairsStrategiesMatch([
36-
strategies,
37-
inputTokens,
38-
outputTokens
35+
strategies as Address[],
36+
inputTokens as Address[],
37+
outputTokens as Address[]
3938
]);
4039
if (!matchingStrategies) {
41-
const hash = await liquidatorsRegistry.write._resetRedemptionStrategies([strategies, inputTokens, outputTokens]);
40+
const hash = await liquidatorsRegistry.write._resetRedemptionStrategies([
41+
strategies as Address[],
42+
inputTokens as Address[],
43+
outputTokens as Address[]
44+
]);
4245
console.log("waiting for tx ", hash);
4346
await publicClient.waitForTransactionReceipt({ hash });
4447
console.log("_resetRedemptionStrategies: ", hash);
@@ -61,10 +64,18 @@ export const configureLiquidatorsRegistry = async ({
6164
}
6265
}
6366

64-
const matchingFees = await liquidatorsRegistry.read.uniswapPairsFeesMatch([inputTokens, outputTokens, fees]);
67+
const matchingFees = await liquidatorsRegistry.read.uniswapPairsFeesMatch([
68+
inputTokens as Address[],
69+
outputTokens as Address[],
70+
fees.map((f) => BigInt(f))
71+
]);
6572

6673
if (!matchingFees) {
67-
const hash = await liquidatorsRegistry.write._setUniswapV3Fees([inputTokens, outputTokens, fees]);
74+
const hash = await liquidatorsRegistry.write._setUniswapV3Fees([
75+
inputTokens as Address[],
76+
outputTokens as Address[],
77+
fees
78+
]);
6879
console.log("waiting for tx ", hash);
6980
await publicClient.waitForTransactionReceipt({ hash });
7081
console.log("_setUniswapV3Fees: ", hash);
@@ -91,13 +102,17 @@ export const configureLiquidatorsRegistry = async ({
91102
}
92103

93104
const matchingRouters = await liquidatorsRegistry.read.uniswapPairsRoutersMatch([
94-
inputTokens,
95-
outputTokens,
96-
routers
105+
inputTokens as Address[],
106+
outputTokens as Address[],
107+
routers as Address[]
97108
]);
98109

99110
if (!matchingRouters) {
100-
const hash = await liquidatorsRegistry.write._setUniswapV3Routers([inputTokens, outputTokens, routers]);
111+
const hash = await liquidatorsRegistry.write._setUniswapV3Routers([
112+
inputTokens as Address[],
113+
outputTokens as Address[],
114+
routers as Address[]
115+
]);
101116
console.log("waiting for tx ", hash);
102117
await publicClient.waitForTransactionReceipt({ hash });
103118
console.log("_setUniswapV3Router: ", hash);

chainDeploy/helpers/logging.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const writeSingleTransactionToFile = async (tx: any) => {
3333
const fileContent = await fs.readFile(filePath, "utf8");
3434
batch = JSON.parse(fileContent);
3535
} catch (error) {
36-
if (error.code === "ENOENT" || error.message === "Unexpected end of JSON input") {
36+
if ((error as any).code === "ENOENT" || (error as any).message === "Unexpected end of JSON input") {
3737
batch = {
3838
version: "1.0",
3939
chainId: "34443",

chainDeploy/helpers/oracles/aerodrome.ts

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
import { addTransaction, prepareAndLogTransaction } from "../logging";
2-
import {
3-
AerodromeDeployFnParams,
4-
ChainlinkAsset,
5-
ChainlinkDeployFnParams,
6-
ChainlinkFeedBaseCurrency
7-
} from "../../../chains/types";
1+
import { prepareAndLogTransaction } from "../logging";
2+
import { DeployResult } from "hardhat-deploy/types";
3+
import { Address } from "viem";
84

95
import { addUnderlyingsToMpo } from "./utils";
10-
import { Address, encodeFunctionData } from "viem";
116
import { underlying } from "../utils";
12-
import { DeployResult } from "hardhat-deploy/types";
7+
import { AerodromeDeployFnParams } from "../../types";
138

149
export const deployAerodromeOracle = async ({
1510
viem,

chainDeploy/helpers/oracles/chainlink.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { addTransaction } from "../logging";
2-
import { ChainlinkAsset, ChainlinkDeployFnParams, ChainlinkFeedBaseCurrency } from "../../../chains/types";
32

43
import { addUnderlyingsToMpo } from "./utils";
54
import { Address, encodeFunctionData } from "viem";
65
import { underlying } from "../utils";
6+
import { ChainlinkFeedBaseCurrency } from "../../../../monorepo/packages/types";
7+
import { ChainlinkDeployFnParams } from "../../types";
78

89
export const deployChainlinkOracle = async ({
910
viem,
@@ -46,7 +47,7 @@ export const deployChainlinkOracle = async ({
4647
(await deployments.get("ChainlinkPriceOracleV2")).address as Address
4748
);
4849

49-
const chainlinkAssetsToChange: ChainlinkAsset[] = [];
50+
const chainlinkAssetsToChange = [];
5051
for (const asset of chainlinkAssets) {
5152
const underlyingAsset = underlying(assets, asset.symbol);
5253
const currentPriceFeed = await chainLinkv2.read.priceFeeds([underlyingAsset]);

chainDeploy/helpers/oracles/erc4626.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Address } from "viem";
2-
import { Erc4626OracleFnParams } from "../../../chains/types";
2+
import { Erc4626OracleFnParams } from "../../types";
33

44
import { addUnderlyingsToMpo } from "./utils";
55

chainDeploy/helpers/oracles/pyth.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Address, encodeFunctionData, GetContractReturnType, WalletClient } from "viem";
22

33
import { addTransaction } from "../logging";
4-
import { PythAsset, PythDeployFnParams } from "../../../chains/types";
54
import { pythPriceOracleAbi } from "../../../generated";
65

76
import { addUnderlyingsToMpo } from "./utils";
7+
import { PythAsset, PythDeployFnParams } from "../../types";
88

99
export const deployPythPriceOracle = async ({
1010
viem,

chainDeploy/helpers/oracles/redstone.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RedStoneDeployFnParams } from "../../../chains/types";
1+
import { Address } from "viem";
22

3+
import { RedStoneDeployFnParams } from "../../types";
34
import { addUnderlyingsToMpo } from "./utils";
4-
import { Address } from "viem";
55

66
export const deployRedStonePriceOracle = async ({
77
viem,

chainDeploy/helpers/oracles/redstoneFallbacks.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Address } from "viem";
2+
import { RedStoneDeployFnParams } from "../../types";
23

34
import { addUnderlyingsToMpoFallback } from "./utils";
4-
import { RedStoneDeployFnParams } from "../../../chains/types";
55

66
export const addRedstoneFallbacks = async ({
77
viem,

chainDeploy/helpers/oracles/redstoneWeETH.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { RedStoneDeployFnParams } from "../../../chains/types";
2-
1+
import { RedStoneDeployFnParams } from "../../types";
32
import { addUnderlyingsToMpo } from "./utils";
3+
44
import { Address } from "viem";
55

66
export const deployRedStonePriceOracle = async ({

chainDeploy/helpers/oracles/redstoneWeETHFallbacks.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Address } from "viem";
22

33
import { addUnderlyingsToMpoFallback } from "./utils";
4-
import { RedStoneDeployFnParams } from "../../../chains/types";
4+
import { RedStoneDeployFnParams } from "../../types";
55

66
export const addRedstoneWeETHFallbacks = async ({
77
viem,

chainDeploy/helpers/oracles/redstoneWrsETH.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RedStoneDeployFnParams } from "../../../chains/types";
1+
import { Address } from "viem";
22

3+
import { RedStoneDeployFnParams } from "../../types";
34
import { addUnderlyingsToMpo } from "./utils";
4-
import { Address } from "viem";
55

66
export const deployRedStoneWrsETHPriceOracle = async ({
77
viem,

chainDeploy/helpers/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Address } from "viem";
2-
import { SupportedAsset } from "../../chains/types";
2+
import { SupportedAsset } from "../../../monorepo/packages/types";
33

44
export const underlying = (assets: SupportedAsset[], symbol: string): Address => {
55
return assetFilter(assets, symbol).underlying;

chainDeploy/index.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1+
import { base, fraxtal, mode } from "viem/chains";
12
import { ChainDeployConfig } from "./helpers";
2-
import { deploy as deploy8453, deployConfig as deployConfig8453 } from "./mainnets/base";
3-
import { deploy as deploy34443, deployConfig as deployConfig34443 } from "./mainnets/mode";
4-
import { deploy as deploy10, deployConfig as deployConfig10 } from "./mainnets/optimism";
5-
import { deploy as deploy11155420, deployConfig as deployConfig11155420 } from "./testnets/sepolia";
3+
import { deploy as deployBase, deployConfig as deployConfigBase } from "./mainnets/base";
4+
import { deploy as deployMode, deployConfig as deployConfigMode } from "./mainnets/mode";
5+
import { deploy as deployFrax, deployConfig as deployConfigFrax } from "./mainnets/fraxtal";
6+
// import { deploy as deploy10, deployConfig as deployConfig10 } from "./mainnets/optimism";
67

78
export const chainDeployConfig: Record<number, { config: ChainDeployConfig; deployFunc: any }> = {
89
// mainnets
9-
34443: { config: deployConfig34443, deployFunc: deploy34443 },
10-
8453: { config: deployConfig8453, deployFunc: deploy8453 },
11-
10: { config: deployConfig10, deployFunc: deploy10 },
10+
[mode.id]: { config: deployConfigMode, deployFunc: deployMode },
11+
[base.id]: { config: deployConfigBase, deployFunc: deployBase },
12+
[fraxtal.id]: { config: deployConfigFrax, deployFunc: deployFrax }
1213
// testnets
13-
11155420: { config: deployConfig11155420, deployFunc: deploy11155420 }
1414
// local
1515
};
1616

17-
export * from "../chains/types";
17+
export * from "./types";

chainDeploy/mainnets/base.ts

+33-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { ChainDeployConfig } from "../helpers";
2-
import { OracleTypes, SupportedAsset } from "../../chains/types";
3-
import { base } from "../../chains";
1+
import { ChainDeployConfig, deployChainlinkOracle } from "../helpers";
2+
import { base } from "../../../monorepo/packages/chains/src";
43
import { deployAerodromeOracle } from "../helpers/oracles/aerodrome";
54
import { HardhatRuntimeEnvironment } from "hardhat/types";
5+
import { Address } from "viem";
6+
import { ChainlinkSpecificParams, OracleTypes } from "../types";
67

78
const assets = base.assets;
89

@@ -13,7 +14,7 @@ export const deployConfig: ChainDeployConfig = {
1314
cgId: base.specificParams.cgId,
1415
nativeTokenName: "Base",
1516
nativeTokenSymbol: "ETH",
16-
stableToken: base.chainAddresses.STABLE_TOKEN,
17+
stableToken: base.chainAddresses.STABLE_TOKEN as Address,
1718
uniswap: {
1819
flashSwapFee: 30, // TODO set the correct fee
1920
hardcoded: [],
@@ -24,18 +25,21 @@ export const deployConfig: ChainDeployConfig = {
2425
uniswapV3SwapRouter: "0x2626664c2603336E57B271c5C0b26F421741e481",
2526
uniswapV3Quoter: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a"
2627
},
27-
wtoken: base.chainAddresses.W_TOKEN,
28-
nativeTokenUsdChainlinkFeed: base.chainAddresses.W_TOKEN_USD_CHAINLINK_PRICE_FEED
28+
wtoken: base.chainAddresses.W_TOKEN as Address,
29+
nativeTokenUsdChainlinkFeed: base.chainAddresses.W_TOKEN_USD_CHAINLINK_PRICE_FEED as Address
2930
};
3031

31-
const aerodromeAssets: SupportedAsset[] = base.assets.filter(
32-
(asset) => asset.oracle === OracleTypes.AerodromePriceOracle
33-
);
32+
const aerodromeAssets = base.assets.filter((asset) => asset.oracle === OracleTypes.AerodromePriceOracle);
3433

35-
export const deploy = async ({ run, viem, getNamedAccounts, deployments }: HardhatRuntimeEnvironment): Promise<void> => {
34+
export const deploy = async ({
35+
run,
36+
viem,
37+
getNamedAccounts,
38+
deployments
39+
}: HardhatRuntimeEnvironment): Promise<void> => {
3640
const { deployer } = await getNamedAccounts();
3741

38-
//// ChainLinkV2 Oracle
42+
//// Aerodrome Oracle
3943
await deployAerodromeOracle({
4044
run,
4145
viem,
@@ -46,6 +50,24 @@ export const deploy = async ({ run, viem, getNamedAccounts, deployments }: Hardh
4650
pricesContract
4751
});
4852

53+
//// ChainlinkV2 Oracle
54+
const chainlinkAssets = assets
55+
.filter((asset) => asset.oracle === OracleTypes.ChainlinkPriceOracleV2)
56+
.map((asset) => ({
57+
aggregator: (asset.oracleSpecificParams as ChainlinkSpecificParams).aggregator,
58+
feedBaseCurrency: (asset.oracleSpecificParams as ChainlinkSpecificParams).feedBaseCurrency,
59+
symbol: asset.symbol
60+
}));
61+
await deployChainlinkOracle({
62+
run,
63+
viem,
64+
getNamedAccounts,
65+
deployments,
66+
deployConfig,
67+
assets: base.assets,
68+
chainlinkAssets
69+
});
70+
4971
//// Uniswap V3 Liquidator Funder
5072
const uniswapV3LiquidatorFunder = await deployments.deploy("UniswapV3LiquidatorFunder", {
5173
from: deployer,

0 commit comments

Comments
 (0)