4 Commits

Author SHA256 Message Date
minimons 0931dbe99a X: Update publishGitHub script 2026-07-03 12:06:36 +02:00
minimons 932b2589e4 21: Decode 'sizeUsd' 2026-06-29 17:04:05 +02:00
minimons 3e61f35c98 21: Add sizeUsd to JupiterPerpsPosition 2026-06-29 17:00:51 +02:00
minimons 3a739bde57 19: Decode 'collateralUsd' 2026-06-29 15:30:10 +02:00
2 changed files with 46 additions and 6 deletions
+21 -3
View File
@@ -1,9 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <github-snapshot-branch>" >&2
exit 1
fi
BRANCH="$1"
SOURCE="$HOME/projects/com_r35157_nenjim-hubd-impl_ref"
TARGET="$HOME/projects/com_r35157_nenjim-hubd-impl_ref_github_snapshot"
cd "$TARGET"
git fetch origin
if git show-ref --verify --quiet "refs/heads/$BRANCH"; then
git switch "$BRANCH"
elif git show-ref --verify --quiet "refs/remotes/origin/$BRANCH"; then
git switch --track "origin/$BRANCH"
else
git switch --create "$BRANCH"
fi
rsync -a --delete \
--exclude '.git' \
--exclude 'conf/*.conf' \
@@ -11,13 +30,12 @@ rsync -a --delete \
"$SOURCE/" \
"$TARGET/"
cd "$TARGET"
git add -A
if git diff --cached --quiet; then
echo "No snapshot changes to publish."
echo "No snapshot changes to publish on branch '$BRANCH'."
exit 0
fi
git commit -m "Mirror snapshot"
git push
git push -u origin "$BRANCH"
@@ -38,11 +38,31 @@ class AnchorIdlJupiterPerpsPositionDecoder {
.valueOf(rawEntryPrice)
.movePointLeft(6);
long rawCollateralUsd = ByteBuffer
.wrap(data, COLLATERAL_USD_OFFSET, U64_LENGTH)
.order(ByteOrder.LITTLE_ENDIAN)
.getLong();
ΩUSDCAmountΩ collateralUsd = BigDecimal
.valueOf(rawCollateralUsd)
.movePointLeft(6);
long rawSizeUsd = ByteBuffer
.wrap(data, SIZE_USD_OFFSET, U64_LENGTH)
.order(ByteOrder.LITTLE_ENDIAN)
.getLong();
ΩUSDCAmountΩ sizeUsd = BigDecimal
.valueOf(rawSizeUsd)
.movePointLeft(6);
JupiterPerpsPosition pos = new JupiterPerpsPosition(
positionAccount,
entryPrice,
direction,
tradedTokenMint
tradedTokenMint,
sizeUsd,
collateralUsd
);
return pos;
@@ -104,11 +124,13 @@ class AnchorIdlJupiterPerpsPositionDecoder {
private static final int OWNER_OFFSET = ANCHOR_DISCRIMINATOR_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 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 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 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();
}