22: Broken
This commit is contained in:
+12
-2
@@ -8,6 +8,7 @@ import com.r35157.libs.solana.SolanaAccountInfo;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.ByteOrder;
|
import java.nio.ByteOrder;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
@@ -57,7 +58,15 @@ public class AnchorIdlJupiterPerpsPositionDecoder {
|
|||||||
.valueOf(rawSizeUsd)
|
.valueOf(rawSizeUsd)
|
||||||
.movePointLeft(6);
|
.movePointLeft(6);
|
||||||
|
|
||||||
BigInteger cumulativeInterestSnapshot = decodeCumulativeInterestSnapshot(accountInfo);
|
AnchorIdlJupiterPerpsCustodyDecoder custodyDecoder = new AnchorIdlJupiterPerpsCustodyDecoder();
|
||||||
|
BigInteger currentCumulativeInterestRate = custodyDecoder.decodeCurrentCumulativeInterestRate(collateralCustodyAccountInfo);
|
||||||
|
BigInteger cumulativeInterestSnapshot = decodeCumulativeInterestSnapshot(positionAccountInfo);
|
||||||
|
BigInteger difference = currentCumulativeInterestRate.subtract(cumulativeInterestSnapshot);
|
||||||
|
|
||||||
|
ΩUSDCAmountΩ borrowFeeUsd =
|
||||||
|
new BigDecimal(difference)
|
||||||
|
.multiply(sizeUsd)
|
||||||
|
.divide(BigDecimal.valueOf(1_000_000_000L), 6, RoundingMode.CEILING);
|
||||||
|
|
||||||
JupiterPerpsPosition pos = new JupiterPerpsPosition(
|
JupiterPerpsPosition pos = new JupiterPerpsPosition(
|
||||||
positionAccount,
|
positionAccount,
|
||||||
@@ -65,7 +74,8 @@ public class AnchorIdlJupiterPerpsPositionDecoder {
|
|||||||
direction,
|
direction,
|
||||||
tradedTokenMint,
|
tradedTokenMint,
|
||||||
sizeUsd,
|
sizeUsd,
|
||||||
collateralUsd
|
collateralUsd,
|
||||||
|
borrowFeeUsd
|
||||||
);
|
);
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
|
|||||||
@@ -14,10 +14,14 @@ import java.lang.management.ClassLoadingMXBean;
|
|||||||
import java.lang.management.ManagementFactory;
|
import java.lang.management.ManagementFactory;
|
||||||
import com.r35157.libs.jupiter.perps.impl.anchoridl.AnchorIdlJupiterPerpsCustodyDecoder;
|
import com.r35157.libs.jupiter.perps.impl.anchoridl.AnchorIdlJupiterPerpsCustodyDecoder;
|
||||||
import com.r35157.libs.solana.SolanaAccountInfo;
|
import com.r35157.libs.solana.SolanaAccountInfo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import com.r35157.nenjim.hubd.ctx.ContextManager;
|
import com.r35157.nenjim.hubd.ctx.ContextManager;
|
||||||
import com.r35157.nenjim.hubd.journal.JournalManager;
|
import com.r35157.nenjim.hubd.journal.JournalManager;
|
||||||
import com.r35157.nenjim.hubd.impl.ref.JournalManagerImpl;
|
import com.r35157.nenjim.hubd.impl.ref.JournalManagerImpl;
|
||||||
|
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -49,6 +53,14 @@ public class Main {
|
|||||||
System.out.println("currentCumulativeInterestRate: " + currentCumulativeInterestRate);
|
System.out.println("currentCumulativeInterestRate: " + currentCumulativeInterestRate);
|
||||||
System.out.println("cumulativeInterestSnapshot: " + cumulativeInterestSnapshot);
|
System.out.println("cumulativeInterestSnapshot: " + cumulativeInterestSnapshot);
|
||||||
System.out.println("difference: " + difference);
|
System.out.println("difference: " + difference);
|
||||||
|
|
||||||
|
BigDecimal borrowFeeUsdCandidate =
|
||||||
|
new BigDecimal(difference)
|
||||||
|
.multiply(position.sizeUsd())
|
||||||
|
.divide(BigDecimal.valueOf(1_000_000_000L), 6, RoundingMode.CEILING);
|
||||||
|
|
||||||
|
System.out.println("borrowFeeUsdCandidate: " + borrowFeeUsdCandidate);
|
||||||
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user