@percolatorct/sdk 2.0.8 → 2.0.9

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 CHANGED
@@ -2317,6 +2317,7 @@ var V12_19_CONFIG_LEN = 480;
2317
2317
  var V12_19_ENGINE_OFF_SBF = 616;
2318
2318
  var V12_19_ACCOUNT_SIZE_SBF = 360;
2319
2319
  var V12_19_SBF_ENGINE_BITMAP_OFF = 736;
2320
+ var V12_19_SBF_ENGINE_PARAMS_SIZE = 168;
2320
2321
  var V12_19_SBF_ENGINE_CURRENT_SLOT_OFF = 200;
2321
2322
  var V12_19_SBF_ENGINE_MARKET_MODE_OFF = 208;
2322
2323
  var V12_19_SBF_ENGINE_RESOLVED_LIVE_PRICE_OFF = 304;
@@ -2367,6 +2368,7 @@ function buildLayoutV12_19(maxAccounts, _dataLen) {
2367
2368
  accountSize: V12_19_ACCOUNT_SIZE_SBF,
2368
2369
  accountsOff,
2369
2370
  bitmapWords,
2371
+ paramsSize: V12_19_SBF_ENGINE_PARAMS_SIZE,
2370
2372
  engineBitmapOff: V12_19_SBF_ENGINE_BITMAP_OFF,
2371
2373
  // V12_19-specific engine field offsets (probe-confirmed):
2372
2374
  engineCurrentSlotOff: V12_19_SBF_ENGINE_CURRENT_SLOT_OFF,
@@ -3331,6 +3333,19 @@ var V12_1_PARAMS_MIN_INITIAL_DEP_OFF = 120;
3331
3333
  var V12_1_PARAMS_MIN_NZ_MM_OFF = 136;
3332
3334
  var V12_1_PARAMS_MIN_NZ_IM_OFF = 152;
3333
3335
  var V12_1_PARAMS_INS_FLOOR_OFF = 168;
3336
+ var V12_19_PARAMS_MAINTENANCE_MARGIN_OFF = 0;
3337
+ var V12_19_PARAMS_INITIAL_MARGIN_OFF = 8;
3338
+ var V12_19_PARAMS_TRADING_FEE_OFF = 16;
3339
+ var V12_19_PARAMS_MAX_ACCOUNTS_OFF = 24;
3340
+ var V12_19_PARAMS_LIQ_FEE_BPS_OFF = 32;
3341
+ var V12_19_PARAMS_LIQ_FEE_CAP_OFF = 40;
3342
+ var V12_19_PARAMS_MIN_LIQ_OFF = 56;
3343
+ var V12_19_PARAMS_MIN_NZ_MM_OFF = 72;
3344
+ var V12_19_PARAMS_MIN_NZ_IM_OFF = 88;
3345
+ var V12_19_PARAMS_H_MIN_OFF = 104;
3346
+ var V12_19_PARAMS_H_MAX_OFF = 112;
3347
+ var V12_19_PARAMS_RESOLVE_PRICE_DEVIATION_OFF = 120;
3348
+ var V12_19_PARAMS_MAX_ACCRUAL_DT_OFF = 128;
3334
3349
  var ACCT_ACCOUNT_ID_OFF = 0;
3335
3350
  var ACCT_CAPITAL_OFF = 8;
3336
3351
  var ACCT_KIND_OFF = 24;
@@ -3736,14 +3751,15 @@ function parseParams(data, layoutHint) {
3736
3751
  throw new Error(`Slab data too short for RiskParams: ${data.length} < ${base + MIN_PARAMS_BYTES}`);
3737
3752
  }
3738
3753
  const isV12_15Params = paramsSize === V12_15_PARAMS_SIZE || paramsSize === 184;
3754
+ const isV12_19Params = layout !== null && layout !== void 0 && layout.engineOff === V12_19_ENGINE_OFF_SBF && paramsSize === V12_19_SBF_ENGINE_PARAMS_SIZE;
3739
3755
  const isV12_1Sbf = !isV12_15Params && layout !== null && layout !== void 0 && layout.engineOff === V12_1_SBF_ENGINE_OFF && paramsSize === 184;
3740
3756
  const result = {
3741
- warmupPeriodSlots: isV12_15Params ? readU64LE(data, base + V12_15_PARAMS_H_MIN_OFF) : readU64LE(data, base + PARAMS_WARMUP_PERIOD_OFF),
3742
- maintenanceMarginBps: isV12_15Params ? readU64LE(data, base + 0) : readU64LE(data, base + PARAMS_MAINTENANCE_MARGIN_OFF),
3743
- initialMarginBps: isV12_15Params ? readU64LE(data, base + 8) : readU64LE(data, base + PARAMS_INITIAL_MARGIN_OFF),
3744
- tradingFeeBps: isV12_15Params ? readU64LE(data, base + 16) : readU64LE(data, base + PARAMS_TRADING_FEE_OFF),
3745
- maxAccounts: isV12_15Params ? readU64LE(data, base + V12_15_PARAMS_MAX_ACCOUNTS_OFF) : readU64LE(data, base + PARAMS_MAX_ACCOUNTS_OFF),
3746
- newAccountFee: isV12_15Params ? readU128LE(data, base + 32) : readU128LE(data, base + PARAMS_NEW_ACCOUNT_FEE_OFF),
3757
+ warmupPeriodSlots: isV12_19Params ? readU64LE(data, base + V12_19_PARAMS_H_MIN_OFF) : isV12_15Params ? readU64LE(data, base + V12_15_PARAMS_H_MIN_OFF) : readU64LE(data, base + PARAMS_WARMUP_PERIOD_OFF),
3758
+ maintenanceMarginBps: isV12_19Params ? readU64LE(data, base + V12_19_PARAMS_MAINTENANCE_MARGIN_OFF) : isV12_15Params ? readU64LE(data, base + 0) : readU64LE(data, base + PARAMS_MAINTENANCE_MARGIN_OFF),
3759
+ initialMarginBps: isV12_19Params ? readU64LE(data, base + V12_19_PARAMS_INITIAL_MARGIN_OFF) : isV12_15Params ? readU64LE(data, base + 8) : readU64LE(data, base + PARAMS_INITIAL_MARGIN_OFF),
3760
+ tradingFeeBps: isV12_19Params ? readU64LE(data, base + V12_19_PARAMS_TRADING_FEE_OFF) : isV12_15Params ? readU64LE(data, base + 16) : readU64LE(data, base + PARAMS_TRADING_FEE_OFF),
3761
+ maxAccounts: isV12_19Params ? readU64LE(data, base + V12_19_PARAMS_MAX_ACCOUNTS_OFF) : isV12_15Params ? readU64LE(data, base + V12_15_PARAMS_MAX_ACCOUNTS_OFF) : readU64LE(data, base + PARAMS_MAX_ACCOUNTS_OFF),
3762
+ newAccountFee: isV12_19Params ? 1n : isV12_15Params ? readU128LE(data, base + 32) : readU128LE(data, base + PARAMS_NEW_ACCOUNT_FEE_OFF),
3747
3763
  // Extended params: defaults; overwritten below if layout supports them
3748
3764
  riskReductionThreshold: 0n,
3749
3765
  maintenanceFeePerSlot: 0n,
@@ -3759,7 +3775,21 @@ function parseParams(data, layoutHint) {
3759
3775
  hMin: 0n,
3760
3776
  hMax: 0n
3761
3777
  };
3762
- if (isV12_15Params) {
3778
+ if (isV12_19Params) {
3779
+ result.hMin = readU64LE(data, base + V12_19_PARAMS_H_MIN_OFF);
3780
+ result.hMax = readU64LE(data, base + V12_19_PARAMS_H_MAX_OFF);
3781
+ result.riskReductionThreshold = 0n;
3782
+ result.maintenanceFeePerSlot = 0n;
3783
+ result.maxCrankStalenessSlots = readU64LE(data, base + V12_19_PARAMS_MAX_ACCRUAL_DT_OFF);
3784
+ result.liquidationFeeBps = readU64LE(data, base + V12_19_PARAMS_LIQ_FEE_BPS_OFF);
3785
+ result.liquidationFeeCap = readU128LE(data, base + V12_19_PARAMS_LIQ_FEE_CAP_OFF);
3786
+ result.liquidationBufferBps = readU64LE(data, base + V12_19_PARAMS_RESOLVE_PRICE_DEVIATION_OFF);
3787
+ result.minLiquidationAbs = readU128LE(data, base + V12_19_PARAMS_MIN_LIQ_OFF);
3788
+ result.minInitialDeposit = 0n;
3789
+ result.minNonzeroMmReq = readU128LE(data, base + V12_19_PARAMS_MIN_NZ_MM_OFF);
3790
+ result.minNonzeroImReq = readU128LE(data, base + V12_19_PARAMS_MIN_NZ_IM_OFF);
3791
+ result.insuranceFloor = 0n;
3792
+ } else if (isV12_15Params) {
3763
3793
  result.hMin = readU64LE(data, base + V12_15_PARAMS_H_MIN_OFF);
3764
3794
  result.hMax = readU64LE(data, base + V12_15_PARAMS_H_MAX_OFF);
3765
3795
  result.insuranceFloor = readU128LE(data, base + V12_15_PARAMS_INSURANCE_FLOOR_OFF);