Skip to content

Commit

Permalink
Added liquidity provider Hardhat tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
naddison36 committed Sep 30, 2024
1 parent 3940168 commit c4c0c86
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/js/tasks/liquidityProvider.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
const { parseUnits } = require("ethers");

const { getSigner } = require("../utils/signers");
const { parseDeployedAddress } = require("../utils/addressParser");
const { logTxDetails } = require("../utils/txLogger");

const log = require("../utils/logger")("task:lpCap");

async function lpDeposit({ amount }) {
const signer = await getSigner();

const amountBn = parseUnits(amount.toString());

const lidArmAddress = await parseDeployedAddress("LIDO_ARM");
const lidoARM = await ethers.getContractAt("LidoARM", lidArmAddress);

log(`About to deposit ${amount} WETH to the Lido ARM`);
const tx = await lidoARM.connect(signer).deposit(amountBn);
await logTxDetails(tx, "deposit");
}

async function setLiquidityProviderCaps({ accounts, cap }) {
const signer = await getSigner();

const capBn = parseUnits(cap.toString());

const liquidityProviders = accounts.split(",");

const lpcAddress = await parseDeployedAddress("LIDO_ARM_LPC");
const liquidityProviderController = await ethers.getContractAt(
"LiquidityProviderController",
lpcAddress
);

log(
`About to set deposit cap of ${cap} WETH for liquidity providers ${liquidityProviders}`
);
const tx = await liquidityProviderController
.connect(signer)
.setLiquidityProviderCaps(liquidityProviders, capBn);
await logTxDetails(tx, "setLiquidityProviderCaps");
}

async function setTotalAssetsCap({ cap }) {
const signer = await getSigner();

const capBn = parseUnits(cap.toString());

const lpcAddress = await parseDeployedAddress("LIDO_ARM_LPC");
const liquidityProviderController = await ethers.getContractAt(
"LiquidityProviderController",
lpcAddress
);

log(`About to set total asset cap of ${cap} WETH`);
const tx = await liquidityProviderController
.connect(signer)
.setTotalAssetsCap(capBn);
await logTxDetails(tx, "setTotalAssetsCap");
}

module.exports = {
lpDeposit,
setLiquidityProviderCaps,
setTotalAssetsCap,
};
49 changes: 49 additions & 0 deletions src/js/tasks/tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ const {
logLiquidity,
withdrawRequestStatus,
} = require("./liquidity");
const {
lpDeposit,
setLiquidityProviderCaps,
setTotalAssetsCap,
} = require("./liquidityProvider");
const { swap } = require("./swap");
const {
tokenAllowance,
Expand Down Expand Up @@ -422,6 +427,50 @@ task("redeemAll").setAction(async (_, __, runSuper) => {
return runSuper();
});

// ARM Liquidity Provider Functions

subtask("lpDeposit", "Set total assets cap")
.addParam(
"amount",
"Amount of WETH not scaled to 18 decimals",
undefined,
types.float
)
.setAction(lpDeposit);
task("lpDeposit").setAction(async (_, __, runSuper) => {
return runSuper();
});

subtask("setLiquidityProviderCaps", "Set deposit cap for liquidity providers")
.addParam(
"cap",
"Amount of WETH not scaled to 18 decimals",
undefined,
types.float
)
.addParam(
"accounts",
"Comma separated list of addresses",
undefined,
types.string
)
.setAction(setLiquidityProviderCaps);
task("setLiquidityProviderCaps").setAction(async (_, __, runSuper) => {
return runSuper();
});

subtask("setTotalAssetsCap", "Set total assets cap")
.addParam(
"cap",
"Amount of WETH not scaled to 18 decimals",
undefined,
types.float
)
.setAction(setTotalAssetsCap);
task("setTotalAssetsCap").setAction(async (_, __, runSuper) => {
return runSuper();
});

// Proxies

subtask("upgradeProxy", "Upgrade a proxy contract to a new implementation")
Expand Down

0 comments on commit c4c0c86

Please sign in to comment.