@percolatorct/sdk 1.0.0-beta.21 → 1.0.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/solana/slab.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1685,7 +1685,6 @@ var V12_15_PARAMS_H_MAX_OFF = 168;
|
|
|
1685
1685
|
var V12_15_ENGINE_PARAMS_OFF = 32;
|
|
1686
1686
|
var V12_15_ENGINE_CURRENT_SLOT_OFF = 224;
|
|
1687
1687
|
var V12_15_ENGINE_FUNDING_RATE_E9_OFF = 240;
|
|
1688
|
-
var V12_15_ENGINE_MARKET_MODE_OFF = 256;
|
|
1689
1688
|
var V12_15_ENGINE_C_TOT_OFF = 344;
|
|
1690
1689
|
var V12_15_ENGINE_PNL_POS_TOT_OFF = 368;
|
|
1691
1690
|
var V12_15_ENGINE_PNL_MATURED_POS_TOT_OFF = 384;
|
|
@@ -2930,8 +2929,8 @@ function parseEngine(data) {
|
|
|
2930
2929
|
throw new Error(`Unrecognized slab data length: ${data.length}. Cannot determine layout version.`);
|
|
2931
2930
|
}
|
|
2932
2931
|
const base = layout.engineOff;
|
|
2933
|
-
const isV12_15 = (layout.accountSize === V12_15_ACCOUNT_SIZE || layout.accountSize === V12_15_ACCOUNT_SIZE_SMALL) && layout.engineOff === V12_15_ENGINE_OFF;
|
|
2934
|
-
const fundingRateBpsPerSlotLast = isV12_15 ? readI128LE(data, base +
|
|
2932
|
+
const isV12_15 = (layout.accountSize === V12_15_ACCOUNT_SIZE || layout.accountSize === V12_15_ACCOUNT_SIZE_SMALL) && (layout.engineOff === V12_15_ENGINE_OFF || layout.engineOff === V12_15_ENGINE_OFF_SBF);
|
|
2933
|
+
const fundingRateBpsPerSlotLast = isV12_15 ? readI128LE(data, base + layout.engineFundingRateBpsOff) : readI64LE(data, base + layout.engineFundingRateBpsOff);
|
|
2935
2934
|
return {
|
|
2936
2935
|
vault: readU128LE(data, base),
|
|
2937
2936
|
insuranceFund: {
|
|
@@ -2945,8 +2944,8 @@ function parseEngine(data) {
|
|
|
2945
2944
|
fundingIndexQpbE6: layout.engineFundingIndexOff >= 0 ? readI128LE(data, base + layout.engineFundingIndexOff) : 0n,
|
|
2946
2945
|
lastFundingSlot: layout.engineLastFundingSlotOff >= 0 ? readU64LE(data, base + layout.engineLastFundingSlotOff) : 0n,
|
|
2947
2946
|
fundingRateBpsPerSlotLast,
|
|
2948
|
-
fundingRateE9: isV12_15 ? readI128LE(data, base +
|
|
2949
|
-
marketMode: isV12_15 ? readU8(data, base +
|
|
2947
|
+
fundingRateE9: isV12_15 ? readI128LE(data, base + layout.engineFundingRateBpsOff) : 0n,
|
|
2948
|
+
marketMode: isV12_15 ? readU8(data, base + layout.engineFundingRateBpsOff + 16) === 1 ? 1 : 0 : null,
|
|
2950
2949
|
lastCrankSlot: readU64LE(data, base + layout.engineLastCrankSlotOff),
|
|
2951
2950
|
maxCrankStalenessSlots: readU64LE(data, base + layout.engineMaxCrankStalenessOff),
|
|
2952
2951
|
totalOpenInterest: layout.engineTotalOiOff >= 0 ? readU128LE(data, base + layout.engineTotalOiOff) : 0n,
|
|
@@ -2971,6 +2970,9 @@ function parseEngine(data) {
|
|
|
2971
2970
|
emergencyStartSlot: layout.engineEmergencyStartSlotOff >= 0 ? readU64LE(data, base + layout.engineEmergencyStartSlotOff) : 0n,
|
|
2972
2971
|
lastBreakerSlot: layout.engineLastBreakerSlotOff >= 0 ? readU64LE(data, base + layout.engineLastBreakerSlotOff) : 0n,
|
|
2973
2972
|
markPriceE6: layout.engineMarkPriceOff >= 0 ? readU64LE(data, base + layout.engineMarkPriceOff) : 0n,
|
|
2973
|
+
// V12_15: last_oracle_price at engine+608 (SBF) / engine+... (native).
|
|
2974
|
+
// Located at bitmapOff - 40 on SBF (648-40=608, verified on-chain).
|
|
2975
|
+
oraclePriceE6: isV12_15 ? readU64LE(data, base + layout.engineBitmapOff - 40) : 0n,
|
|
2974
2976
|
numUsedAccounts: (() => {
|
|
2975
2977
|
if (layout.postBitmap < 18) return 0;
|
|
2976
2978
|
const bw = layout.bitmapWords;
|
|
@@ -3422,6 +3424,7 @@ function parseEngineLight(data, layout, maxAccounts = 4096) {
|
|
|
3422
3424
|
lastBreakerSlot: 0n,
|
|
3423
3425
|
markPriceE6: 0n,
|
|
3424
3426
|
// V0 engine has no mark_price field
|
|
3427
|
+
oraclePriceE6: 0n,
|
|
3425
3428
|
numUsedAccounts: canReadNumUsed ? readU16LE2(data, base + numUsedOff) : 0,
|
|
3426
3429
|
nextAccountId: canReadNextId ? readU64LE2(data, base + nextAccountIdOff) : 0n
|
|
3427
3430
|
};
|
|
@@ -3470,6 +3473,7 @@ function parseEngineLight(data, layout, maxAccounts = 4096) {
|
|
|
3470
3473
|
lastBreakerSlot: 0n,
|
|
3471
3474
|
markPriceE6: 0n,
|
|
3472
3475
|
// V2 has no mark_price
|
|
3476
|
+
oraclePriceE6: 0n,
|
|
3473
3477
|
numUsedAccounts: canReadNumUsed ? readU16LE2(data, base + numUsedOff) : 0,
|
|
3474
3478
|
nextAccountId: canReadNextId ? readU64LE2(data, base + nextAccountIdOff) : 0n
|
|
3475
3479
|
};
|
|
@@ -3515,6 +3519,7 @@ function parseEngineLight(data, layout, maxAccounts = 4096) {
|
|
|
3515
3519
|
emergencyStartSlot: l.engineEmergencyStartSlotOff >= 0 ? readU64LE2(data, base + l.engineEmergencyStartSlotOff) : 0n,
|
|
3516
3520
|
lastBreakerSlot: l.engineLastBreakerSlotOff >= 0 ? readU64LE2(data, base + l.engineLastBreakerSlotOff) : 0n,
|
|
3517
3521
|
markPriceE6: l.engineMarkPriceOff >= 0 ? readU64LE2(data, base + l.engineMarkPriceOff) : 0n,
|
|
3522
|
+
oraclePriceE6: 0n,
|
|
3518
3523
|
numUsedAccounts: canReadNumUsed ? readU16LE2(data, base + numUsedOff) : 0,
|
|
3519
3524
|
nextAccountId: canReadNextId ? readU64LE2(data, base + nextAccountIdOff) : 0n
|
|
3520
3525
|
};
|
|
@@ -3559,6 +3564,7 @@ function parseEngineLight(data, layout, maxAccounts = 4096) {
|
|
|
3559
3564
|
lastBreakerSlot: readU64LE2(data, base + 624),
|
|
3560
3565
|
markPriceE6: readU64LE2(data, base + 400),
|
|
3561
3566
|
// PERC-1094: was 392
|
|
3567
|
+
oraclePriceE6: 0n,
|
|
3562
3568
|
numUsedAccounts: canReadNumUsed ? readU16LE2(data, base + numUsedOff) : 0,
|
|
3563
3569
|
nextAccountId: canReadNextId ? readU64LE2(data, base + nextAccountIdOff) : 0n
|
|
3564
3570
|
};
|