Skip to content

Commit 719c5fc

Browse files
committed
fix: calc quotas
1 parent b3dc3d0 commit 719c5fc

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

src/dev/AccountOpener.ts

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
MAX_UINT256,
2020
sendRawTx,
2121
} from "../sdk";
22+
import { PERCENTAGE_FACTOR } from "../sdk/constants";
2223
import { type AnvilClient, createAnvilClient } from "./createAnvilClient";
2324

2425
export interface AccountOpenerOptions {
@@ -114,13 +115,32 @@ export class AccountOpener {
114115
slippage,
115116
target: collateral,
116117
});
117-
logger?.debug("found open strategy");
118+
logger?.debug(strategy, "found open strategy");
119+
const debt = minDebt * BigInt(leverage - 1);
118120
const { tx, calls } = await this.#service.openCA({
119121
creditManager: cm.creditManager.address,
120-
averageQuota: [],
121-
minQuota: [],
122+
averageQuota: [
123+
{
124+
token: collateral,
125+
balance: this.#calcQuota(
126+
strategy.amount,
127+
debt,
128+
BigInt(cm.collateralTokens[collateral]),
129+
),
130+
},
131+
],
132+
minQuota: [
133+
{
134+
token: collateral,
135+
balance: this.#calcQuota(
136+
strategy.minAmount,
137+
debt,
138+
BigInt(cm.collateralTokens[collateral]),
139+
),
140+
},
141+
],
122142
collateral: [{ token: underlying, balance: minDebt }],
123-
debt: minDebt * BigInt(leverage - 1),
143+
debt,
124144
calls: strategy.calls,
125145
ethAmount: 0n,
126146
permits: {},
@@ -340,6 +360,15 @@ export class AccountOpener {
340360
return this.#borrower;
341361
}
342362

363+
#calcQuota(amount: bigint, debt: bigint, lt: bigint): bigint {
364+
let quota = (amount * lt) / PERCENTAGE_FACTOR;
365+
quota = debt < quota ? debt : quota;
366+
367+
quota = (quota * (PERCENTAGE_FACTOR + 500n)) / PERCENTAGE_FACTOR;
368+
369+
return (quota / PERCENTAGE_FACTOR) * PERCENTAGE_FACTOR;
370+
}
371+
343372
private get sdk(): GearboxSDK {
344373
return this.#service.sdk;
345374
}

0 commit comments

Comments
 (0)