Skip to content

Commit 90d11d0

Browse files
committed
resolve conflicts
1 parent 0aa56f3 commit 90d11d0

4 files changed

Lines changed: 85 additions & 80 deletions

File tree

packages/contracts/tasks/vaults/adapters.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,32 +47,28 @@ export default task("optimized-adapters:deploy")
4747
task("optimized-adapters:propose")
4848
.addParam("newAdaptersAddresses", "Comma-separated addresses of the adapters to propose", undefined, types.string)
4949
.addParam("vaultAddress", "Address of the vault to add the adapter to", undefined, types.string)
50-
.setAction(async ({ newAdaptersAddresses, vaultAddress, hre }) => {
51-
const viem = hre.viem;
50+
.setAction(async ({ newAdaptersAddresses, vaultAddress }, { viem }) => {
5251
const vaultFirstExt = (await viem.getContractAt(
5352
"OptimizedAPRVaultFirstExtension",
5453
vaultAddress
5554
));
5655
const adapters = newAdaptersAddresses.split(",");
57-
58-
const tx = await vaultFirstExt.proposeAdapters(adapters, adapters.length);
59-
console.log(`waiting to mine tx ${tx.hash}`);
60-
await tx.wait();
56+
console.log(adapters, adapters.length);
57+
const tx = await vaultFirstExt.write.proposeAdapters(adapters, adapters.length);
58+
console.log(`waiting to mine tx ${tx}`);
6159
console.log(`proposed adapters ${adapters} to vault ${vaultAddress}`);
6260
});
6361

6462
task("optimized-adapters:change")
6563
.addParam("vaultAddress", "Address of the vault to add the adapter to", undefined, types.string)
66-
.setAction(async ({ vaultAddress, hre }) => {
67-
const viem = hre.viem;
64+
.setAction(async ({ vaultAddress }, { viem }) => {
6865

6966
const vaultSecondExt = (await viem.getContractAt(
7067
"OptimizedAPRVaultSecondExtension",
7168
vaultAddress
7269
));
7370

7471
const tx = await vaultSecondExt.write.changeAdapters();
75-
console.log(`waiting to mine tx ${tx.hash}`);
76-
await tx.wait();
72+
console.log(`waiting to mine tx ${tx}`);
7773
console.log(`changed the adapters of vault ${vaultAddress}`);
7874
});

packages/contracts/tasks/vaults/deploy.ts

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -36,55 +36,51 @@ export default task("deploy-optimized:all")
3636
});
3737
});
3838

39-
task("deploy-optimized:wbnb:chapel").setAction(async ({}, { run }) => {
40-
await run("deploy-optimized:all", {
41-
marketsAddresses: "0xc436c7848C6144cf04fa241ac8311864F8572ed3,0xddA148e5917A1c2DCfF98139aBBaa41636840830"
42-
});
43-
});
39+
// task("deploy-optimized:wbnb:chapel").setAction(async ({}, { run }) => {
40+
// await run("deploy-optimized:all", {
41+
// marketsAddresses: "0xc436c7848C6144cf04fa241ac8311864F8572ed3,0xddA148e5917A1c2DCfF98139aBBaa41636840830"
42+
// });
43+
// });
4444

45-
task("deploy-optimized:bomb:chapel").setAction(async ({}, { run }) => {
46-
await run("deploy-optimized:all", {
47-
marketsAddresses: "0xfa60851E76728eb31EFeA660937cD535C887fDbD"
48-
});
49-
});
45+
// task("deploy-optimized:bomb:chapel").setAction(async ({}, { run }) => {
46+
// await run("deploy-optimized:all", {
47+
// marketsAddresses: "0xfa60851E76728eb31EFeA660937cD535C887fDbD"
48+
// });
49+
// });
5050

51-
const polygonUsdcMarkets = [
52-
"0x14787e50578d8c606C3d57bDbA53dD65Fd665449", // Davos
53-
"0x38EbA94210bCEf3F9231E1764EE230abC14D1cbc", // Retro
54-
"0x71A7037a42D0fB9F905a76B7D16846b2EACC59Aa" // StarSeed
55-
];
56-
task("deploy-optimized:usdc:polygon").setAction(async ({}, { run }) => {
57-
await run("deploy-optimized:all", {
58-
marketsAddresses: polygonUsdcMarkets.join(",")
59-
});
60-
});
51+
// const polygonUsdcMarkets = [
52+
// "0x14787e50578d8c606C3d57bDbA53dD65Fd665449", // Davos
53+
// "0x38EbA94210bCEf3F9231E1764EE230abC14D1cbc", // Retro
54+
// "0x71A7037a42D0fB9F905a76B7D16846b2EACC59Aa" // StarSeed
55+
// ];
56+
// task("deploy-optimized:usdc:polygon").setAction(async ({}, { run }) => {
57+
// await run("deploy-optimized:all", {
58+
// marketsAddresses: polygonUsdcMarkets.join(",")
59+
// });
60+
// });
6161

6262
task("deploy-vault-flywheel")
6363
.addParam("vaultAddress", "Address of the vault", undefined, types.string)
6464
.addParam("rewardToken", "Address of the reward token to add a flywheel for", undefined, types.string)
65-
.setAction(async ({ vaultAddress, rewardToken, hre }, { getNamedAccounts }) => {
66-
const viem = hre.viem;
65+
.setAction(async ({ vaultAddress, rewardToken }, { viem, getNamedAccounts }) => {
6766
const { deployer } = await getNamedAccounts();
6867

6968
const vaultFirstExt = (await viem.getContractAt(
7069
"OptimizedAPRVaultFirstExtension",
71-
vaultAddress,
72-
deployer
70+
vaultAddress as Address
7371
));
7472
const vaultSecondExt = (await viem.getContractAt(
7573
"OptimizedAPRVaultSecondExtension",
76-
vaultAddress,
77-
deployer
74+
vaultAddress as Address
7875
));
79-
const flywheelForRewardToken = await vaultSecondExt.callStatic.flywheelForRewardToken(rewardToken);
76+
const flywheelForRewardToken = await vaultSecondExt.read.flywheelForRewardToken(rewardToken);
8077
if (flywheelForRewardToken != constants.AddressZero) {
8178
console.log(
8279
`there is already a flywheel ${flywheelForRewardToken} for reward token ${rewardToken} in the vault at ${vaultAddress}`
8380
);
8481
} else {
85-
const tx = await vaultFirstExt.addRewardToken(rewardToken);
86-
console.log(`mining tx ${tx.hash}`);
87-
await tx.wait();
82+
const tx = await vaultFirstExt.write.addRewardToken(rewardToken);
83+
console.log(`mining tx ${tx}`);
8884
console.log(`added a flywheel for reward token ${rewardToken} in the vault at ${vaultAddress}`);
8985
}
90-
});
86+
});

packages/contracts/tasks/vaults/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ import "./vault";
33
import "./rewards";
44
import "./registry";
55
import "./deploy";
6+
import "./test";

packages/contracts/tasks/vaults/vault.ts

Lines changed: 51 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { constants } from "ethers";
22
import { task, types } from "hardhat/config";
3-
import { Address, parseEther } from "viem";
3+
import { Address, parseEther, encodeAbiParameters } from "viem";
44

55
export default task("optimized-vault:add")
66
.addParam("vaultAddress", "Address of the vault to add", undefined, types.string)
@@ -47,23 +47,25 @@ task("optimized-vault:deploy")
4747

4848
const asset = await viem.getContractAt("IERC20MetadataUpgradeable", assetAddress);
4949
const symbol = await asset.read.symbol();
50-
const optimizedVaultDep = await deployments.deploy(`OptimizedAPRVault_${symbol}_${assetAddress}`, {
51-
contract: "OptimizedAPRVaultBase",
52-
from: deployer,
53-
log: true,
54-
waitConfirmations: 1,
55-
args: []
56-
});
57-
if (optimizedVaultDep.transactionHash) {
58-
await publicClient.waitForTransactionReceipt({ hash: optimizedVaultDep.transactionHash as Address });
59-
}
60-
console.log("OptimizedAPRVault: ", optimizedVaultDep.address);
61-
62-
const fees = {
63-
deposit: 0,
64-
withdrawal: 0,
65-
management: 0,
66-
performance: parseEther("0.05") // 1e18 == 100%, 5e16 = 5%
50+
// const optimizedVaultDep = await deployments.deploy(`OptimizedAPRVault_${symbol}_${assetAddress}`, {
51+
// contract: "OptimizedAPRVaultBase",
52+
// from: deployer,
53+
// log: true,
54+
// waitConfirmations: 1,
55+
// args: []
56+
// });
57+
// if (optimizedVaultDep.transactionHash) {
58+
// await publicClient.waitForTransactionReceipt({ hash: optimizedVaultDep.transactionHash as Address });
59+
// }
60+
// console.log("OptimizedAPRVault: ", optimizedVaultDep.address);
61+
62+
type Fee = { deposit: bigint; withdrawal: bigint; management: bigint; performance: bigint };
63+
64+
const fees: Fee = {
65+
deposit: BigInt(0),
66+
withdrawal: BigInt(0),
67+
management: BigInt(0),
68+
performance: BigInt(parseEther("0.05").toString()), // Ensure parseEther outputs BigInt
6769
};
6870

6971
// start with an even allocations distribution
@@ -84,11 +86,11 @@ task("optimized-vault:deploy")
8486
if (remainder > BigInt(0)) {
8587
adapters[adapters.length - 1].allocation = adapters[adapters.length - 1].allocation + remainder;
8688
}
87-
88-
const tenAdapters = adapters.concat(
89+
type Adapter = { adapter: string; allocation: bigint };
90+
const tenAdapters: Adapter[] = adapters.concat(
8991
new Array(10 - adapters.length).fill({
9092
adapter: constants.AddressZero,
91-
allocation: 0
93+
allocation: BigInt(0)
9294
})
9395
);
9496
const flywheelLogic = await deployments.deploy("IonicFlywheel_Implementation", {
@@ -103,29 +105,40 @@ task("optimized-vault:deploy")
103105
"OptimizedVaultsRegistry",
104106
(await deployments.get("OptimizedVaultsRegistry")).address as Address
105107
);
106-
const vaultFirstExtDep = await deployments.deploy("OptimizedAPRVaultFirstExtension", {
107-
from: deployer,
108-
log: true,
109-
waitConfirmations: 1,
110-
args: []
111-
});
112-
const vaultSecondExtDep = await deployments.deploy("OptimizedAPRVaultSecondExtension", {
113-
from: deployer,
114-
log: true,
115-
waitConfirmations: 1,
116-
args: []
117-
});
118-
const values = [
108+
// const vaultFirstExtDep = await deployments.deploy("OptimizedAPRVaultFirstExtension", {
109+
// from: deployer,
110+
// log: true,
111+
// waitConfirmations: 1,
112+
// args: []
113+
// });
114+
// const vaultSecondExtDep = await deployments.deploy("OptimizedAPRVaultSecondExtension", {
115+
// from: deployer,
116+
// log: true,
117+
// waitConfirmations: 1,
118+
// args: []
119+
// });
120+
const values: [
121+
string,
122+
Adapter[], // Matches "tuple(address adapter, uint64 allocation)[10]"
123+
number, // Matches "uint8"
124+
Fee, // Matches "tuple(uint64, ...)"
125+
string, // Matches "address"
126+
bigint, // Matches "uint256"
127+
string, // Matches "address"
128+
string // Matches "address"
129+
] = [
119130
assetAddress,
120131
tenAdapters, // initial adapters
121132
adapters.length, // adapters count
122133
fees,
123134
deployer, // fee recipient
124-
constants.MaxUint256, // deposit limit
135+
0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn, // deposit limit
125136
registry.address,
126137
flywheelLogic.address
127138
];
128-
const initData = new viem.utils.AbiCoder().encode(
139+
console.log(values);
140+
141+
const initData = encodeAbiParameters(
129142
[
130143
"address",
131144
"tuple(address adapter, uint64 allocation)[10]",
@@ -141,10 +154,9 @@ task("optimized-vault:deploy")
141154

142155
console.log(`initializing with values ${JSON.stringify(values)}`);
143156

144-
const optimizedVault = await viem.getContractAt("OptimizedAPRVaultBase", optimizedVaultDep.address, deployer);
157+
const optimizedVault = await viem.getContractAt("OptimizedAPRVaultBase", optimizedVaultDep.address as Address);
145158

146-
const tx = await optimizedVault.initialize([vaultFirstExtDep.address, vaultSecondExtDep.address], initData);
147-
await tx.wait();
159+
const tx = await optimizedVault.write.initialize([vaultFirstExtDep.address, vaultSecondExtDep.address], initData);
148160
console.log(`initialized the vault at ${optimizedVault.address}`);
149161

150162
await run("optimized-vault:add", {

0 commit comments

Comments
 (0)