Skip to content

Commit bf06857

Browse files
committed
Add task for setting repayer routes
1 parent fd9d822 commit bf06857

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

hardhat.config.ts

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import "@nomicfoundation/hardhat-toolbox";
33
import {networkConfig, Network, Provider} from "./network.config";
44
import {TypedDataDomain} from "ethers";
55
import {
6-
LiquidityPoolAave, Rebalancer,
6+
LiquidityPoolAave, Rebalancer, Repayer
77
} from "./typechain-types";
88
import {
99
assert, isSet, ProviderSolidity, DomainSolidity,
@@ -77,7 +77,7 @@ task("set-min-health-factor", "Update Liquidity Pool config")
7777
console.log(`Min health factor set to ${healthfactor} on ${targetAddress}.`);
7878
});
7979

80-
task("set-routes", "Update Rebalancer config")
80+
task("set-routes-rebalancer", "Update Rebalancer config")
8181
.addOptionalParam("rebalancer", "Rebalancer address or id", "Rebalancer", types.string)
8282
.addOptionalParam("pools", "Comma separated list of Liquidity Pool ids or addresses")
8383
.addOptionalParam("domains", "Comma separated list of domain names")
@@ -115,6 +115,48 @@ task("set-routes", "Update Rebalancer config")
115115
console.table({domains, providers});
116116
});
117117

118+
task("set-routes-repayer", "Update Repayer config")
119+
.addOptionalParam("repayer", "Repayer address or id", "Repayer", types.string)
120+
.addOptionalParam("pools", "Comma separated list of Liquidity Pool ids or addresses")
121+
.addOptionalParam("domains", "Comma separated list of domain names")
122+
.addOptionalParam("providers", "Comma separated list of provider names")
123+
.addOptionalParam("supportsalltokens", "Comma separated bool flags whether the pool supports all tokens")
124+
.addOptionalParam("allowed", "Allowed or denied", true, types.boolean)
125+
.setAction(async (args: {
126+
repayer: string,
127+
pools?: string,
128+
domains?: string,
129+
providers?: string,
130+
supportsalltokens?: string,
131+
allowed: boolean,
132+
}, hre) => {
133+
const {resolveXAddress} = await loadTestHelpers();
134+
const config = networkConfig[hre.network.name as Network];
135+
136+
const [admin] = await hre.ethers.getSigners();
137+
138+
const targetAddress = await resolveXAddress(args.repayer);
139+
const target = (await hre.ethers.getContractAt("Repayer", targetAddress, admin)) as Repayer;
140+
141+
const targetPools = args.pools && args.pools.split(",") || [];
142+
const domains = args.domains && args.domains.split(",") || config.RebalancerRoutes?.Domains || [];
143+
const domainsSolidity = domains.map(el => {
144+
assert(Object.values(Network).includes(el as Network), `Invalid domain ${el}`);
145+
return DomainSolidity[el as Network];
146+
});
147+
const providers = args.providers && args.providers.split(",") || config.RebalancerRoutes?.Providers || [];
148+
const providersSolidity = providers.map(el => {
149+
assert(Object.values(Provider).includes(el as Provider), `Invalid provider ${el}`);
150+
return ProviderSolidity[el as Provider];
151+
});
152+
const supportsAllTokens = args.supportsalltokens && args.supportsalltokens.split(",") || [];
153+
const supportsAllTokensBool = supportsAllTokens.map(el => Boolean(el));
154+
155+
await target.setRoute(targetPools, domainsSolidity, providersSolidity, supportsAllTokensBool, args.allowed);
156+
console.log(`Following routes are ${args.allowed ? "" : "dis"}allowed on ${targetAddress}.`);
157+
console.table({domains, providers});
158+
});
159+
118160
task("sign-borrow", "Sign a Liquidity Pool borrow request for testing purposes")
119161
.addParam("caller", "Address that will call borrow or borrowAndSwap")
120162
.addOptionalParam("token", "Token to borrow")

0 commit comments

Comments
 (0)