Skip to content

Commit d1febf3

Browse files
committed
Add stake pool state offset.
1 parent a441354 commit d1febf3

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencyResolutionManagement {
1111
}
1212
versionCatalogs {
1313
libs {
14-
from("software.sava:solana-version-catalog:0.4.8")
14+
from("software.sava:solana-version-catalog:0.4.17")
1515
}
1616
}
1717
}

src/main/java/software/sava/solana/programs/stakepool/StakePoolState.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,22 @@ public BigDecimal calculateSolPrice(final int scale, final RoundingMode rounding
5454
return this.totalLamports.divide(this.poolTokenSupply, scale, roundingMode).stripTrailingZeros();
5555
}
5656

57+
public static final int MANAGER_OFFSET = 1;
58+
public static final int STAKE_OFFSET = MANAGER_OFFSET + PUBLIC_KEY_LENGTH;
59+
public static final int STAKE_DEPOSIT_AUTHORITY_OFFSET = STAKE_OFFSET + PUBLIC_KEY_LENGTH;
60+
public static final int STAKE_WITHDRAWAL_BUMP_SEED_OFFSET = STAKE_DEPOSIT_AUTHORITY_OFFSET + PUBLIC_KEY_LENGTH;
61+
public static final int VALIDATOR_LIST_OFFSET = STAKE_WITHDRAWAL_BUMP_SEED_OFFSET + 1;
62+
public static final int RESERVE_STAKE_OFFSET = VALIDATOR_LIST_OFFSET + PUBLIC_KEY_LENGTH;
63+
public static final int POOL_MINT_OFFSET = RESERVE_STAKE_OFFSET + PUBLIC_KEY_LENGTH;
64+
public static final int MANAGER_FEE_OFFSET = POOL_MINT_OFFSET + PUBLIC_KEY_LENGTH;
65+
public static final int TOKEN_PROGRAM_ID_OFFSET = MANAGER_FEE_OFFSET + PUBLIC_KEY_LENGTH;
66+
public static final int TOTAL_LAMPORTS_OFFSET = TOKEN_PROGRAM_ID_OFFSET + PUBLIC_KEY_LENGTH;
67+
public static final int POOL_TOKEN_SUPPLY_OFFSET = TOTAL_LAMPORTS_OFFSET + Long.BYTES;
68+
public static final int LAST_UPDATE_EPOCH_OFFSET = POOL_TOKEN_SUPPLY_OFFSET + Long.BYTES;
69+
public static final int LOCKUP_OFFSET = LAST_UPDATE_EPOCH_OFFSET + Long.BYTES;
70+
public static final int EPOCH_FEE_OFFSET = LOCKUP_OFFSET + LockUp.BYTES;
71+
public static final int NEXT_EPOCH_FEE_OFFSET = EPOCH_FEE_OFFSET + Fee.BYTES;
72+
5773
public static final BiFunction<PublicKey, byte[], StakePoolState> FACTORY = StakePoolState::parseProgramData;
5874

5975
public static StakePoolState parseProgramData(final byte[] data) {
@@ -81,7 +97,6 @@ public static StakePoolState parseProgramData(final PublicKey address, final byt
8197
offset += PUBLIC_KEY_LENGTH;
8298
final var tokenProgramId = readPubKey(data, offset);
8399
offset += PUBLIC_KEY_LENGTH;
84-
85100
final long totalLamports = ByteUtil.getInt64LE(data, offset);
86101
offset += Long.BYTES;
87102
final long poolTokenSupply = ByteUtil.getInt64LE(data, offset);

0 commit comments

Comments
 (0)