@kamino-finance/klend-sdk 2.10.6

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 (369) hide show
  1. package/README.md +85 -0
  2. package/dist/classes/action.d.ts +154 -0
  3. package/dist/classes/action.js +1505 -0
  4. package/dist/classes/action.js.map +1 -0
  5. package/dist/classes/curve.d.ts +15 -0
  6. package/dist/classes/curve.js +32 -0
  7. package/dist/classes/curve.js.map +1 -0
  8. package/dist/classes/fraction.d.ts +23 -0
  9. package/dist/classes/fraction.js +60 -0
  10. package/dist/classes/fraction.js.map +1 -0
  11. package/dist/classes/index.d.ts +8 -0
  12. package/dist/classes/index.js +25 -0
  13. package/dist/classes/index.js.map +1 -0
  14. package/dist/classes/jupiterPerps.d.ts +2 -0
  15. package/dist/classes/jupiterPerps.js +25 -0
  16. package/dist/classes/jupiterPerps.js.map +1 -0
  17. package/dist/classes/market.d.ts +140 -0
  18. package/dist/classes/market.js +901 -0
  19. package/dist/classes/market.js.map +1 -0
  20. package/dist/classes/obligation.d.ts +170 -0
  21. package/dist/classes/obligation.js +610 -0
  22. package/dist/classes/obligation.js.map +1 -0
  23. package/dist/classes/reserve.d.ts +161 -0
  24. package/dist/classes/reserve.js +474 -0
  25. package/dist/classes/reserve.js.map +1 -0
  26. package/dist/classes/shared.d.ts +41 -0
  27. package/dist/classes/shared.js +10 -0
  28. package/dist/classes/shared.js.map +1 -0
  29. package/dist/classes/utils.d.ts +40 -0
  30. package/dist/classes/utils.js +129 -0
  31. package/dist/classes/utils.js.map +1 -0
  32. package/dist/idl.json +4102 -0
  33. package/dist/idl_codegen/accounts/LendingMarket.d.ts +153 -0
  34. package/dist/idl_codegen/accounts/LendingMarket.js +204 -0
  35. package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -0
  36. package/dist/idl_codegen/accounts/Obligation.d.ts +139 -0
  37. package/dist/idl_codegen/accounts/Obligation.js +193 -0
  38. package/dist/idl_codegen/accounts/Obligation.js.map +1 -0
  39. package/dist/idl_codegen/accounts/ReferrerState.d.ts +22 -0
  40. package/dist/idl_codegen/accounts/ReferrerState.js +101 -0
  41. package/dist/idl_codegen/accounts/ReferrerState.js.map +1 -0
  42. package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts +51 -0
  43. package/dist/idl_codegen/accounts/ReferrerTokenState.js +126 -0
  44. package/dist/idl_codegen/accounts/ReferrerTokenState.js.map +1 -0
  45. package/dist/idl_codegen/accounts/Reserve.d.ts +72 -0
  46. package/dist/idl_codegen/accounts/Reserve.js +156 -0
  47. package/dist/idl_codegen/accounts/Reserve.js.map +1 -0
  48. package/dist/idl_codegen/accounts/ShortUrl.d.ts +22 -0
  49. package/dist/idl_codegen/accounts/ShortUrl.js +101 -0
  50. package/dist/idl_codegen/accounts/ShortUrl.js.map +1 -0
  51. package/dist/idl_codegen/accounts/UserMetadata.d.ts +48 -0
  52. package/dist/idl_codegen/accounts/UserMetadata.js +126 -0
  53. package/dist/idl_codegen/accounts/UserMetadata.js.map +1 -0
  54. package/dist/idl_codegen/accounts/UserState.d.ts +143 -0
  55. package/dist/idl_codegen/accounts/UserState.js +180 -0
  56. package/dist/idl_codegen/accounts/UserState.js.map +1 -0
  57. package/dist/idl_codegen/accounts/index.d.ts +16 -0
  58. package/dist/idl_codegen/accounts/index.js +20 -0
  59. package/dist/idl_codegen/accounts/index.js.map +1 -0
  60. package/dist/idl_codegen/errors/anchor.d.ts +434 -0
  61. package/dist/idl_codegen/errors/anchor.js +713 -0
  62. package/dist/idl_codegen/errors/anchor.js.map +1 -0
  63. package/dist/idl_codegen/errors/custom.d.ts +730 -0
  64. package/dist/idl_codegen/errors/custom.js +1194 -0
  65. package/dist/idl_codegen/errors/custom.js.map +1 -0
  66. package/dist/idl_codegen/errors/index.d.ts +5 -0
  67. package/dist/idl_codegen/errors/index.js +71 -0
  68. package/dist/idl_codegen/errors/index.js.map +1 -0
  69. package/dist/idl_codegen/instructions/borrowObligationLiquidity.d.ts +20 -0
  70. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js +75 -0
  71. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -0
  72. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.d.ts +9 -0
  73. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js +20 -0
  74. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js.map +1 -0
  75. package/dist/idl_codegen/instructions/depositObligationCollateral.d.ts +17 -0
  76. package/dist/idl_codegen/instructions/depositObligationCollateral.js +64 -0
  77. package/dist/idl_codegen/instructions/depositObligationCollateral.js.map +1 -0
  78. package/dist/idl_codegen/instructions/depositReserveLiquidity.d.ts +19 -0
  79. package/dist/idl_codegen/instructions/depositReserveLiquidity.js +74 -0
  80. package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -0
  81. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.d.ts +21 -0
  82. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js +80 -0
  83. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -0
  84. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.d.ts +20 -0
  85. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js +75 -0
  86. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js.map +1 -0
  87. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.d.ts +21 -0
  88. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js +75 -0
  89. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js.map +1 -0
  90. package/dist/idl_codegen/instructions/idlMissingTypes.d.ts +18 -0
  91. package/dist/idl_codegen/instructions/idlMissingTypes.js +62 -0
  92. package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -0
  93. package/dist/idl_codegen/instructions/index.d.ts +66 -0
  94. package/dist/idl_codegen/instructions/index.js +70 -0
  95. package/dist/idl_codegen/instructions/index.js.map +1 -0
  96. package/dist/idl_codegen/instructions/initFarmsForReserve.d.ts +19 -0
  97. package/dist/idl_codegen/instructions/initFarmsForReserve.js +63 -0
  98. package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -0
  99. package/dist/idl_codegen/instructions/initLendingMarket.d.ts +13 -0
  100. package/dist/idl_codegen/instructions/initLendingMarket.js +55 -0
  101. package/dist/idl_codegen/instructions/initLendingMarket.js.map +1 -0
  102. package/dist/idl_codegen/instructions/initObligation.d.ts +19 -0
  103. package/dist/idl_codegen/instructions/initObligation.js +55 -0
  104. package/dist/idl_codegen/instructions/initObligation.js.map +1 -0
  105. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.d.ts +20 -0
  106. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js +60 -0
  107. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -0
  108. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.d.ts +14 -0
  109. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js +54 -0
  110. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js.map +1 -0
  111. package/dist/idl_codegen/instructions/initReferrerTokenState.d.ts +14 -0
  112. package/dist/idl_codegen/instructions/initReferrerTokenState.js +50 -0
  113. package/dist/idl_codegen/instructions/initReferrerTokenState.js.map +1 -0
  114. package/dist/idl_codegen/instructions/initReserve.d.ts +16 -0
  115. package/dist/idl_codegen/instructions/initReserve.js +47 -0
  116. package/dist/idl_codegen/instructions/initReserve.js.map +1 -0
  117. package/dist/idl_codegen/instructions/initUserMetadata.d.ts +14 -0
  118. package/dist/idl_codegen/instructions/initUserMetadata.js +54 -0
  119. package/dist/idl_codegen/instructions/initUserMetadata.js.map +1 -0
  120. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts +27 -0
  121. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js +102 -0
  122. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -0
  123. package/dist/idl_codegen/instructions/redeemFees.d.ts +10 -0
  124. package/dist/idl_codegen/instructions/redeemFees.js +33 -0
  125. package/dist/idl_codegen/instructions/redeemFees.js.map +1 -0
  126. package/dist/idl_codegen/instructions/redeemReserveCollateral.d.ts +19 -0
  127. package/dist/idl_codegen/instructions/redeemReserveCollateral.js +78 -0
  128. package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -0
  129. package/dist/idl_codegen/instructions/refreshObligation.d.ts +6 -0
  130. package/dist/idl_codegen/instructions/refreshObligation.js +17 -0
  131. package/dist/idl_codegen/instructions/refreshObligation.js.map +1 -0
  132. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts +19 -0
  133. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js +63 -0
  134. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -0
  135. package/dist/idl_codegen/instructions/refreshReserve.d.ts +10 -0
  136. package/dist/idl_codegen/instructions/refreshReserve.js +29 -0
  137. package/dist/idl_codegen/instructions/refreshReserve.js.map +1 -0
  138. package/dist/idl_codegen/instructions/repayObligationLiquidity.d.ts +17 -0
  139. package/dist/idl_codegen/instructions/repayObligationLiquidity.js +60 -0
  140. package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -0
  141. package/dist/idl_codegen/instructions/requestElevationGroup.d.ts +11 -0
  142. package/dist/idl_codegen/instructions/requestElevationGroup.js +47 -0
  143. package/dist/idl_codegen/instructions/requestElevationGroup.js.map +1 -0
  144. package/dist/idl_codegen/instructions/socializeLoss.d.ts +14 -0
  145. package/dist/idl_codegen/instructions/socializeLoss.js +53 -0
  146. package/dist/idl_codegen/instructions/socializeLoss.js.map +1 -0
  147. package/dist/idl_codegen/instructions/updateEntireReserveConfig.d.ts +13 -0
  148. package/dist/idl_codegen/instructions/updateEntireReserveConfig.js +51 -0
  149. package/dist/idl_codegen/instructions/updateEntireReserveConfig.js.map +1 -0
  150. package/dist/idl_codegen/instructions/updateLendingMarket.d.ts +12 -0
  151. package/dist/idl_codegen/instructions/updateLendingMarket.js +50 -0
  152. package/dist/idl_codegen/instructions/updateLendingMarket.js.map +1 -0
  153. package/dist/idl_codegen/instructions/updateLendingMarketOwner.d.ts +6 -0
  154. package/dist/idl_codegen/instructions/updateLendingMarketOwner.js +21 -0
  155. package/dist/idl_codegen/instructions/updateLendingMarketOwner.js.map +1 -0
  156. package/dist/idl_codegen/instructions/updateReserveConfig.d.ts +13 -0
  157. package/dist/idl_codegen/instructions/updateReserveConfig.js +51 -0
  158. package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -0
  159. package/dist/idl_codegen/instructions/updateSingleReserveConfig.d.ts +13 -0
  160. package/dist/idl_codegen/instructions/updateSingleReserveConfig.js +51 -0
  161. package/dist/idl_codegen/instructions/updateSingleReserveConfig.js.map +1 -0
  162. package/dist/idl_codegen/instructions/withdrawObligationCollateral.d.ts +18 -0
  163. package/dist/idl_codegen/instructions/withdrawObligationCollateral.js +69 -0
  164. package/dist/idl_codegen/instructions/withdrawObligationCollateral.js.map +1 -0
  165. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts +21 -0
  166. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +84 -0
  167. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -0
  168. package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts +16 -0
  169. package/dist/idl_codegen/instructions/withdrawProtocolFee.js +59 -0
  170. package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -0
  171. package/dist/idl_codegen/instructions/withdrawReferrerFees.d.ts +12 -0
  172. package/dist/idl_codegen/instructions/withdrawReferrerFees.js +35 -0
  173. package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -0
  174. package/dist/idl_codegen/programId.d.ts +4 -0
  175. package/dist/idl_codegen/programId.js +13 -0
  176. package/dist/idl_codegen/programId.js.map +1 -0
  177. package/dist/idl_codegen/types/AssetTier.d.ts +44 -0
  178. package/dist/idl_codegen/types/AssetTier.js +128 -0
  179. package/dist/idl_codegen/types/AssetTier.js.map +1 -0
  180. package/dist/idl_codegen/types/BigFractionBytes.d.ts +27 -0
  181. package/dist/idl_codegen/types/BigFractionBytes.js +73 -0
  182. package/dist/idl_codegen/types/BigFractionBytes.js.map +1 -0
  183. package/dist/idl_codegen/types/BorrowRateCurve.d.ts +27 -0
  184. package/dist/idl_codegen/types/BorrowRateCurve.js +62 -0
  185. package/dist/idl_codegen/types/BorrowRateCurve.js.map +1 -0
  186. package/dist/idl_codegen/types/CurvePoint.d.ts +26 -0
  187. package/dist/idl_codegen/types/CurvePoint.js +66 -0
  188. package/dist/idl_codegen/types/CurvePoint.js.map +1 -0
  189. package/dist/idl_codegen/types/ElevationGroup.d.ts +52 -0
  190. package/dist/idl_codegen/types/ElevationGroup.js +103 -0
  191. package/dist/idl_codegen/types/ElevationGroup.js.map +1 -0
  192. package/dist/idl_codegen/types/FeeCalculation.d.ts +31 -0
  193. package/dist/idl_codegen/types/FeeCalculation.js +102 -0
  194. package/dist/idl_codegen/types/FeeCalculation.js.map +1 -0
  195. package/dist/idl_codegen/types/InitObligationArgs.d.ts +26 -0
  196. package/dist/idl_codegen/types/InitObligationArgs.js +66 -0
  197. package/dist/idl_codegen/types/InitObligationArgs.js.map +1 -0
  198. package/dist/idl_codegen/types/LastUpdate.d.ts +47 -0
  199. package/dist/idl_codegen/types/LastUpdate.js +86 -0
  200. package/dist/idl_codegen/types/LastUpdate.js.map +1 -0
  201. package/dist/idl_codegen/types/ObligationCollateral.d.ts +48 -0
  202. package/dist/idl_codegen/types/ObligationCollateral.js +87 -0
  203. package/dist/idl_codegen/types/ObligationCollateral.js.map +1 -0
  204. package/dist/idl_codegen/types/ObligationLiquidity.d.ts +75 -0
  205. package/dist/idl_codegen/types/ObligationLiquidity.js +107 -0
  206. package/dist/idl_codegen/types/ObligationLiquidity.js.map +1 -0
  207. package/dist/idl_codegen/types/PriceHeuristic.d.ts +41 -0
  208. package/dist/idl_codegen/types/PriceHeuristic.js +75 -0
  209. package/dist/idl_codegen/types/PriceHeuristic.js.map +1 -0
  210. package/dist/idl_codegen/types/PythConfiguration.d.ts +25 -0
  211. package/dist/idl_codegen/types/PythConfiguration.js +62 -0
  212. package/dist/idl_codegen/types/PythConfiguration.js.map +1 -0
  213. package/dist/idl_codegen/types/ReserveCollateral.d.ts +53 -0
  214. package/dist/idl_codegen/types/ReserveCollateral.js +93 -0
  215. package/dist/idl_codegen/types/ReserveCollateral.js.map +1 -0
  216. package/dist/idl_codegen/types/ReserveConfig.d.ts +304 -0
  217. package/dist/idl_codegen/types/ReserveConfig.js +209 -0
  218. package/dist/idl_codegen/types/ReserveConfig.js.map +1 -0
  219. package/dist/idl_codegen/types/ReserveFarmKind.d.ts +31 -0
  220. package/dist/idl_codegen/types/ReserveFarmKind.js +102 -0
  221. package/dist/idl_codegen/types/ReserveFarmKind.js.map +1 -0
  222. package/dist/idl_codegen/types/ReserveFees.d.ts +78 -0
  223. package/dist/idl_codegen/types/ReserveFees.js +86 -0
  224. package/dist/idl_codegen/types/ReserveFees.js.map +1 -0
  225. package/dist/idl_codegen/types/ReserveLiquidity.d.ts +173 -0
  226. package/dist/idl_codegen/types/ReserveLiquidity.js +166 -0
  227. package/dist/idl_codegen/types/ReserveLiquidity.js.map +1 -0
  228. package/dist/idl_codegen/types/ReserveStatus.d.ts +44 -0
  229. package/dist/idl_codegen/types/ReserveStatus.js +128 -0
  230. package/dist/idl_codegen/types/ReserveStatus.js.map +1 -0
  231. package/dist/idl_codegen/types/ScopeConfiguration.d.ts +41 -0
  232. package/dist/idl_codegen/types/ScopeConfiguration.js +76 -0
  233. package/dist/idl_codegen/types/ScopeConfiguration.js.map +1 -0
  234. package/dist/idl_codegen/types/SwitchboardConfiguration.d.ts +30 -0
  235. package/dist/idl_codegen/types/SwitchboardConfiguration.js +67 -0
  236. package/dist/idl_codegen/types/SwitchboardConfiguration.js.map +1 -0
  237. package/dist/idl_codegen/types/TokenInfo.d.ts +109 -0
  238. package/dist/idl_codegen/types/TokenInfo.js +116 -0
  239. package/dist/idl_codegen/types/TokenInfo.js.map +1 -0
  240. package/dist/idl_codegen/types/UpdateConfigMode.d.ts +538 -0
  241. package/dist/idl_codegen/types/UpdateConfigMode.js +1116 -0
  242. package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -0
  243. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts +155 -0
  244. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +273 -0
  245. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -0
  246. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +200 -0
  247. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +440 -0
  248. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -0
  249. package/dist/idl_codegen/types/WithdrawalCaps.d.ts +38 -0
  250. package/dist/idl_codegen/types/WithdrawalCaps.js +86 -0
  251. package/dist/idl_codegen/types/WithdrawalCaps.js.map +1 -0
  252. package/dist/idl_codegen/types/index.d.ts +65 -0
  253. package/dist/idl_codegen/types/index.js +77 -0
  254. package/dist/idl_codegen/types/index.js.map +1 -0
  255. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +53 -0
  256. package/dist/idl_codegen/zero_padding/ObligationZP.js +140 -0
  257. package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -0
  258. package/dist/idl_codegen/zero_padding/index.d.ts +1 -0
  259. package/dist/idl_codegen/zero_padding/index.js +6 -0
  260. package/dist/idl_codegen/zero_padding/index.js.map +1 -0
  261. package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts +48 -0
  262. package/dist/idl_codegen_jupiter_perps/accounts/Pool.js +144 -0
  263. package/dist/idl_codegen_jupiter_perps/accounts/Pool.js.map +1 -0
  264. package/dist/idl_codegen_jupiter_perps/accounts/index.d.ts +2 -0
  265. package/dist/idl_codegen_jupiter_perps/accounts/index.js +6 -0
  266. package/dist/idl_codegen_jupiter_perps/accounts/index.js.map +1 -0
  267. package/dist/idl_codegen_jupiter_perps/programId.d.ts +3 -0
  268. package/dist/idl_codegen_jupiter_perps/programId.js +9 -0
  269. package/dist/idl_codegen_jupiter_perps/programId.js.map +1 -0
  270. package/dist/idl_codegen_jupiter_perps/types/Fees.d.ts +62 -0
  271. package/dist/idl_codegen_jupiter_perps/types/Fees.js +115 -0
  272. package/dist/idl_codegen_jupiter_perps/types/Fees.js.map +1 -0
  273. package/dist/idl_codegen_jupiter_perps/types/Limit.d.ts +32 -0
  274. package/dist/idl_codegen_jupiter_perps/types/Limit.js +75 -0
  275. package/dist/idl_codegen_jupiter_perps/types/Limit.js.map +1 -0
  276. package/dist/idl_codegen_jupiter_perps/types/PoolApr.d.ts +32 -0
  277. package/dist/idl_codegen_jupiter_perps/types/PoolApr.js +75 -0
  278. package/dist/idl_codegen_jupiter_perps/types/PoolApr.js.map +1 -0
  279. package/dist/idl_codegen_jupiter_perps/types/index.d.ts +6 -0
  280. package/dist/idl_codegen_jupiter_perps/types/index.js +10 -0
  281. package/dist/idl_codegen_jupiter_perps/types/index.js.map +1 -0
  282. package/dist/index.d.ts +1 -0
  283. package/dist/index.js +18 -0
  284. package/dist/index.js.map +1 -0
  285. package/dist/lending_operations/index.d.ts +2 -0
  286. package/dist/lending_operations/index.js +19 -0
  287. package/dist/lending_operations/index.js.map +1 -0
  288. package/dist/lending_operations/repay_with_collateral_calcs.d.ts +5 -0
  289. package/dist/lending_operations/repay_with_collateral_calcs.js +26 -0
  290. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -0
  291. package/dist/lending_operations/repay_with_collateral_operations.d.ts +47 -0
  292. package/dist/lending_operations/repay_with_collateral_operations.js +163 -0
  293. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -0
  294. package/dist/leverage/calcs.d.ts +132 -0
  295. package/dist/leverage/calcs.js +291 -0
  296. package/dist/leverage/calcs.js.map +1 -0
  297. package/dist/leverage/index.d.ts +4 -0
  298. package/dist/leverage/index.js +21 -0
  299. package/dist/leverage/index.js.map +1 -0
  300. package/dist/leverage/instructions.d.ts +43 -0
  301. package/dist/leverage/instructions.js +103 -0
  302. package/dist/leverage/instructions.js.map +1 -0
  303. package/dist/leverage/operations.d.ts +231 -0
  304. package/dist/leverage/operations.js +1058 -0
  305. package/dist/leverage/operations.js.map +1 -0
  306. package/dist/leverage/utils.d.ts +22 -0
  307. package/dist/leverage/utils.js +144 -0
  308. package/dist/leverage/utils.js.map +1 -0
  309. package/dist/lib.d.ts +9 -0
  310. package/dist/lib.js +26 -0
  311. package/dist/lib.js.map +1 -0
  312. package/dist/referrals/index.d.ts +2 -0
  313. package/dist/referrals/index.js +19 -0
  314. package/dist/referrals/index.js.map +1 -0
  315. package/dist/referrals/instructions.d.ts +16 -0
  316. package/dist/referrals/instructions.js +76 -0
  317. package/dist/referrals/instructions.js.map +1 -0
  318. package/dist/referrals/operations.d.ts +97 -0
  319. package/dist/referrals/operations.js +258 -0
  320. package/dist/referrals/operations.js.map +1 -0
  321. package/dist/utils/ObligationType.d.ts +49 -0
  322. package/dist/utils/ObligationType.js +129 -0
  323. package/dist/utils/ObligationType.js.map +1 -0
  324. package/dist/utils/api.d.ts +6 -0
  325. package/dist/utils/api.js +61 -0
  326. package/dist/utils/api.js.map +1 -0
  327. package/dist/utils/ata.d.ts +25 -0
  328. package/dist/utils/ata.js +155 -0
  329. package/dist/utils/ata.js.map +1 -0
  330. package/dist/utils/constants.d.ts +48 -0
  331. package/dist/utils/constants.js +75 -0
  332. package/dist/utils/constants.js.map +1 -0
  333. package/dist/utils/idl.d.ts +2 -0
  334. package/dist/utils/idl.js +9 -0
  335. package/dist/utils/idl.js.map +1 -0
  336. package/dist/utils/index.d.ts +14 -0
  337. package/dist/utils/index.js +31 -0
  338. package/dist/utils/index.js.map +1 -0
  339. package/dist/utils/instruction.d.ts +22 -0
  340. package/dist/utils/instruction.js +202 -0
  341. package/dist/utils/instruction.js.map +1 -0
  342. package/dist/utils/kamino.d.ts +3 -0
  343. package/dist/utils/kamino.js +45 -0
  344. package/dist/utils/kamino.js.map +1 -0
  345. package/dist/utils/layout.d.ts +13 -0
  346. package/dist/utils/layout.js +123 -0
  347. package/dist/utils/layout.js.map +1 -0
  348. package/dist/utils/lookupTable.d.ts +5 -0
  349. package/dist/utils/lookupTable.js +57 -0
  350. package/dist/utils/lookupTable.js.map +1 -0
  351. package/dist/utils/oracle.d.ts +51 -0
  352. package/dist/utils/oracle.js +295 -0
  353. package/dist/utils/oracle.js.map +1 -0
  354. package/dist/utils/pubkey.d.ts +74 -0
  355. package/dist/utils/pubkey.js +229 -0
  356. package/dist/utils/pubkey.js.map +1 -0
  357. package/dist/utils/seeds.d.ts +122 -0
  358. package/dist/utils/seeds.js +153 -0
  359. package/dist/utils/seeds.js.map +1 -0
  360. package/dist/utils/slots.d.ts +18 -0
  361. package/dist/utils/slots.js +32 -0
  362. package/dist/utils/slots.js.map +1 -0
  363. package/dist/utils/syncNative.d.ts +10 -0
  364. package/dist/utils/syncNative.js +46 -0
  365. package/dist/utils/syncNative.js.map +1 -0
  366. package/dist/utils/userMetadata.d.ts +15 -0
  367. package/dist/utils/userMetadata.js +259 -0
  368. package/dist/utils/userMetadata.js.map +1 -0
  369. package/package.json +94 -0
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.KAMINO_API_RETRY = exports.KAMINO_CDN_RETRY = exports.getMarketsFromApi = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const classes_1 = require("../classes");
18
+ const utils_1 = require("../utils");
19
+ const exponential_backoff_1 = require("exponential-backoff");
20
+ const lib_1 = require("../lib");
21
+ function getMarketsFromApi(programId = lib_1.PROGRAM_ID, source = 'CDN') {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ let configs = {};
24
+ if (source === 'CDN') {
25
+ configs = (yield (0, exponential_backoff_1.backOff)(() => axios_1.default.get(utils_1.CDN_ENDPOINT), exports.KAMINO_CDN_RETRY)).data[programId.toString()];
26
+ }
27
+ const API_ENDPOINT = (0, utils_1.getApiEndpoint)(programId);
28
+ if (!configs || (0, classes_1.isEmptyObject)(configs)) {
29
+ configs = (yield (0, exponential_backoff_1.backOff)(() => axios_1.default.get(API_ENDPOINT), exports.KAMINO_API_RETRY)).data;
30
+ }
31
+ return configs;
32
+ });
33
+ }
34
+ exports.getMarketsFromApi = getMarketsFromApi;
35
+ exports.KAMINO_CDN_RETRY = {
36
+ maxDelay: 1000,
37
+ numOfAttempts: 3,
38
+ startingDelay: 10,
39
+ retry: (e, attemptNumber) => {
40
+ console.warn(e);
41
+ console.warn({
42
+ attemptNumber,
43
+ message: 'kamino CDN call failed, retrying with exponential backoff...',
44
+ });
45
+ return true;
46
+ },
47
+ };
48
+ exports.KAMINO_API_RETRY = {
49
+ maxDelay: 1000,
50
+ numOfAttempts: 3,
51
+ startingDelay: 10,
52
+ retry: (e, attemptNumber) => {
53
+ console.warn(e);
54
+ console.warn({
55
+ attemptNumber,
56
+ message: 'api.kamino.finance call failed, retrying with exponential backoff...',
57
+ });
58
+ return true;
59
+ },
60
+ };
61
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,wCAAuD;AACvD,oCAAwD;AACxD,6DAA+D;AAC/D,gCAAoC;AAEpC,SAAsB,iBAAiB,CACrC,YAAuB,gBAAU,EACjC,SAAwB,KAAK;;QAE7B,IAAI,OAAO,GAAe,EAAgB,CAAC;QAE3C,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,OAAO,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAY,CAAC,EAAE,wBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAe,CAAC;SACrH;QAED,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,IAAI,IAAA,uBAAa,EAAC,OAAO,CAAC,EAAE;YACtC,OAAO,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,wBAAgB,CAAC,CAAC,CAAC,IAAkB,CAAC;SAC/F;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CAAA;AAjBD,8CAiBC;AAEY,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,8DAA8D;SACxE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEW,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,sEAAsE;SAChF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC","sourcesContent":["import { PublicKey } from '@solana/web3.js';\nimport axios from 'axios';\nimport { ConfigType, isEmptyObject } from '../classes';\nimport { CDN_ENDPOINT, getApiEndpoint } from '../utils';\nimport { IBackOffOptions, backOff } from 'exponential-backoff';\nimport { PROGRAM_ID } from '../lib';\n\nexport async function getMarketsFromApi(\n programId: PublicKey = PROGRAM_ID,\n source: 'API' | 'CDN' = 'CDN'\n): Promise<ConfigType> {\n let configs: ConfigType = {} as ConfigType;\n\n if (source === 'CDN') {\n configs = (await backOff(() => axios.get(CDN_ENDPOINT), KAMINO_CDN_RETRY)).data[programId.toString()] as ConfigType;\n }\n\n const API_ENDPOINT = getApiEndpoint(programId);\n\n if (!configs || isEmptyObject(configs)) {\n configs = (await backOff(() => axios.get(API_ENDPOINT), KAMINO_API_RETRY)).data as ConfigType;\n }\n\n return configs;\n}\n\nexport const KAMINO_CDN_RETRY: Partial<IBackOffOptions> = {\n maxDelay: 1000,\n numOfAttempts: 3,\n startingDelay: 10,\n retry: (e: any, attemptNumber: number) => {\n console.warn(e);\n console.warn({\n attemptNumber,\n message: 'kamino CDN call failed, retrying with exponential backoff...',\n });\n return true;\n },\n};\n\nexport const KAMINO_API_RETRY: Partial<IBackOffOptions> = {\n maxDelay: 1000,\n numOfAttempts: 3,\n startingDelay: 10,\n retry: (e: any, attemptNumber: number) => {\n console.warn(e);\n console.warn({\n attemptNumber,\n message: 'api.kamino.finance call failed, retrying with exponential backoff...',\n });\n return true;\n },\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
+ import Decimal from 'decimal.js';
3
+ import { AnchorProvider } from '@coral-xyz/anchor';
4
+ /**
5
+ * Create an idempotent create ATA instruction
6
+ * Overrides the create ATA ix to use the idempotent version as the spl-token library does not provide this ix yet
7
+ * @param mint - mint of the ATA
8
+ * @param owner - owner of the ATA
9
+ * @param ata - optional ata address - derived if not provided
10
+ * @param payer - payer of the transaction
11
+ * @returns The ATA address public key and the transaction instruction
12
+ */
13
+ export declare function createAssociatedTokenAccountIdempotentInstruction(owner: PublicKey, mint: PublicKey, payer?: PublicKey, ata?: PublicKey): Promise<[PublicKey, TransactionInstruction]>;
14
+ export declare function getAssociatedTokenAddress(mint: PublicKey, owner: PublicKey, allowOwnerOffCurve?: boolean, programId?: PublicKey, associatedTokenProgramId?: PublicKey): Promise<PublicKey>;
15
+ export declare const getAtasWithCreateIxnsIfMissing: (connection: Connection, user: PublicKey, mints: PublicKey[]) => Promise<{
16
+ atas: PublicKey[];
17
+ createAtasIxns: TransactionInstruction[];
18
+ closeAtasIxns: TransactionInstruction[];
19
+ }>;
20
+ export declare function getCreateAtaIxns(owner: PublicKey, tokenMintAddress: PublicKey, ataAddress: PublicKey): TransactionInstruction;
21
+ export declare const checkIfAccountExists: (connection: Connection, account: PublicKey) => Promise<boolean>;
22
+ export declare function getDepositWsolIxns(owner: PublicKey, ata: PublicKey, amountLamports: Decimal): TransactionInstruction[];
23
+ export declare function removeBudgetAndAtaIxns(ixns: TransactionInstruction[], mints: string[]): TransactionInstruction[];
24
+ export declare function getTokenAccountBalance(provider: AnchorProvider, tokenAccount: PublicKey): Promise<number>;
25
+ export declare function getTokenAccountBalanceDecimal(connection: Connection, mint: PublicKey, owner: PublicKey): Promise<Decimal>;
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getTokenAccountBalanceDecimal = exports.getTokenAccountBalance = exports.removeBudgetAndAtaIxns = exports.getDepositWsolIxns = exports.checkIfAccountExists = exports.getCreateAtaIxns = exports.getAtasWithCreateIxnsIfMissing = exports.getAssociatedTokenAddress = exports.createAssociatedTokenAccountIdempotentInstruction = void 0;
16
+ const spl_token_1 = require("@solana/spl-token");
17
+ const web3_js_1 = require("@solana/web3.js");
18
+ const leverage_1 = require("../leverage");
19
+ const decimal_js_1 = __importDefault(require("decimal.js"));
20
+ /**
21
+ * Create an idempotent create ATA instruction
22
+ * Overrides the create ATA ix to use the idempotent version as the spl-token library does not provide this ix yet
23
+ * @param mint - mint of the ATA
24
+ * @param owner - owner of the ATA
25
+ * @param ata - optional ata address - derived if not provided
26
+ * @param payer - payer of the transaction
27
+ * @returns The ATA address public key and the transaction instruction
28
+ */
29
+ function createAssociatedTokenAccountIdempotentInstruction(owner, mint, payer = owner, ata) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ let ataAddress = ata;
32
+ if (!ataAddress) {
33
+ ataAddress = yield getAssociatedTokenAddress(mint, owner, true, spl_token_1.TOKEN_PROGRAM_ID, spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID);
34
+ }
35
+ const createUserTokenAccountIx = spl_token_1.Token.createAssociatedTokenAccountInstruction(spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID, spl_token_1.TOKEN_PROGRAM_ID, mint, ataAddress, owner, payer);
36
+ // idempotent ix discriminator is 1
37
+ createUserTokenAccountIx.data = Buffer.from([1]);
38
+ return [ataAddress, createUserTokenAccountIx];
39
+ });
40
+ }
41
+ exports.createAssociatedTokenAccountIdempotentInstruction = createAssociatedTokenAccountIdempotentInstruction;
42
+ function getAssociatedTokenAddress(mint, owner, allowOwnerOffCurve = true, programId = spl_token_1.TOKEN_PROGRAM_ID, associatedTokenProgramId = spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ if (!allowOwnerOffCurve && !web3_js_1.PublicKey.isOnCurve(owner.toBuffer()))
45
+ throw new Error('Token owner off curve');
46
+ return yield spl_token_1.Token.getAssociatedTokenAddress(associatedTokenProgramId, programId, mint, owner, allowOwnerOffCurve);
47
+ });
48
+ }
49
+ exports.getAssociatedTokenAddress = getAssociatedTokenAddress;
50
+ const getAtasWithCreateIxnsIfMissing = (connection, user, mints) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const requests = mints.map((x) => createAtaIfMissing(connection, user, x));
52
+ const result = yield Promise.all(requests);
53
+ const atas = result.map((res) => res.ata);
54
+ const createAtasIxns = result.reduce((sum, item) => {
55
+ sum = sum.concat(item.createIxns);
56
+ return sum;
57
+ }, []);
58
+ const closeAtasIxns = result.reduce((sum, item) => {
59
+ sum = sum.concat(item.closeIxns);
60
+ return sum;
61
+ }, []);
62
+ return {
63
+ atas,
64
+ createAtasIxns,
65
+ closeAtasIxns,
66
+ };
67
+ });
68
+ exports.getAtasWithCreateIxnsIfMissing = getAtasWithCreateIxnsIfMissing;
69
+ function getCreateAtaIxns(owner, tokenMintAddress, ataAddress) {
70
+ return spl_token_1.Token.createAssociatedTokenAccountInstruction(spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID, spl_token_1.TOKEN_PROGRAM_ID, tokenMintAddress, ataAddress, owner, owner);
71
+ }
72
+ exports.getCreateAtaIxns = getCreateAtaIxns;
73
+ const createAtaIfMissing = (connection, user, mint) => __awaiter(void 0, void 0, void 0, function* () {
74
+ const ata = yield getAssociatedTokenAddress(mint, user);
75
+ const doesAtaExist = Boolean(yield getAtaByTokenMint(connection, user, mint));
76
+ const createIxns = !doesAtaExist ? getCreateAtaIxns(user, mint, ata) : [];
77
+ const closeIxns = [];
78
+ return {
79
+ ata,
80
+ createIxns,
81
+ closeIxns,
82
+ };
83
+ });
84
+ const checkIfAccountExists = (connection, account) => __awaiter(void 0, void 0, void 0, function* () {
85
+ const acc = yield connection.getAccountInfo(account);
86
+ return acc !== null;
87
+ });
88
+ exports.checkIfAccountExists = checkIfAccountExists;
89
+ const getAtaByTokenMint = (connection, user, tokenMint) => __awaiter(void 0, void 0, void 0, function* () {
90
+ if (tokenMint.equals(leverage_1.SOL_MINTS[0])) {
91
+ return user;
92
+ }
93
+ const ataAddress = yield getAssociatedTokenAddress(tokenMint, user);
94
+ if (yield (0, exports.checkIfAccountExists)(connection, ataAddress)) {
95
+ return ataAddress;
96
+ }
97
+ return null;
98
+ });
99
+ function getDepositWsolIxns(owner, ata, amountLamports) {
100
+ const ixns = [];
101
+ ixns.push(web3_js_1.SystemProgram.transfer({
102
+ fromPubkey: owner,
103
+ toPubkey: ata,
104
+ lamports: amountLamports.toNumber(),
105
+ }));
106
+ ixns.push(new web3_js_1.TransactionInstruction({
107
+ keys: [
108
+ {
109
+ pubkey: ata,
110
+ isSigner: false,
111
+ isWritable: true,
112
+ },
113
+ ],
114
+ data: Buffer.from(new Uint8Array([17])),
115
+ programId: spl_token_1.TOKEN_PROGRAM_ID,
116
+ }));
117
+ return ixns;
118
+ }
119
+ exports.getDepositWsolIxns = getDepositWsolIxns;
120
+ function removeBudgetAndAtaIxns(ixns, mints) {
121
+ return ixns.filter((ixn) => {
122
+ const { programId, keys } = ixn;
123
+ if (programId.equals(web3_js_1.ComputeBudgetProgram.programId)) {
124
+ return false;
125
+ }
126
+ if (programId.equals(spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID)) {
127
+ const mint = keys[3];
128
+ return !mints.includes(mint.pubkey.toString());
129
+ }
130
+ return true;
131
+ });
132
+ }
133
+ exports.removeBudgetAndAtaIxns = removeBudgetAndAtaIxns;
134
+ function getTokenAccountBalance(provider, tokenAccount) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ const tokenAccountBalance = yield provider.connection.getTokenAccountBalance(tokenAccount);
137
+ return new Number(tokenAccountBalance.value.amount).valueOf();
138
+ });
139
+ }
140
+ exports.getTokenAccountBalance = getTokenAccountBalance;
141
+ function getTokenAccountBalanceDecimal(connection, mint, owner) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const tokenAta = yield getAssociatedTokenAddress(mint, owner);
144
+ const ataExists = yield (0, exports.checkIfAccountExists)(connection, tokenAta);
145
+ if (!ataExists) {
146
+ return new decimal_js_1.default(0);
147
+ }
148
+ else {
149
+ const tokenData = (yield connection.getTokenAccountBalance(tokenAta)).value;
150
+ return new decimal_js_1.default(tokenData.uiAmountString);
151
+ }
152
+ });
153
+ }
154
+ exports.getTokenAccountBalanceDecimal = getTokenAccountBalanceDecimal;
155
+ //# sourceMappingURL=ata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ata.js","sourceRoot":"","sources":["../../src/utils/ata.ts"],"names":[],"mappings":"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","sourcesContent":["import { ASSOCIATED_TOKEN_PROGRAM_ID, Token, TOKEN_PROGRAM_ID } from '@solana/spl-token';\nimport { ComputeBudgetProgram, Connection, PublicKey, SystemProgram, TransactionInstruction } from '@solana/web3.js';\nimport { SOL_MINTS } from '../leverage';\nimport Decimal from 'decimal.js';\nimport { AnchorProvider } from '@coral-xyz/anchor';\n\n/**\n * Create an idempotent create ATA instruction\n * Overrides the create ATA ix to use the idempotent version as the spl-token library does not provide this ix yet\n * @param mint - mint of the ATA\n * @param owner - owner of the ATA\n * @param ata - optional ata address - derived if not provided\n * @param payer - payer of the transaction\n * @returns The ATA address public key and the transaction instruction\n */\nexport async function createAssociatedTokenAccountIdempotentInstruction(\n owner: PublicKey,\n mint: PublicKey,\n payer: PublicKey = owner,\n ata?: PublicKey\n): Promise<[PublicKey, TransactionInstruction]> {\n let ataAddress = ata;\n if (!ataAddress) {\n ataAddress = await getAssociatedTokenAddress(mint, owner, true, TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID);\n }\n const createUserTokenAccountIx = Token.createAssociatedTokenAccountInstruction(\n ASSOCIATED_TOKEN_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n mint,\n ataAddress,\n owner,\n payer\n );\n // idempotent ix discriminator is 1\n createUserTokenAccountIx.data = Buffer.from([1]);\n return [ataAddress, createUserTokenAccountIx];\n}\n\nexport async function getAssociatedTokenAddress(\n mint: PublicKey,\n owner: PublicKey,\n allowOwnerOffCurve = true,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): Promise<PublicKey> {\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new Error('Token owner off curve');\n\n return await Token.getAssociatedTokenAddress(associatedTokenProgramId, programId, mint, owner, allowOwnerOffCurve);\n}\n\nexport const getAtasWithCreateIxnsIfMissing = async (connection: Connection, user: PublicKey, mints: PublicKey[]) => {\n const requests = mints.map((x) => createAtaIfMissing(connection, user, x));\n const result = await Promise.all(requests);\n\n const atas = result.map((res) => res.ata);\n const createAtasIxns = result.reduce((sum, item) => {\n sum = sum.concat(item.createIxns);\n return sum;\n }, [] as TransactionInstruction[]);\n\n const closeAtasIxns: TransactionInstruction[] = result.reduce((sum, item) => {\n sum = sum.concat(item.closeIxns);\n return sum;\n }, [] as TransactionInstruction[]);\n\n return {\n atas,\n createAtasIxns,\n closeAtasIxns,\n };\n};\n\nexport function getCreateAtaIxns(\n owner: PublicKey,\n tokenMintAddress: PublicKey,\n ataAddress: PublicKey\n): TransactionInstruction {\n return Token.createAssociatedTokenAccountInstruction(\n ASSOCIATED_TOKEN_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n tokenMintAddress,\n ataAddress,\n owner,\n owner\n );\n}\n\nconst createAtaIfMissing = async (connection: Connection, user: PublicKey, mint: PublicKey) => {\n const ata = await getAssociatedTokenAddress(mint, user);\n const doesAtaExist = Boolean(await getAtaByTokenMint(connection, user, mint));\n const createIxns = !doesAtaExist ? getCreateAtaIxns(user, mint, ata) : [];\n const closeIxns: TransactionInstruction[] = [];\n return {\n ata,\n createIxns,\n closeIxns,\n };\n};\n\nexport const checkIfAccountExists = async (connection: Connection, account: PublicKey): Promise<boolean> => {\n const acc = await connection.getAccountInfo(account);\n return acc !== null;\n};\n\nconst getAtaByTokenMint = async (\n connection: Connection,\n user: PublicKey,\n tokenMint: PublicKey\n): Promise<PublicKey | null> => {\n if (tokenMint.equals(SOL_MINTS[0])) {\n return user;\n }\n\n const ataAddress = await getAssociatedTokenAddress(tokenMint, user);\n if (await checkIfAccountExists(connection, ataAddress)) {\n return ataAddress;\n }\n\n return null;\n};\n\nexport function getDepositWsolIxns(owner: PublicKey, ata: PublicKey, amountLamports: Decimal) {\n const ixns: TransactionInstruction[] = [];\n\n ixns.push(\n SystemProgram.transfer({\n fromPubkey: owner,\n toPubkey: ata,\n lamports: amountLamports.toNumber(),\n })\n );\n\n ixns.push(\n new TransactionInstruction({\n keys: [\n {\n pubkey: ata,\n isSigner: false,\n isWritable: true,\n },\n ],\n data: Buffer.from(new Uint8Array([17])),\n programId: TOKEN_PROGRAM_ID,\n })\n );\n\n return ixns;\n}\n\nexport function removeBudgetAndAtaIxns(ixns: TransactionInstruction[], mints: string[]): TransactionInstruction[] {\n return ixns.filter((ixn) => {\n const { programId, keys } = ixn;\n\n if (programId.equals(ComputeBudgetProgram.programId)) {\n return false;\n }\n\n if (programId.equals(ASSOCIATED_TOKEN_PROGRAM_ID)) {\n const mint = keys[3];\n\n return !mints.includes(mint.pubkey.toString());\n }\n\n return true;\n });\n}\n\nexport async function getTokenAccountBalance(provider: AnchorProvider, tokenAccount: PublicKey): Promise<number> {\n const tokenAccountBalance = await provider.connection.getTokenAccountBalance(tokenAccount);\n\n return new Number(tokenAccountBalance.value.amount).valueOf();\n}\n\nexport async function getTokenAccountBalanceDecimal(\n connection: Connection,\n mint: PublicKey,\n owner: PublicKey\n): Promise<Decimal> {\n const tokenAta = await getAssociatedTokenAddress(mint, owner);\n const ataExists = await checkIfAccountExists(connection, tokenAta);\n\n if (!ataExists) {\n return new Decimal(0);\n } else {\n const tokenData = (await connection.getTokenAccountBalance(tokenAta)).value;\n return new Decimal(tokenData.uiAmountString!);\n }\n}\n"]}
@@ -0,0 +1,48 @@
1
+ import Decimal from 'decimal.js';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ export declare const STAGING_PROGRAM_ID: PublicKey;
4
+ export declare const DEFAULT_KLEND_PROGRAM_ID: string;
5
+ export declare const U64_MAX = "18446744073709551615";
6
+ export declare const INITIAL_COLLATERAL_RATE: Decimal;
7
+ export type ENV = 'mainnet-beta' | 'devnet' | 'localnet';
8
+ export declare function isENV(value: any): value is ENV;
9
+ export declare function getApiEndpoint(programId: PublicKey): string;
10
+ export declare const CDN_ENDPOINT = "https://cdn.kamino.finance/kamino_lend_config_v2.json";
11
+ export declare const ONE_HUNDRED_PCT_IN_BPS = 10000;
12
+ export declare function getProgramId(env?: 'mainnet-beta' | 'staging'): PublicKey;
13
+ /**
14
+ * Number of slots per second
15
+ */
16
+ export declare const SLOTS_PER_SECOND = 2;
17
+ /**
18
+ * Number of slots per minute
19
+ * 2 (slots per second) * 60 = 120
20
+ */
21
+ export declare const SLOTS_PER_MINUTE: number;
22
+ /**
23
+ * Number of slots per hour
24
+ * 2 (slots per second) * 60 * 60 = 7200
25
+ */
26
+ export declare const SLOTS_PER_HOUR: number;
27
+ /**
28
+ * Number of slots per day
29
+ * 2 (slots per second) * 60 * 60 * 24 = 172800
30
+ */
31
+ export declare const SLOTS_PER_DAY: number;
32
+ /**
33
+ * Number of slots per year
34
+ * 2 (slots per second) * 60 * 60 * 24 * 365 = 63072000
35
+ */
36
+ export declare const SLOTS_PER_YEAR: number;
37
+ /**
38
+ * Minimum bonus for autodeleverage liquidations in bps
39
+ */
40
+ export declare const MIN_AUTODELEVERAGE_BONUS_BPS = 50;
41
+ /**
42
+ * WSOL Mint
43
+ */
44
+ export declare const WRAPPED_SOL_MINT: PublicKey;
45
+ /**
46
+ * USDC Mint
47
+ */
48
+ export declare const USDC_MAINNET_MINT: PublicKey;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.USDC_MAINNET_MINT = exports.WRAPPED_SOL_MINT = exports.MIN_AUTODELEVERAGE_BONUS_BPS = exports.SLOTS_PER_YEAR = exports.SLOTS_PER_DAY = exports.SLOTS_PER_HOUR = exports.SLOTS_PER_MINUTE = exports.SLOTS_PER_SECOND = exports.getProgramId = exports.ONE_HUNDRED_PCT_IN_BPS = exports.CDN_ENDPOINT = exports.getApiEndpoint = exports.isENV = exports.INITIAL_COLLATERAL_RATE = exports.U64_MAX = exports.DEFAULT_KLEND_PROGRAM_ID = exports.STAGING_PROGRAM_ID = void 0;
7
+ const decimal_js_1 = __importDefault(require("decimal.js"));
8
+ const programId_1 = require("../idl_codegen/programId");
9
+ const web3_js_1 = require("@solana/web3.js");
10
+ exports.STAGING_PROGRAM_ID = new web3_js_1.PublicKey('SLendK7ySfcEzyaFqy93gDnD3RtrpXJcnRwb6zFHJSh');
11
+ exports.DEFAULT_KLEND_PROGRAM_ID = programId_1.PROGRAM_ID.toString();
12
+ exports.U64_MAX = '18446744073709551615';
13
+ const INITIAL_COLLATERAL_RATIO = 1;
14
+ exports.INITIAL_COLLATERAL_RATE = new decimal_js_1.default(INITIAL_COLLATERAL_RATIO);
15
+ function isENV(value) {
16
+ return value === 'mainnet-beta' || value === 'devnet' || value === 'localnet';
17
+ }
18
+ exports.isENV = isENV;
19
+ function getApiEndpoint(programId) {
20
+ if (programId.equals(programId_1.PROGRAM_ID)) {
21
+ return 'https://api.hubbleprotocol.io/v2/kamino-market';
22
+ }
23
+ else {
24
+ return `https://api.hubbleprotocol.io/v2/kamino-market/?programId=${programId.toString()}`;
25
+ }
26
+ }
27
+ exports.getApiEndpoint = getApiEndpoint;
28
+ exports.CDN_ENDPOINT = 'https://cdn.kamino.finance/kamino_lend_config_v2.json';
29
+ exports.ONE_HUNDRED_PCT_IN_BPS = 10000;
30
+ function getProgramId(env = 'mainnet-beta') {
31
+ if (env === 'mainnet-beta') {
32
+ return programId_1.PROGRAM_ID;
33
+ }
34
+ else {
35
+ return exports.STAGING_PROGRAM_ID;
36
+ }
37
+ }
38
+ exports.getProgramId = getProgramId;
39
+ /**
40
+ * Number of slots per second
41
+ */
42
+ exports.SLOTS_PER_SECOND = 2;
43
+ /**
44
+ * Number of slots per minute
45
+ * 2 (slots per second) * 60 = 120
46
+ */
47
+ exports.SLOTS_PER_MINUTE = exports.SLOTS_PER_SECOND * 60;
48
+ /**
49
+ * Number of slots per hour
50
+ * 2 (slots per second) * 60 * 60 = 7200
51
+ */
52
+ exports.SLOTS_PER_HOUR = exports.SLOTS_PER_MINUTE * 60;
53
+ /**
54
+ * Number of slots per day
55
+ * 2 (slots per second) * 60 * 60 * 24 = 172800
56
+ */
57
+ exports.SLOTS_PER_DAY = exports.SLOTS_PER_HOUR * 24;
58
+ /**
59
+ * Number of slots per year
60
+ * 2 (slots per second) * 60 * 60 * 24 * 365 = 63072000
61
+ */
62
+ exports.SLOTS_PER_YEAR = exports.SLOTS_PER_DAY * 365;
63
+ /**
64
+ * Minimum bonus for autodeleverage liquidations in bps
65
+ */
66
+ exports.MIN_AUTODELEVERAGE_BONUS_BPS = 50;
67
+ /**
68
+ * WSOL Mint
69
+ */
70
+ exports.WRAPPED_SOL_MINT = new web3_js_1.PublicKey('So11111111111111111111111111111111111111112');
71
+ /**
72
+ * USDC Mint
73
+ */
74
+ exports.USDC_MAINNET_MINT = new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v');
75
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AACjC,wDAAsD;AACtD,6CAA4C;AAE/B,QAAA,kBAAkB,GAAc,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAC7F,QAAA,wBAAwB,GAAW,sBAAU,CAAC,QAAQ,EAAE,CAAC;AACzD,QAAA,OAAO,GAAG,sBAAsB,CAAC;AAC9C,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACtB,QAAA,uBAAuB,GAAG,IAAI,oBAAO,CAAC,wBAAwB,CAAC,CAAC;AAI7E,SAAgB,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC;AAChF,CAAC;AAFD,sBAEC;AAED,SAAgB,cAAc,CAAC,SAAoB;IACjD,IAAI,SAAS,CAAC,MAAM,CAAC,sBAAU,CAAC,EAAE;QAChC,OAAO,gDAAgD,CAAC;KACzD;SAAM;QACL,OAAO,6DAA6D,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC5F;AACH,CAAC;AAND,wCAMC;AAEY,QAAA,YAAY,GAAG,uDAAuD,CAAC;AAEvE,QAAA,sBAAsB,GAAG,KAAM,CAAC;AAE7C,SAAgB,YAAY,CAAC,MAAkC,cAAc;IAC3E,IAAI,GAAG,KAAK,cAAc,EAAE;QAC1B,OAAO,sBAAU,CAAC;KACnB;SAAM;QACL,OAAO,0BAAkB,CAAC;KAC3B;AACH,CAAC;AAND,oCAMC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;GAGG;AACU,QAAA,gBAAgB,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEtD;;;GAGG;AACU,QAAA,cAAc,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,sBAAc,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACU,QAAA,cAAc,GAAG,qBAAa,GAAG,GAAG,CAAC;AAElD;;GAEG;AACU,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;GAEG;AACU,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAE7F;;GAEG;AACU,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAC","sourcesContent":["import Decimal from 'decimal.js';\nimport { PROGRAM_ID } from '../idl_codegen/programId';\nimport { PublicKey } from '@solana/web3.js';\n\nexport const STAGING_PROGRAM_ID: PublicKey = new PublicKey('SLendK7ySfcEzyaFqy93gDnD3RtrpXJcnRwb6zFHJSh');\nexport const DEFAULT_KLEND_PROGRAM_ID: string = PROGRAM_ID.toString();\nexport const U64_MAX = '18446744073709551615';\nconst INITIAL_COLLATERAL_RATIO = 1;\nexport const INITIAL_COLLATERAL_RATE = new Decimal(INITIAL_COLLATERAL_RATIO);\n\nexport type ENV = 'mainnet-beta' | 'devnet' | 'localnet';\n\nexport function isENV(value: any): value is ENV {\n return value === 'mainnet-beta' || value === 'devnet' || value === 'localnet';\n}\n\nexport function getApiEndpoint(programId: PublicKey) {\n if (programId.equals(PROGRAM_ID)) {\n return 'https://api.hubbleprotocol.io/v2/kamino-market';\n } else {\n return `https://api.hubbleprotocol.io/v2/kamino-market/?programId=${programId.toString()}`;\n }\n}\n\nexport const CDN_ENDPOINT = 'https://cdn.kamino.finance/kamino_lend_config_v2.json';\n\nexport const ONE_HUNDRED_PCT_IN_BPS = 10_000;\n\nexport function getProgramId(env: 'mainnet-beta' | 'staging' = 'mainnet-beta') {\n if (env === 'mainnet-beta') {\n return PROGRAM_ID;\n } else {\n return STAGING_PROGRAM_ID;\n }\n}\n\n/**\n * Number of slots per second\n */\nexport const SLOTS_PER_SECOND = 2;\n\n/**\n * Number of slots per minute\n * 2 (slots per second) * 60 = 120\n */\nexport const SLOTS_PER_MINUTE = SLOTS_PER_SECOND * 60;\n\n/**\n * Number of slots per hour\n * 2 (slots per second) * 60 * 60 = 7200\n */\nexport const SLOTS_PER_HOUR = SLOTS_PER_MINUTE * 60;\n\n/**\n * Number of slots per day\n * 2 (slots per second) * 60 * 60 * 24 = 172800\n */\nexport const SLOTS_PER_DAY = SLOTS_PER_HOUR * 24;\n\n/**\n * Number of slots per year\n * 2 (slots per second) * 60 * 60 * 24 * 365 = 63072000\n */\nexport const SLOTS_PER_YEAR = SLOTS_PER_DAY * 365;\n\n/**\n * Minimum bonus for autodeleverage liquidations in bps\n */\nexport const MIN_AUTODELEVERAGE_BONUS_BPS = 50;\n\n/**\n * WSOL Mint\n */\nexport const WRAPPED_SOL_MINT = new PublicKey('So11111111111111111111111111111111111111112');\n\n/**\n * USDC Mint\n */\nexport const USDC_MAINNET_MINT = new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v');\n"]}
@@ -0,0 +1,2 @@
1
+ import { Idl } from '@coral-xyz/anchor';
2
+ export declare const idl: Idl;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.idl = void 0;
7
+ const idl_json_1 = __importDefault(require("../idl.json"));
8
+ exports.idl = idl_json_1.default;
9
+ //# sourceMappingURL=idl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idl.js","sourceRoot":"","sources":["../../src/utils/idl.ts"],"names":[],"mappings":";;;;;;AACA,2DAAiC;AAEpB,QAAA,GAAG,GAAQ,kBAAa,CAAC","sourcesContent":["import { Idl } from '@coral-xyz/anchor';\nimport rawIdl from '../idl.json';\n\nexport const idl: Idl = rawIdl as Idl;\n"]}
@@ -0,0 +1,14 @@
1
+ export * from './api';
2
+ export * from './ata';
3
+ export * from './constants';
4
+ export * from './idl';
5
+ export * from './instruction';
6
+ export * from './layout';
7
+ export * from './ObligationType';
8
+ export * from './seeds';
9
+ export * from './slots';
10
+ export * from './syncNative';
11
+ export * from './userMetadata';
12
+ export * from './pubkey';
13
+ export * from './oracle';
14
+ export * from './lookupTable';
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./api"), exports);
18
+ __exportStar(require("./ata"), exports);
19
+ __exportStar(require("./constants"), exports);
20
+ __exportStar(require("./idl"), exports);
21
+ __exportStar(require("./instruction"), exports);
22
+ __exportStar(require("./layout"), exports);
23
+ __exportStar(require("./ObligationType"), exports);
24
+ __exportStar(require("./seeds"), exports);
25
+ __exportStar(require("./slots"), exports);
26
+ __exportStar(require("./syncNative"), exports);
27
+ __exportStar(require("./userMetadata"), exports);
28
+ __exportStar(require("./pubkey"), exports);
29
+ __exportStar(require("./oracle"), exports);
30
+ __exportStar(require("./lookupTable"), exports);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,wCAAsB;AACtB,8CAA4B;AAC5B,wCAAsB;AACtB,gDAA8B;AAC9B,2CAAyB;AACzB,mDAAiC;AACjC,0CAAwB;AACxB,0CAAwB;AACxB,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,gDAA8B","sourcesContent":["export * from './api';\nexport * from './ata';\nexport * from './constants';\nexport * from './idl';\nexport * from './instruction';\nexport * from './layout';\nexport * from './ObligationType';\nexport * from './seeds';\nexport * from './slots';\nexport * from './syncNative';\nexport * from './userMetadata';\nexport * from './pubkey';\nexport * from './oracle';\nexport * from './lookupTable';\n"]}
@@ -0,0 +1,22 @@
1
+ /// <reference types="@solana/spl-token/node_modules/@solana/web3.js" />
2
+ import Decimal from 'decimal.js';
3
+ import { AddressLookupTableAccount, Commitment, Connection, Keypair, PublicKey, SendOptions, Signer, Transaction, TransactionInstruction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';
4
+ export declare function buildAndSendTxnWithLogs(c: Connection, tx: VersionedTransaction, owner: Keypair, signers: Signer[], withLogsIfSuccess?: boolean, withDescription?: string): Promise<TransactionSignature>;
5
+ export declare function sendAndConfirmVersionedTransaction(c: Connection, tx: VersionedTransaction, commitment?: Commitment, sendTransactionOptions?: SendOptions): Promise<string>;
6
+ export declare function simulateTxn(c: Connection, tx: Transaction, owner: Keypair, signers: Signer[]): Promise<any>;
7
+ export declare function buildComputeBudgetIx(units: number): TransactionInstruction;
8
+ /**
9
+ * Send a transaction with optional address lookup tables
10
+ * Translates anchor errors into anchor error types
11
+ * @param connection
12
+ * @param payer
13
+ * @param instructions
14
+ * @param lookupTables
15
+ */
16
+ export declare function sendTransactionV0(connection: Connection, payer: Keypair, instructions: TransactionInstruction[], lookupTables?: AddressLookupTableAccount[] | undefined, options?: SendOptions): Promise<string>;
17
+ export declare function simulateTransactionV0(connection: Connection, payer: Keypair, instructions: TransactionInstruction[], lookupTables?: AddressLookupTableAccount[] | undefined): Promise<import("@solana/web3.js").RpcResponseAndContext<import("@solana/web3.js").SimulatedTransactionResponse>>;
18
+ export declare const buildVersionedTransaction: (connection: Connection, payer: PublicKey, instructions: TransactionInstruction[], lookupTables?: PublicKey[]) => Promise<VersionedTransaction>;
19
+ export declare const getLookupTableAccount: (connection: Connection, address: PublicKey) => Promise<AddressLookupTableAccount | null>;
20
+ export declare const getLookupTableAccounts: (connection: Connection, addresses: PublicKey[]) => Promise<AddressLookupTableAccount[]>;
21
+ export declare const getComputeBudgetAndPriorityFeeIxns: (units: number, priorityFeeLamports?: Decimal) => TransactionInstruction[];
22
+ export declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;