@@ -37,6 +37,7 @@ func EstimateBuyInUsdc(args *EstimateBuyInUsdcArgs) (uint64, uint64) {
37
37
scaledTokens := DefaultExponentialCurve ().ValueToTokens (scaledCurrentSupply , scaledBuyAmount )
38
38
unscaledTokens := new (big.Float ).Mul (scaledTokens , scale )
39
39
40
+ scale = big .NewFloat (math .Pow10 (int (DefaultMintDecimals ))).SetPrec (defaultCurvePrec )
40
41
feePctValue := new (big.Float ).SetPrec (defaultCurvePrec ).Quo (big .NewFloat (float64 (args .BuyFeeBps )), big .NewFloat (10000 ))
41
42
scaledFees := new (big.Float ).Mul (scaledTokens , feePctValue )
42
43
unscaledFees := new (big.Float ).Mul (scaledFees , scale )
@@ -57,14 +58,15 @@ func EstimateSellInUsdc(args *EstimateSellInUsdcArgs) (uint64, uint64) {
57
58
unscaledSellAmount := big .NewFloat (float64 (args .SellAmountInQuarks )).SetPrec (defaultCurvePrec )
58
59
scaledSellAmount := new (big.Float ).Quo (unscaledSellAmount , scale )
59
60
60
- scale = big .NewFloat (math .Pow10 (int (DefaultMintDecimals ))).SetPrec (defaultCurvePrec )
61
+ scale = big .NewFloat (math .Pow10 (int (usdc . Decimals ))).SetPrec (defaultCurvePrec )
61
62
unscaledCurrentValue := big .NewFloat (float64 (args .CurrentValueInQuarks )).SetPrec (defaultCurvePrec )
62
63
scaledCurrentValue := new (big.Float ).Quo (unscaledCurrentValue , scale )
63
64
64
65
scale = big .NewFloat (math .Pow10 (int (usdc .Decimals ))).SetPrec (defaultCurvePrec )
65
66
scaledValue := DefaultExponentialCurve ().TokensToValueFromCurrentValue (scaledCurrentValue , scaledSellAmount )
66
67
unscaledValue := new (big.Float ).Mul (scaledValue , scale )
67
68
69
+ scale = big .NewFloat (math .Pow10 (int (usdc .Decimals ))).SetPrec (defaultCurvePrec )
68
70
feePctValue := new (big.Float ).SetPrec (defaultCurvePrec ).Quo (big .NewFloat (float64 (args .SellFeeBps )), big .NewFloat (10000 ))
69
71
scaledFees := new (big.Float ).Mul (scaledValue , feePctValue )
70
72
unscaledFees := new (big.Float ).Mul (scaledFees , scale )
0 commit comments