bump max iterations in max swap, for edge cases
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
parent
37479a159d
commit
2cd8c048f3
|
@ -553,13 +553,17 @@ export class HealthCache {
|
|||
target: I80F48,
|
||||
fun: (amount: I80F48) => I80F48,
|
||||
): I80F48 {
|
||||
const maxIterations = 20;
|
||||
const maxIterations = 100;
|
||||
let current = start;
|
||||
// console.log(`scanRightUntilLessThan, start ${start.toLocaleString()}`);
|
||||
for (const key of Array(maxIterations).fill(0).keys()) {
|
||||
const value = fun(current);
|
||||
if (value.lt(target)) {
|
||||
return current;
|
||||
}
|
||||
// console.log(
|
||||
// ` - current ${current.toLocaleString()}, value ${value.toLocaleString()}, target ${target.toLocaleString()}`,
|
||||
// );
|
||||
current = current.max(ONE_I80F48()).mul(I80F48.fromNumber(2));
|
||||
}
|
||||
throw new Error('Could not find amount that led to health ratio <=0');
|
||||
|
@ -743,6 +747,24 @@ export class HealthCache {
|
|||
const zeroHealthEstimate = point1Amount.sub(
|
||||
point1Health.sub(finalHealthSlope),
|
||||
);
|
||||
const zeroHealthEstimateRatio = healthRatioAfterSwap(zeroHealthEstimate);
|
||||
|
||||
// console.log(`getMaxSourceForTokenSwap`);
|
||||
// console.log(` - finalHealthSlope ${finalHealthSlope.toLocaleString()}`);
|
||||
// console.log(` - minRatio ${minRatio.toLocaleString()}`);
|
||||
// console.log(` - point0Amount ${point0Amount.toLocaleString()}`);
|
||||
// console.log(` - point0Health ${point0Health.toLocaleString()}`);
|
||||
// console.log(` - point0Ratio ${point0Ratio.toLocaleString()}`);
|
||||
// console.log(` - point1Amount ${point1Amount.toLocaleString()}`);
|
||||
// console.log(` - point1Health ${point1Health.toLocaleString()}`);
|
||||
// console.log(` - point1Ratio ${point1Ratio.toLocaleString()}`);
|
||||
// console.log(
|
||||
// ` - zeroHealthEstimate ${zeroHealthEstimate.toLocaleString()}`,
|
||||
// );
|
||||
// console.log(
|
||||
// ` - zeroHealthEstimateRatio ${zeroHealthEstimateRatio.toLocaleString()}`,
|
||||
// );
|
||||
|
||||
const rightBound = HealthCache.scanRightUntilLessThan(
|
||||
zeroHealthEstimate,
|
||||
minRatio,
|
||||
|
|
|
@ -97,6 +97,9 @@ async function debugUser(
|
|||
}
|
||||
|
||||
function getMaxSourceForTokenSwapWrapper(src, tgt): void {
|
||||
// Turn on for debugging specific pairs
|
||||
// if (src != 'DAI' || tgt != 'ETH') return;
|
||||
|
||||
const maxSourceUi = mangoAccount.getMaxSourceUiForTokenSwap(
|
||||
group,
|
||||
group.banksMapByName.get(src)![0].mint,
|
||||
|
|
Loading…
Reference in New Issue