@kamino-finance/klend-sdk 5.11.6-beta.0 → 5.11.7

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.
Files changed (133) hide show
  1. package/dist/classes/action.d.ts +27 -35
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +198 -344
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/index.d.ts +1 -0
  6. package/dist/classes/index.d.ts.map +1 -1
  7. package/dist/classes/index.js +1 -0
  8. package/dist/classes/index.js.map +1 -1
  9. package/dist/classes/manager.d.ts +6 -1
  10. package/dist/classes/manager.d.ts.map +1 -1
  11. package/dist/classes/manager.js +16 -1
  12. package/dist/classes/manager.js.map +1 -1
  13. package/dist/classes/market.d.ts +3 -3
  14. package/dist/classes/market.d.ts.map +1 -1
  15. package/dist/classes/market.js +30 -16
  16. package/dist/classes/market.js.map +1 -1
  17. package/dist/classes/obligation.d.ts +2 -0
  18. package/dist/classes/obligation.d.ts.map +1 -1
  19. package/dist/classes/obligation.js +5 -0
  20. package/dist/classes/obligation.js.map +1 -1
  21. package/dist/classes/types.d.ts.map +1 -1
  22. package/dist/classes/vault.d.ts +1 -0
  23. package/dist/classes/vault.d.ts.map +1 -1
  24. package/dist/classes/vault.js +26 -20
  25. package/dist/classes/vault.js.map +1 -1
  26. package/dist/client_kamino_manager.d.ts.map +1 -1
  27. package/dist/client_kamino_manager.js +11 -0
  28. package/dist/client_kamino_manager.js.map +1 -1
  29. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +6 -3
  30. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
  31. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +13 -7
  32. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
  33. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +25 -1
  34. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -1
  35. package/dist/idl_codegen_kamino_vault/errors/custom.js +43 -1
  36. package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
  37. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts +1 -1
  38. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts.map +1 -1
  39. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js +1 -1
  40. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js.map +1 -1
  41. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +1 -0
  42. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -1
  43. package/dist/idl_codegen_kamino_vault/instructions/initVault.js +1 -0
  44. package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
  45. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts +1 -1
  46. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts.map +1 -1
  47. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js +1 -1
  48. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js.map +1 -1
  49. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +1 -1
  50. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -1
  51. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js +1 -1
  52. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
  53. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts +1 -1
  54. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts.map +1 -1
  55. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js +1 -1
  56. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js.map +1 -1
  57. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts +1 -1
  58. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts.map +1 -1
  59. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js +1 -1
  60. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js.map +1 -1
  61. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts +1 -1
  62. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts.map +1 -1
  63. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js +1 -1
  64. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js.map +1 -1
  65. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts +13 -0
  66. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.d.ts.map +1 -1
  67. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js +25 -1
  68. package/dist/idl_codegen_kamino_vault/types/VaultConfigField.js.map +1 -1
  69. package/dist/idl_codegen_kamino_vault/types/index.d.ts +2 -2
  70. package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -1
  71. package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
  72. package/dist/lending_operations/repay_with_collateral_operations.d.ts +4 -4
  73. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  74. package/dist/lending_operations/repay_with_collateral_operations.js +10 -8
  75. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  76. package/dist/lending_operations/swap_collateral_operations.d.ts +2 -2
  77. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  78. package/dist/lending_operations/swap_collateral_operations.js +11 -6
  79. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  80. package/dist/leverage/operations.d.ts +9 -7
  81. package/dist/leverage/operations.d.ts.map +1 -1
  82. package/dist/leverage/operations.js +78 -66
  83. package/dist/leverage/operations.js.map +1 -1
  84. package/dist/leverage/types.d.ts +4 -4
  85. package/dist/leverage/types.d.ts.map +1 -1
  86. package/dist/utils/ObligationType.d.ts +1 -1
  87. package/dist/utils/ObligationType.d.ts.map +1 -1
  88. package/dist/utils/accountListing.d.ts +4 -4
  89. package/dist/utils/accountListing.d.ts.map +1 -1
  90. package/dist/utils/accountListing.js +3 -3
  91. package/dist/utils/accountListing.js.map +1 -1
  92. package/dist/utils/constants.d.ts +6 -0
  93. package/dist/utils/constants.d.ts.map +1 -1
  94. package/dist/utils/constants.js +7 -1
  95. package/dist/utils/constants.js.map +1 -1
  96. package/dist/utils/managerTypes.d.ts.map +1 -1
  97. package/dist/utils/managerTypes.js +7 -52
  98. package/dist/utils/managerTypes.js.map +1 -1
  99. package/dist/utils/oracle.d.ts +3 -3
  100. package/dist/utils/oracle.d.ts.map +1 -1
  101. package/dist/utils/oracle.js +4 -3
  102. package/dist/utils/oracle.js.map +1 -1
  103. package/package.json +2 -2
  104. package/src/classes/action.ts +225 -400
  105. package/src/classes/index.ts +1 -0
  106. package/src/classes/manager.ts +27 -1
  107. package/src/classes/market.ts +34 -25
  108. package/src/classes/obligation.ts +6 -0
  109. package/src/classes/types.ts +1 -1
  110. package/src/classes/vault.ts +28 -24
  111. package/src/client.ts +40 -9
  112. package/src/client_kamino_manager.ts +15 -0
  113. package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +17 -9
  114. package/src/idl_codegen_kamino_vault/errors/custom.ts +42 -0
  115. package/src/idl_codegen_kamino_vault/instructions/giveUpPendingFees.ts +2 -2
  116. package/src/idl_codegen_kamino_vault/instructions/initVault.ts +2 -0
  117. package/src/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.ts +2 -2
  118. package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +2 -2
  119. package/src/idl_codegen_kamino_vault/instructions/updateSharesMetadata.ts +2 -2
  120. package/src/idl_codegen_kamino_vault/instructions/updateVaultConfig.ts +2 -2
  121. package/src/idl_codegen_kamino_vault/instructions/withdrawPendingFees.ts +2 -2
  122. package/src/idl_codegen_kamino_vault/types/VaultConfigField.ts +30 -0
  123. package/src/idl_codegen_kamino_vault/types/index.ts +2 -0
  124. package/src/idl_kamino_vault.json +35 -8
  125. package/src/lending_operations/repay_with_collateral_operations.ts +15 -11
  126. package/src/lending_operations/swap_collateral_operations.ts +19 -7
  127. package/src/leverage/operations.ts +114 -66
  128. package/src/leverage/types.ts +4 -4
  129. package/src/utils/ObligationType.ts +1 -1
  130. package/src/utils/accountListing.ts +11 -7
  131. package/src/utils/constants.ts +7 -0
  132. package/src/utils/managerTypes.ts +10 -52
  133. package/src/utils/oracle.ts +7 -6
@@ -397,59 +397,17 @@ export function getReserveOracleConfigs(priceFeed: PriceFeed | null): {
397
397
  };
398
398
  }
399
399
 
400
+ const ORACLE_TYPE_MAP = Object.fromEntries(
401
+ Object.values(OracleType)
402
+ // Filter for oracle types that have a discriminator property
403
+ // This ensures we only include actual oracle implementations in the mapping
404
+ // Pyth is used as a type assertion here but actually any oracle type with a discriminator will pass
405
+ .filter((T): T is typeof OracleType.Pyth => 'discriminator' in T)
406
+ .map((T) => [T.discriminator, T.name])
407
+ );
408
+
400
409
  export function parseOracleType(type: number): string {
401
- switch (type) {
402
- case new OracleType.Pyth().discriminator:
403
- return 'Pyth';
404
- case new OracleType.SwitchboardV2().discriminator:
405
- return 'SwitchboardV2';
406
- case new OracleType.CToken().discriminator:
407
- return 'CToken';
408
- case new OracleType.KToken().discriminator:
409
- return 'KToken';
410
- case new OracleType.SplStake().discriminator:
411
- return 'SplStake';
412
- case new OracleType.PythEMA().discriminator:
413
- return 'PythEMA';
414
- case new OracleType.DeprecatedPlaceholder1().discriminator:
415
- return 'DeprecatedPlaceholder1';
416
- case new OracleType.DeprecatedPlaceholder2().discriminator:
417
- return 'DeprecatedPlaceholder2';
418
- case new OracleType.MsolStake().discriminator:
419
- return 'MsolStake';
420
- case new OracleType.KTokenToTokenA().discriminator:
421
- return 'KTokenToTokenA';
422
- case new OracleType.KTokenToTokenB().discriminator:
423
- return 'KTokenToTokenB';
424
- case new OracleType.JupiterLpFetch().discriminator:
425
- return 'JupiterLpFetch';
426
- case new OracleType.ScopeTwap().discriminator:
427
- return 'ScopeTwap';
428
- case new OracleType.OrcaWhirlpoolAtoB().discriminator:
429
- return 'OrcaWhirlpoolAtoB';
430
- case new OracleType.OrcaWhirlpoolBtoA().discriminator:
431
- return 'OrcaWhirlpoolBtoA';
432
- case new OracleType.RaydiumAmmV3AtoB().discriminator:
433
- return 'RaydiumAmmV3AtoB';
434
- case new OracleType.RaydiumAmmV3BtoA().discriminator:
435
- return 'RaydiumAmmV3BtoA';
436
- case new OracleType.JupiterLpCompute().discriminator:
437
- return 'JupiterLpCompute';
438
- case new OracleType.MeteoraDlmmAtoB().discriminator:
439
- return 'MeteoraDlmmAtoB';
440
- case new OracleType.MeteoraDlmmBtoA().discriminator:
441
- return 'MeteoraDlmmBtoA';
442
- case new OracleType.JupiterLpScope().discriminator:
443
- return 'JupiterLpScope';
444
- case new OracleType.PythPullBased().discriminator:
445
- return 'PythPullBased';
446
- case new OracleType.PythPullBasedEMA().discriminator:
447
- return 'PythPullBasedEMA';
448
- case new OracleType.FixedPrice().discriminator:
449
- return 'FixedPrice';
450
- default:
451
- return 'Unknown';
452
- }
410
+ return ORACLE_TYPE_MAP[type] || 'Unknown';
453
411
  }
454
412
 
455
413
  export type MarketWithAddress = {
@@ -35,8 +35,8 @@ export type CandidatePrice = {
35
35
  valid: boolean;
36
36
  };
37
37
 
38
- export type ScopeRefresh = {
39
- includeScopeRefresh: boolean;
38
+ export type ScopePriceRefreshConfig = {
39
+ scope: Scope;
40
40
  scopeFeed: string;
41
41
  };
42
42
 
@@ -170,10 +170,11 @@ export function cacheOrGetPythPrices(
170
170
  const { price, exponent, conf: confidence, publishTime: timestamp, emaPrice } = priceMessage;
171
171
  if (price) {
172
172
  const px = new Decimal(price.toString()).div(10 ** Math.abs(exponent));
173
+ const conf = new Decimal(confidence.toString());
173
174
  prices.spot = {
174
175
  price: px,
175
176
  timestamp: BigInt(timestamp.toString()),
176
- valid: validatePythPx(px, confidence.toNumber()),
177
+ valid: validatePythPx(px, conf),
177
178
  };
178
179
  }
179
180
  if (emaPrice !== undefined && emaPrice !== null) {
@@ -297,9 +298,9 @@ function isBetterPrice(current: CandidatePrice | undefined, next: CandidatePrice
297
298
  return next.timestamp > current.timestamp;
298
299
  }
299
300
 
300
- function validatePythPx(price: Decimal, confidence: number | undefined): boolean {
301
- const conf50x = new Decimal(confidence || 0).mul(CONFIDENCE_FACTOR);
302
- return price.gt(conf50x);
301
+ function validatePythPx(price: Decimal, confidence: Decimal): boolean {
302
+ const conf50x = confidence.mul(CONFIDENCE_FACTOR);
303
+ return !price.isZero() && price.gt(conf50x);
303
304
  }
304
305
 
305
306
  function validateSwitchboardV2Px(agg: any): boolean {