19: Decode 'collateralUsd'

This commit is contained in:
2026-06-29 15:30:10 +02:00
parent 244a6f19fe
commit 3a739bde57
@@ -38,11 +38,21 @@ class AnchorIdlJupiterPerpsPositionDecoder {
.valueOf(rawEntryPrice) .valueOf(rawEntryPrice)
.movePointLeft(6); .movePointLeft(6);
long rawCollateralUsd = ByteBuffer
.wrap(data, COLLATERAL_USD_OFFSET, U64_LENGTH)
.order(ByteOrder.LITTLE_ENDIAN)
.getLong();
ΩUSDCAmountΩ collateralUsd = BigDecimal
.valueOf(rawCollateralUsd)
.movePointLeft(6);
JupiterPerpsPosition pos = new JupiterPerpsPosition( JupiterPerpsPosition pos = new JupiterPerpsPosition(
positionAccount, positionAccount,
entryPrice, entryPrice,
direction, direction,
tradedTokenMint tradedTokenMint,
collateralUsd
); );
return pos; return pos;
@@ -104,11 +114,13 @@ class AnchorIdlJupiterPerpsPositionDecoder {
private static final int OWNER_OFFSET = ANCHOR_DISCRIMINATOR_LENGTH; private static final int OWNER_OFFSET = ANCHOR_DISCRIMINATOR_LENGTH;
private static final int POOL_OFFSET = OWNER_OFFSET + PUBLIC_KEY_LENGTH; private static final int POOL_OFFSET = OWNER_OFFSET + PUBLIC_KEY_LENGTH;
private static final int CUSTODY_OFFSET = POOL_OFFSET + PUBLIC_KEY_LENGTH; private static final int CUSTODY_OFFSET = POOL_OFFSET + PUBLIC_KEY_LENGTH;
private static final int COLLATERAL_CUSTODY_OFFSET = CUSTODY_OFFSET + PUBLIC_KEY_LENGTH; // custody private static final int COLLATERAL_CUSTODY_OFFSET = CUSTODY_OFFSET + PUBLIC_KEY_LENGTH;
private static final int OPEN_TIME_OFFSET = COLLATERAL_CUSTODY_OFFSET + PUBLIC_KEY_LENGTH; private static final int OPEN_TIME_OFFSET = COLLATERAL_CUSTODY_OFFSET + PUBLIC_KEY_LENGTH;
private static final int UPDATE_TIME_OFFSET = OPEN_TIME_OFFSET + I64_LENGTH; // openTime private static final int UPDATE_TIME_OFFSET = OPEN_TIME_OFFSET + I64_LENGTH;
private static final int SIDE_OFFSET = UPDATE_TIME_OFFSET + I64_LENGTH; private static final int SIDE_OFFSET = UPDATE_TIME_OFFSET + I64_LENGTH;
private static final int PRICE_OFFSET = SIDE_OFFSET + SIDE_ENUM_LENGTH; private static final int PRICE_OFFSET = SIDE_OFFSET + SIDE_ENUM_LENGTH;
private static final int SIZE_USD_OFFSET = PRICE_OFFSET + U64_LENGTH;
private static final int COLLATERAL_USD_OFFSET = SIZE_USD_OFFSET + U64_LENGTH;
private static final Base58Codec base58 = new Base58CodecImpl(); private static final Base58Codec base58 = new Base58CodecImpl();
} }