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 #!/usr/bin/env bash
set -euo pipefail 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" SOURCE="$HOME/projects/com_r35157_nenjim-hubd-impl_ref"
TARGET="$HOME/projects/com_r35157_nenjim-hubd-impl_ref_github_snapshot" 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 \ rsync -a --delete \
--exclude '.git' \ --exclude '.git' \
--exclude 'conf/*.conf' \ --exclude 'conf/*.conf' \
@@ -11,13 +30,12 @@ rsync -a --delete \
"$SOURCE/" \ "$SOURCE/" \
"$TARGET/" "$TARGET/"
cd "$TARGET"
git add -A git add -A
if git diff --cached --quiet; then if git diff --cached --quiet; then
echo "No snapshot changes to publish." echo "No snapshot changes to publish on branch '$BRANCH'."
exit 0 exit 0
fi fi
git commit -m "Mirror snapshot" git commit -m "Mirror snapshot"
git push git push -u origin "$BRANCH"
@@ -38,11 +38,31 @@ 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);
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( JupiterPerpsPosition pos = new JupiterPerpsPosition(
positionAccount, positionAccount,
entryPrice, entryPrice,
direction, direction,
tradedTokenMint tradedTokenMint,
sizeUsd,
collateralUsd
); );
return pos; return pos;
@@ -104,11 +124,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();
} }