@kamino-finance/klend-sdk 3.2.25 → 4.0.0

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 (725) hide show
  1. package/dist/classes/action.d.ts +1 -0
  2. package/dist/classes/action.d.ts.map +1 -0
  3. package/dist/classes/action.js +1130 -1186
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/curve.d.ts +1 -0
  6. package/dist/classes/curve.d.ts.map +1 -0
  7. package/dist/classes/curve.js +1 -1
  8. package/dist/classes/curve.js.map +1 -1
  9. package/dist/classes/fraction.d.ts +1 -0
  10. package/dist/classes/fraction.d.ts.map +1 -0
  11. package/dist/classes/fraction.js +7 -6
  12. package/dist/classes/fraction.js.map +1 -1
  13. package/dist/classes/index.d.ts +1 -0
  14. package/dist/classes/index.d.ts.map +1 -0
  15. package/dist/classes/index.js.map +1 -1
  16. package/dist/classes/jupiterPerps.d.ts +1 -0
  17. package/dist/classes/jupiterPerps.d.ts.map +1 -0
  18. package/dist/classes/jupiterPerps.js +7 -18
  19. package/dist/classes/jupiterPerps.js.map +1 -1
  20. package/dist/classes/manager.d.ts +1 -0
  21. package/dist/classes/manager.d.ts.map +1 -0
  22. package/dist/classes/manager.js +131 -158
  23. package/dist/classes/manager.js.map +1 -1
  24. package/dist/classes/market.d.ts +1 -0
  25. package/dist/classes/market.d.ts.map +1 -0
  26. package/dist/classes/market.js +620 -714
  27. package/dist/classes/market.js.map +1 -1
  28. package/dist/classes/obligation.d.ts +1 -0
  29. package/dist/classes/obligation.d.ts.map +1 -0
  30. package/dist/classes/obligation.js +60 -62
  31. package/dist/classes/obligation.js.map +1 -1
  32. package/dist/classes/reserve.d.ts +1 -0
  33. package/dist/classes/reserve.d.ts.map +1 -0
  34. package/dist/classes/reserve.js +135 -138
  35. package/dist/classes/reserve.js.map +1 -1
  36. package/dist/classes/shared.d.ts +1 -0
  37. package/dist/classes/shared.d.ts.map +1 -0
  38. package/dist/classes/shared.js.map +1 -1
  39. package/dist/classes/utils.d.ts +1 -0
  40. package/dist/classes/utils.d.ts.map +1 -0
  41. package/dist/classes/utils.js +3 -3
  42. package/dist/classes/utils.js.map +1 -1
  43. package/dist/classes/vault.d.ts +1 -0
  44. package/dist/classes/vault.d.ts.map +1 -0
  45. package/dist/classes/vault.js +334 -354
  46. package/dist/classes/vault.js.map +1 -1
  47. package/dist/client_kamino_manager.d.ts +1 -0
  48. package/dist/client_kamino_manager.d.ts.map +1 -0
  49. package/dist/client_kamino_manager.js +323 -326
  50. package/dist/client_kamino_manager.js.map +1 -1
  51. package/dist/idl_codegen/accounts/LendingMarket.d.ts +1 -0
  52. package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -0
  53. package/dist/idl_codegen/accounts/LendingMarket.js +89 -55
  54. package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
  55. package/dist/idl_codegen/accounts/Obligation.d.ts +1 -0
  56. package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -0
  57. package/dist/idl_codegen/accounts/Obligation.js +87 -56
  58. package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
  59. package/dist/idl_codegen/accounts/ReferrerState.d.ts +1 -0
  60. package/dist/idl_codegen/accounts/ReferrerState.d.ts.map +1 -0
  61. package/dist/idl_codegen/accounts/ReferrerState.js +22 -33
  62. package/dist/idl_codegen/accounts/ReferrerState.js.map +1 -1
  63. package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts +1 -0
  64. package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts.map +1 -0
  65. package/dist/idl_codegen/accounts/ReferrerTokenState.js +35 -37
  66. package/dist/idl_codegen/accounts/ReferrerTokenState.js.map +1 -1
  67. package/dist/idl_codegen/accounts/Reserve.d.ts +1 -0
  68. package/dist/idl_codegen/accounts/Reserve.d.ts.map +1 -0
  69. package/dist/idl_codegen/accounts/Reserve.js +60 -49
  70. package/dist/idl_codegen/accounts/Reserve.js.map +1 -1
  71. package/dist/idl_codegen/accounts/ShortUrl.d.ts +1 -0
  72. package/dist/idl_codegen/accounts/ShortUrl.d.ts.map +1 -0
  73. package/dist/idl_codegen/accounts/ShortUrl.js +22 -33
  74. package/dist/idl_codegen/accounts/ShortUrl.js.map +1 -1
  75. package/dist/idl_codegen/accounts/UserMetadata.d.ts +1 -0
  76. package/dist/idl_codegen/accounts/UserMetadata.d.ts.map +1 -0
  77. package/dist/idl_codegen/accounts/UserMetadata.js +34 -37
  78. package/dist/idl_codegen/accounts/UserMetadata.js.map +1 -1
  79. package/dist/idl_codegen/accounts/UserState.d.ts +1 -0
  80. package/dist/idl_codegen/accounts/UserState.d.ts.map +1 -0
  81. package/dist/idl_codegen/accounts/UserState.js +77 -48
  82. package/dist/idl_codegen/accounts/UserState.js.map +1 -1
  83. package/dist/idl_codegen/accounts/index.d.ts +1 -0
  84. package/dist/idl_codegen/accounts/index.d.ts.map +1 -0
  85. package/dist/idl_codegen/accounts/index.js.map +1 -1
  86. package/dist/idl_codegen/errors/anchor.d.ts +1 -0
  87. package/dist/idl_codegen/errors/anchor.d.ts.map +1 -0
  88. package/dist/idl_codegen/errors/anchor.js +270 -216
  89. package/dist/idl_codegen/errors/anchor.js.map +1 -1
  90. package/dist/idl_codegen/errors/custom.d.ts +1 -0
  91. package/dist/idl_codegen/errors/custom.d.ts.map +1 -0
  92. package/dist/idl_codegen/errors/custom.js +560 -448
  93. package/dist/idl_codegen/errors/custom.js.map +1 -1
  94. package/dist/idl_codegen/errors/index.d.ts +1 -0
  95. package/dist/idl_codegen/errors/index.d.ts.map +1 -0
  96. package/dist/idl_codegen/errors/index.js.map +1 -1
  97. package/dist/idl_codegen/instructions/borrowObligationLiquidity.d.ts +1 -0
  98. package/dist/idl_codegen/instructions/borrowObligationLiquidity.d.ts.map +1 -0
  99. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -1
  100. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.d.ts +1 -0
  101. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.d.ts.map +1 -0
  102. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js.map +1 -1
  103. package/dist/idl_codegen/instructions/depositObligationCollateral.d.ts +1 -0
  104. package/dist/idl_codegen/instructions/depositObligationCollateral.d.ts.map +1 -0
  105. package/dist/idl_codegen/instructions/depositObligationCollateral.js.map +1 -1
  106. package/dist/idl_codegen/instructions/depositReserveLiquidity.d.ts +1 -0
  107. package/dist/idl_codegen/instructions/depositReserveLiquidity.d.ts.map +1 -0
  108. package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -1
  109. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.d.ts +1 -0
  110. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.d.ts.map +1 -0
  111. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -1
  112. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.d.ts +1 -0
  113. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.d.ts.map +1 -0
  114. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js.map +1 -1
  115. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.d.ts +1 -0
  116. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.d.ts.map +1 -0
  117. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js.map +1 -1
  118. package/dist/idl_codegen/instructions/idlMissingTypes.d.ts +1 -0
  119. package/dist/idl_codegen/instructions/idlMissingTypes.d.ts.map +1 -0
  120. package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -1
  121. package/dist/idl_codegen/instructions/index.d.ts +1 -0
  122. package/dist/idl_codegen/instructions/index.d.ts.map +1 -0
  123. package/dist/idl_codegen/instructions/index.js.map +1 -1
  124. package/dist/idl_codegen/instructions/initFarmsForReserve.d.ts +1 -0
  125. package/dist/idl_codegen/instructions/initFarmsForReserve.d.ts.map +1 -0
  126. package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -1
  127. package/dist/idl_codegen/instructions/initLendingMarket.d.ts +1 -0
  128. package/dist/idl_codegen/instructions/initLendingMarket.d.ts.map +1 -0
  129. package/dist/idl_codegen/instructions/initLendingMarket.js.map +1 -1
  130. package/dist/idl_codegen/instructions/initObligation.d.ts +1 -0
  131. package/dist/idl_codegen/instructions/initObligation.d.ts.map +1 -0
  132. package/dist/idl_codegen/instructions/initObligation.js.map +1 -1
  133. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.d.ts +1 -0
  134. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.d.ts.map +1 -0
  135. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -1
  136. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.d.ts +1 -0
  137. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.d.ts.map +1 -0
  138. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js.map +1 -1
  139. package/dist/idl_codegen/instructions/initReferrerTokenState.d.ts +1 -0
  140. package/dist/idl_codegen/instructions/initReferrerTokenState.d.ts.map +1 -0
  141. package/dist/idl_codegen/instructions/initReferrerTokenState.js.map +1 -1
  142. package/dist/idl_codegen/instructions/initReserve.d.ts +1 -0
  143. package/dist/idl_codegen/instructions/initReserve.d.ts.map +1 -0
  144. package/dist/idl_codegen/instructions/initReserve.js.map +1 -1
  145. package/dist/idl_codegen/instructions/initUserMetadata.d.ts +1 -0
  146. package/dist/idl_codegen/instructions/initUserMetadata.d.ts.map +1 -0
  147. package/dist/idl_codegen/instructions/initUserMetadata.js.map +1 -1
  148. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts +1 -0
  149. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts.map +1 -0
  150. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -1
  151. package/dist/idl_codegen/instructions/redeemFees.d.ts +1 -0
  152. package/dist/idl_codegen/instructions/redeemFees.d.ts.map +1 -0
  153. package/dist/idl_codegen/instructions/redeemFees.js.map +1 -1
  154. package/dist/idl_codegen/instructions/redeemReserveCollateral.d.ts +1 -0
  155. package/dist/idl_codegen/instructions/redeemReserveCollateral.d.ts.map +1 -0
  156. package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -1
  157. package/dist/idl_codegen/instructions/refreshObligation.d.ts +1 -0
  158. package/dist/idl_codegen/instructions/refreshObligation.d.ts.map +1 -0
  159. package/dist/idl_codegen/instructions/refreshObligation.js.map +1 -1
  160. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts +1 -0
  161. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts.map +1 -0
  162. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
  163. package/dist/idl_codegen/instructions/refreshReserve.d.ts +1 -0
  164. package/dist/idl_codegen/instructions/refreshReserve.d.ts.map +1 -0
  165. package/dist/idl_codegen/instructions/refreshReserve.js.map +1 -1
  166. package/dist/idl_codegen/instructions/refreshReservesBatch.d.ts +1 -0
  167. package/dist/idl_codegen/instructions/refreshReservesBatch.d.ts.map +1 -0
  168. package/dist/idl_codegen/instructions/refreshReservesBatch.js.map +1 -1
  169. package/dist/idl_codegen/instructions/repayObligationLiquidity.d.ts +1 -0
  170. package/dist/idl_codegen/instructions/repayObligationLiquidity.d.ts.map +1 -0
  171. package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -1
  172. package/dist/idl_codegen/instructions/requestElevationGroup.d.ts +1 -0
  173. package/dist/idl_codegen/instructions/requestElevationGroup.d.ts.map +1 -0
  174. package/dist/idl_codegen/instructions/requestElevationGroup.js.map +1 -1
  175. package/dist/idl_codegen/instructions/socializeLoss.d.ts +1 -0
  176. package/dist/idl_codegen/instructions/socializeLoss.d.ts.map +1 -0
  177. package/dist/idl_codegen/instructions/socializeLoss.js.map +1 -1
  178. package/dist/idl_codegen/instructions/updateEntireReserveConfig.d.ts +1 -0
  179. package/dist/idl_codegen/instructions/updateEntireReserveConfig.d.ts.map +1 -0
  180. package/dist/idl_codegen/instructions/updateEntireReserveConfig.js.map +1 -1
  181. package/dist/idl_codegen/instructions/updateLendingMarket.d.ts +1 -0
  182. package/dist/idl_codegen/instructions/updateLendingMarket.d.ts.map +1 -0
  183. package/dist/idl_codegen/instructions/updateLendingMarket.js.map +1 -1
  184. package/dist/idl_codegen/instructions/updateLendingMarketOwner.d.ts +1 -0
  185. package/dist/idl_codegen/instructions/updateLendingMarketOwner.d.ts.map +1 -0
  186. package/dist/idl_codegen/instructions/updateLendingMarketOwner.js.map +1 -1
  187. package/dist/idl_codegen/instructions/updateReserveConfig.d.ts +1 -0
  188. package/dist/idl_codegen/instructions/updateReserveConfig.d.ts.map +1 -0
  189. package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -1
  190. package/dist/idl_codegen/instructions/updateSingleReserveConfig.d.ts +1 -0
  191. package/dist/idl_codegen/instructions/updateSingleReserveConfig.d.ts.map +1 -0
  192. package/dist/idl_codegen/instructions/updateSingleReserveConfig.js.map +1 -1
  193. package/dist/idl_codegen/instructions/withdrawObligationCollateral.d.ts +1 -0
  194. package/dist/idl_codegen/instructions/withdrawObligationCollateral.d.ts.map +1 -0
  195. package/dist/idl_codegen/instructions/withdrawObligationCollateral.js.map +1 -1
  196. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts +1 -0
  197. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts.map +1 -0
  198. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -1
  199. package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts +1 -0
  200. package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts.map +1 -0
  201. package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
  202. package/dist/idl_codegen/instructions/withdrawReferrerFees.d.ts +1 -0
  203. package/dist/idl_codegen/instructions/withdrawReferrerFees.d.ts.map +1 -0
  204. package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -1
  205. package/dist/idl_codegen/programId.d.ts +1 -0
  206. package/dist/idl_codegen/programId.d.ts.map +1 -0
  207. package/dist/idl_codegen/programId.js.map +1 -1
  208. package/dist/idl_codegen/types/AssetTier.d.ts +1 -0
  209. package/dist/idl_codegen/types/AssetTier.d.ts.map +1 -0
  210. package/dist/idl_codegen/types/AssetTier.js +12 -18
  211. package/dist/idl_codegen/types/AssetTier.js.map +1 -1
  212. package/dist/idl_codegen/types/BigFractionBytes.d.ts +1 -0
  213. package/dist/idl_codegen/types/BigFractionBytes.d.ts.map +1 -0
  214. package/dist/idl_codegen/types/BigFractionBytes.js +2 -0
  215. package/dist/idl_codegen/types/BigFractionBytes.js.map +1 -1
  216. package/dist/idl_codegen/types/BorrowRateCurve.d.ts +1 -0
  217. package/dist/idl_codegen/types/BorrowRateCurve.d.ts.map +1 -0
  218. package/dist/idl_codegen/types/BorrowRateCurve.js +2 -1
  219. package/dist/idl_codegen/types/BorrowRateCurve.js.map +1 -1
  220. package/dist/idl_codegen/types/CurvePoint.d.ts +1 -0
  221. package/dist/idl_codegen/types/CurvePoint.d.ts.map +1 -0
  222. package/dist/idl_codegen/types/CurvePoint.js +2 -0
  223. package/dist/idl_codegen/types/CurvePoint.js.map +1 -1
  224. package/dist/idl_codegen/types/ElevationGroup.d.ts +1 -0
  225. package/dist/idl_codegen/types/ElevationGroup.d.ts.map +1 -0
  226. package/dist/idl_codegen/types/ElevationGroup.js +10 -0
  227. package/dist/idl_codegen/types/ElevationGroup.js.map +1 -1
  228. package/dist/idl_codegen/types/FeeCalculation.d.ts +1 -0
  229. package/dist/idl_codegen/types/FeeCalculation.d.ts.map +1 -0
  230. package/dist/idl_codegen/types/FeeCalculation.js +8 -12
  231. package/dist/idl_codegen/types/FeeCalculation.js.map +1 -1
  232. package/dist/idl_codegen/types/InitObligationArgs.d.ts +1 -0
  233. package/dist/idl_codegen/types/InitObligationArgs.d.ts.map +1 -0
  234. package/dist/idl_codegen/types/InitObligationArgs.js +2 -0
  235. package/dist/idl_codegen/types/InitObligationArgs.js.map +1 -1
  236. package/dist/idl_codegen/types/LastUpdate.d.ts +1 -0
  237. package/dist/idl_codegen/types/LastUpdate.d.ts.map +1 -0
  238. package/dist/idl_codegen/types/LastUpdate.js +7 -0
  239. package/dist/idl_codegen/types/LastUpdate.js.map +1 -1
  240. package/dist/idl_codegen/types/ObligationCollateral.d.ts +1 -0
  241. package/dist/idl_codegen/types/ObligationCollateral.d.ts.map +1 -0
  242. package/dist/idl_codegen/types/ObligationCollateral.js +14 -0
  243. package/dist/idl_codegen/types/ObligationCollateral.js.map +1 -1
  244. package/dist/idl_codegen/types/ObligationLiquidity.d.ts +1 -0
  245. package/dist/idl_codegen/types/ObligationLiquidity.d.ts.map +1 -0
  246. package/dist/idl_codegen/types/ObligationLiquidity.js +17 -1
  247. package/dist/idl_codegen/types/ObligationLiquidity.js.map +1 -1
  248. package/dist/idl_codegen/types/PriceHeuristic.d.ts +1 -0
  249. package/dist/idl_codegen/types/PriceHeuristic.d.ts.map +1 -0
  250. package/dist/idl_codegen/types/PriceHeuristic.js +6 -0
  251. package/dist/idl_codegen/types/PriceHeuristic.js.map +1 -1
  252. package/dist/idl_codegen/types/PythConfiguration.d.ts +1 -0
  253. package/dist/idl_codegen/types/PythConfiguration.d.ts.map +1 -0
  254. package/dist/idl_codegen/types/PythConfiguration.js +2 -0
  255. package/dist/idl_codegen/types/PythConfiguration.js.map +1 -1
  256. package/dist/idl_codegen/types/ReserveCollateral.d.ts +1 -0
  257. package/dist/idl_codegen/types/ReserveCollateral.d.ts.map +1 -0
  258. package/dist/idl_codegen/types/ReserveCollateral.js +8 -0
  259. package/dist/idl_codegen/types/ReserveCollateral.js.map +1 -1
  260. package/dist/idl_codegen/types/ReserveConfig.d.ts +1 -0
  261. package/dist/idl_codegen/types/ReserveConfig.d.ts.map +1 -0
  262. package/dist/idl_codegen/types/ReserveConfig.js +78 -5
  263. package/dist/idl_codegen/types/ReserveConfig.js.map +1 -1
  264. package/dist/idl_codegen/types/ReserveFarmKind.d.ts +1 -0
  265. package/dist/idl_codegen/types/ReserveFarmKind.d.ts.map +1 -0
  266. package/dist/idl_codegen/types/ReserveFarmKind.js +8 -12
  267. package/dist/idl_codegen/types/ReserveFarmKind.js.map +1 -1
  268. package/dist/idl_codegen/types/ReserveFees.d.ts +1 -0
  269. package/dist/idl_codegen/types/ReserveFees.d.ts.map +1 -0
  270. package/dist/idl_codegen/types/ReserveFees.js +16 -0
  271. package/dist/idl_codegen/types/ReserveFees.js.map +1 -1
  272. package/dist/idl_codegen/types/ReserveLiquidity.d.ts +1 -0
  273. package/dist/idl_codegen/types/ReserveLiquidity.d.ts.map +1 -0
  274. package/dist/idl_codegen/types/ReserveLiquidity.js +43 -1
  275. package/dist/idl_codegen/types/ReserveLiquidity.js.map +1 -1
  276. package/dist/idl_codegen/types/ReserveStatus.d.ts +1 -0
  277. package/dist/idl_codegen/types/ReserveStatus.d.ts.map +1 -0
  278. package/dist/idl_codegen/types/ReserveStatus.js +12 -18
  279. package/dist/idl_codegen/types/ReserveStatus.js.map +1 -1
  280. package/dist/idl_codegen/types/ScopeConfiguration.d.ts +1 -0
  281. package/dist/idl_codegen/types/ScopeConfiguration.d.ts.map +1 -0
  282. package/dist/idl_codegen/types/ScopeConfiguration.js +6 -0
  283. package/dist/idl_codegen/types/ScopeConfiguration.js.map +1 -1
  284. package/dist/idl_codegen/types/SwitchboardConfiguration.d.ts +1 -0
  285. package/dist/idl_codegen/types/SwitchboardConfiguration.d.ts.map +1 -0
  286. package/dist/idl_codegen/types/SwitchboardConfiguration.js +3 -0
  287. package/dist/idl_codegen/types/SwitchboardConfiguration.js.map +1 -1
  288. package/dist/idl_codegen/types/TokenInfo.d.ts +1 -0
  289. package/dist/idl_codegen/types/TokenInfo.d.ts.map +1 -0
  290. package/dist/idl_codegen/types/TokenInfo.js +27 -4
  291. package/dist/idl_codegen/types/TokenInfo.js.map +1 -1
  292. package/dist/idl_codegen/types/UpdateConfigMode.d.ts +1 -0
  293. package/dist/idl_codegen/types/UpdateConfigMode.d.ts.map +1 -0
  294. package/dist/idl_codegen/types/UpdateConfigMode.js +188 -282
  295. package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -1
  296. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts +1 -0
  297. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts.map +1 -0
  298. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +41 -33
  299. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -1
  300. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +1 -0
  301. package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -0
  302. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +72 -108
  303. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
  304. package/dist/idl_codegen/types/WithdrawalCaps.d.ts +1 -0
  305. package/dist/idl_codegen/types/WithdrawalCaps.d.ts.map +1 -0
  306. package/dist/idl_codegen/types/WithdrawalCaps.js +4 -0
  307. package/dist/idl_codegen/types/WithdrawalCaps.js.map +1 -1
  308. package/dist/idl_codegen/types/index.d.ts +1 -0
  309. package/dist/idl_codegen/types/index.d.ts.map +1 -0
  310. package/dist/idl_codegen/types/index.js.map +1 -1
  311. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +1 -0
  312. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts.map +1 -0
  313. package/dist/idl_codegen/zero_padding/ObligationZP.js +83 -54
  314. package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -1
  315. package/dist/idl_codegen/zero_padding/index.d.ts +1 -0
  316. package/dist/idl_codegen/zero_padding/index.d.ts.map +1 -0
  317. package/dist/idl_codegen/zero_padding/index.js.map +1 -1
  318. package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts +1 -0
  319. package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts.map +1 -0
  320. package/dist/idl_codegen_jupiter_perps/accounts/Pool.js +39 -42
  321. package/dist/idl_codegen_jupiter_perps/accounts/Pool.js.map +1 -1
  322. package/dist/idl_codegen_jupiter_perps/accounts/index.d.ts +1 -0
  323. package/dist/idl_codegen_jupiter_perps/accounts/index.d.ts.map +1 -0
  324. package/dist/idl_codegen_jupiter_perps/accounts/index.js.map +1 -1
  325. package/dist/idl_codegen_jupiter_perps/programId.d.ts +1 -0
  326. package/dist/idl_codegen_jupiter_perps/programId.d.ts.map +1 -0
  327. package/dist/idl_codegen_jupiter_perps/programId.js.map +1 -1
  328. package/dist/idl_codegen_jupiter_perps/types/Fees.d.ts +1 -0
  329. package/dist/idl_codegen_jupiter_perps/types/Fees.d.ts.map +1 -0
  330. package/dist/idl_codegen_jupiter_perps/types/Fees.js +9 -0
  331. package/dist/idl_codegen_jupiter_perps/types/Fees.js.map +1 -1
  332. package/dist/idl_codegen_jupiter_perps/types/Limit.d.ts +1 -0
  333. package/dist/idl_codegen_jupiter_perps/types/Limit.d.ts.map +1 -0
  334. package/dist/idl_codegen_jupiter_perps/types/Limit.js +3 -0
  335. package/dist/idl_codegen_jupiter_perps/types/Limit.js.map +1 -1
  336. package/dist/idl_codegen_jupiter_perps/types/PoolApr.d.ts +1 -0
  337. package/dist/idl_codegen_jupiter_perps/types/PoolApr.d.ts.map +1 -0
  338. package/dist/idl_codegen_jupiter_perps/types/PoolApr.js +3 -0
  339. package/dist/idl_codegen_jupiter_perps/types/PoolApr.js.map +1 -1
  340. package/dist/idl_codegen_jupiter_perps/types/index.d.ts +1 -0
  341. package/dist/idl_codegen_jupiter_perps/types/index.d.ts.map +1 -0
  342. package/dist/idl_codegen_jupiter_perps/types/index.js.map +1 -1
  343. package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts +1 -0
  344. package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts.map +1 -0
  345. package/dist/idl_codegen_kamino_vault/accounts/Reserve.js +58 -47
  346. package/dist/idl_codegen_kamino_vault/accounts/Reserve.js.map +1 -1
  347. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +1 -0
  348. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -0
  349. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +51 -47
  350. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
  351. package/dist/idl_codegen_kamino_vault/accounts/index.d.ts +1 -0
  352. package/dist/idl_codegen_kamino_vault/accounts/index.d.ts.map +1 -0
  353. package/dist/idl_codegen_kamino_vault/accounts/index.js.map +1 -1
  354. package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts +1 -0
  355. package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts.map +1 -0
  356. package/dist/idl_codegen_kamino_vault/errors/anchor.js +270 -216
  357. package/dist/idl_codegen_kamino_vault/errors/anchor.js.map +1 -1
  358. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +1 -0
  359. package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -0
  360. package/dist/idl_codegen_kamino_vault/errors/custom.js +120 -96
  361. package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
  362. package/dist/idl_codegen_kamino_vault/errors/index.d.ts +1 -0
  363. package/dist/idl_codegen_kamino_vault/errors/index.d.ts.map +1 -0
  364. package/dist/idl_codegen_kamino_vault/errors/index.js.map +1 -1
  365. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +1 -0
  366. package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -0
  367. package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
  368. package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +1 -0
  369. package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -0
  370. package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
  371. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +1 -0
  372. package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -0
  373. package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
  374. package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts +1 -0
  375. package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts.map +1 -0
  376. package/dist/idl_codegen_kamino_vault/instructions/invest.js.map +1 -1
  377. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +1 -0
  378. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -0
  379. package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
  380. package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts +1 -0
  381. package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts.map +1 -0
  382. package/dist/idl_codegen_kamino_vault/instructions/withdraw.js.map +1 -1
  383. package/dist/idl_codegen_kamino_vault/programId.d.ts +1 -0
  384. package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -0
  385. package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
  386. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts +1 -0
  387. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts.map +1 -0
  388. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js +2 -0
  389. package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js.map +1 -1
  390. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts +1 -0
  391. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts.map +1 -0
  392. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js +2 -1
  393. package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js.map +1 -1
  394. package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts +1 -0
  395. package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts.map +1 -0
  396. package/dist/idl_codegen_kamino_vault/types/CurvePoint.js +2 -0
  397. package/dist/idl_codegen_kamino_vault/types/CurvePoint.js.map +1 -1
  398. package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts +1 -0
  399. package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts.map +1 -0
  400. package/dist/idl_codegen_kamino_vault/types/LastUpdate.js +7 -0
  401. package/dist/idl_codegen_kamino_vault/types/LastUpdate.js.map +1 -1
  402. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts +1 -0
  403. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts.map +1 -0
  404. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js +6 -0
  405. package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js.map +1 -1
  406. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts +1 -0
  407. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts.map +1 -0
  408. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js +2 -0
  409. package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js.map +1 -1
  410. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts +1 -0
  411. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts.map +1 -0
  412. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js +8 -0
  413. package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js.map +1 -1
  414. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +1 -0
  415. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -0
  416. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +77 -5
  417. package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
  418. package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts +1 -0
  419. package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts.map +1 -0
  420. package/dist/idl_codegen_kamino_vault/types/ReserveFees.js +16 -0
  421. package/dist/idl_codegen_kamino_vault/types/ReserveFees.js.map +1 -1
  422. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts +1 -0
  423. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts.map +1 -0
  424. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js +41 -1
  425. package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js.map +1 -1
  426. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts +1 -0
  427. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts.map +1 -0
  428. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js +6 -0
  429. package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js.map +1 -1
  430. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts +1 -0
  431. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts.map +1 -0
  432. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js +3 -0
  433. package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js.map +1 -1
  434. package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts +1 -0
  435. package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts.map +1 -0
  436. package/dist/idl_codegen_kamino_vault/types/TokenInfo.js +27 -4
  437. package/dist/idl_codegen_kamino_vault/types/TokenInfo.js.map +1 -1
  438. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts +1 -0
  439. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts.map +1 -0
  440. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js +8 -0
  441. package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js.map +1 -1
  442. package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.d.ts +1 -0
  443. package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.d.ts.map +1 -0
  444. package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.js +4 -0
  445. package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.js.map +1 -1
  446. package/dist/idl_codegen_kamino_vault/types/index.d.ts +1 -0
  447. package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -0
  448. package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
  449. package/dist/index.d.ts +1 -0
  450. package/dist/index.d.ts.map +1 -0
  451. package/dist/index.js.map +1 -1
  452. package/dist/lending_operations/index.d.ts +1 -0
  453. package/dist/lending_operations/index.d.ts.map +1 -0
  454. package/dist/lending_operations/index.js.map +1 -1
  455. package/dist/lending_operations/repay_with_collateral_calcs.d.ts +1 -0
  456. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -0
  457. package/dist/lending_operations/repay_with_collateral_calcs.js +1 -1
  458. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  459. package/dist/lending_operations/repay_with_collateral_operations.d.ts +1 -0
  460. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -0
  461. package/dist/lending_operations/repay_with_collateral_operations.js +15 -24
  462. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  463. package/dist/leverage/calcs.d.ts +1 -0
  464. package/dist/leverage/calcs.d.ts.map +1 -0
  465. package/dist/leverage/calcs.js +119 -132
  466. package/dist/leverage/calcs.js.map +1 -1
  467. package/dist/leverage/index.d.ts +1 -0
  468. package/dist/leverage/index.d.ts.map +1 -0
  469. package/dist/leverage/index.js.map +1 -1
  470. package/dist/leverage/instructions.d.ts +1 -0
  471. package/dist/leverage/instructions.d.ts.map +1 -0
  472. package/dist/leverage/instructions.js.map +1 -1
  473. package/dist/leverage/operations.d.ts +1 -0
  474. package/dist/leverage/operations.d.ts.map +1 -0
  475. package/dist/leverage/operations.js +75 -84
  476. package/dist/leverage/operations.js.map +1 -1
  477. package/dist/leverage/utils.d.ts +1 -0
  478. package/dist/leverage/utils.d.ts.map +1 -0
  479. package/dist/leverage/utils.js +73 -88
  480. package/dist/leverage/utils.js.map +1 -1
  481. package/dist/lib.d.ts +1 -0
  482. package/dist/lib.d.ts.map +1 -0
  483. package/dist/lib.js.map +1 -1
  484. package/dist/referrals/index.d.ts +1 -0
  485. package/dist/referrals/index.d.ts.map +1 -0
  486. package/dist/referrals/index.js.map +1 -1
  487. package/dist/referrals/instructions.d.ts +1 -0
  488. package/dist/referrals/instructions.d.ts.map +1 -0
  489. package/dist/referrals/instructions.js +8 -17
  490. package/dist/referrals/instructions.js.map +1 -1
  491. package/dist/referrals/operations.d.ts +2 -1
  492. package/dist/referrals/operations.d.ts.map +1 -0
  493. package/dist/referrals/operations.js +119 -143
  494. package/dist/referrals/operations.js.map +1 -1
  495. package/dist/utils/ObligationType.d.ts +1 -0
  496. package/dist/utils/ObligationType.d.ts.map +1 -0
  497. package/dist/utils/ObligationType.js +16 -7
  498. package/dist/utils/ObligationType.js.map +1 -1
  499. package/dist/utils/api.d.ts +1 -0
  500. package/dist/utils/api.d.ts.map +1 -0
  501. package/dist/utils/api.js +10 -21
  502. package/dist/utils/api.js.map +1 -1
  503. package/dist/utils/ata.d.ts +1 -0
  504. package/dist/utils/ata.d.ts.map +1 -0
  505. package/dist/utils/ata.js +25 -38
  506. package/dist/utils/ata.js.map +1 -1
  507. package/dist/utils/constants.d.ts +1 -0
  508. package/dist/utils/constants.d.ts.map +1 -0
  509. package/dist/utils/constants.js +1 -1
  510. package/dist/utils/constants.js.map +1 -1
  511. package/dist/utils/idl.d.ts +1 -0
  512. package/dist/utils/idl.d.ts.map +1 -0
  513. package/dist/utils/idl.js.map +1 -1
  514. package/dist/utils/index.d.ts +1 -0
  515. package/dist/utils/index.d.ts.map +1 -0
  516. package/dist/utils/index.js.map +1 -1
  517. package/dist/utils/instruction.d.ts +1 -0
  518. package/dist/utils/instruction.d.ts.map +1 -0
  519. package/dist/utils/instruction.js +116 -143
  520. package/dist/utils/instruction.js.map +1 -1
  521. package/dist/utils/kamino.d.ts +1 -0
  522. package/dist/utils/kamino.d.ts.map +1 -0
  523. package/dist/utils/kamino.js +4 -15
  524. package/dist/utils/kamino.js.map +1 -1
  525. package/dist/utils/layout.d.ts +1 -0
  526. package/dist/utils/layout.d.ts.map +1 -0
  527. package/dist/utils/layout.js.map +1 -1
  528. package/dist/utils/lookupTable.d.ts +1 -0
  529. package/dist/utils/lookupTable.d.ts.map +1 -0
  530. package/dist/utils/lookupTable.js +14 -27
  531. package/dist/utils/lookupTable.js.map +1 -1
  532. package/dist/utils/managerTypes.d.ts +1 -0
  533. package/dist/utils/managerTypes.d.ts.map +1 -0
  534. package/dist/utils/managerTypes.js +31 -2
  535. package/dist/utils/managerTypes.js.map +1 -1
  536. package/dist/utils/oracle.d.ts +1 -0
  537. package/dist/utils/oracle.d.ts.map +1 -0
  538. package/dist/utils/oracle.js +70 -83
  539. package/dist/utils/oracle.js.map +1 -1
  540. package/dist/utils/pubkey.d.ts +1 -0
  541. package/dist/utils/pubkey.d.ts.map +1 -0
  542. package/dist/utils/pubkey.js +7 -9
  543. package/dist/utils/pubkey.js.map +1 -1
  544. package/dist/utils/rpc.d.ts +1 -0
  545. package/dist/utils/rpc.d.ts.map +1 -0
  546. package/dist/utils/rpc.js +48 -70
  547. package/dist/utils/rpc.js.map +1 -1
  548. package/dist/utils/seeds.d.ts +1 -0
  549. package/dist/utils/seeds.d.ts.map +1 -0
  550. package/dist/utils/seeds.js.map +1 -1
  551. package/dist/utils/sendTransactionsUtils.d.ts +1 -0
  552. package/dist/utils/sendTransactionsUtils.d.ts.map +1 -0
  553. package/dist/utils/sendTransactionsUtils.js +82 -82
  554. package/dist/utils/sendTransactionsUtils.js.map +1 -1
  555. package/dist/utils/slots.d.ts +1 -0
  556. package/dist/utils/slots.d.ts.map +1 -0
  557. package/dist/utils/slots.js.map +1 -1
  558. package/dist/utils/syncNative.d.ts +1 -0
  559. package/dist/utils/syncNative.d.ts.map +1 -0
  560. package/dist/utils/syncNative.js.map +1 -1
  561. package/dist/utils/userMetadata.d.ts +1 -0
  562. package/dist/utils/userMetadata.d.ts.map +1 -0
  563. package/dist/utils/userMetadata.js +40 -52
  564. package/dist/utils/userMetadata.js.map +1 -1
  565. package/package.json +9 -3
  566. package/src/classes/action.ts +2884 -0
  567. package/src/classes/curve.ts +29 -0
  568. package/src/classes/fraction.ts +65 -0
  569. package/src/classes/index.ts +10 -0
  570. package/src/classes/jupiterPerps.ts +14 -0
  571. package/src/classes/manager.ts +746 -0
  572. package/src/classes/market.ts +1459 -0
  573. package/src/classes/obligation.ts +1315 -0
  574. package/src/classes/reserve.ts +1980 -0
  575. package/src/classes/shared.ts +57 -0
  576. package/src/classes/utils.ts +192 -0
  577. package/src/classes/vault.ts +808 -0
  578. package/src/client.ts +446 -0
  579. package/src/client_kamino_manager.ts +791 -0
  580. package/src/global.d.ts +1 -0
  581. package/src/idl_codegen/accounts/LendingMarket.ts +364 -0
  582. package/src/idl_codegen/accounts/Obligation.ts +349 -0
  583. package/src/idl_codegen/accounts/ReferrerState.ts +97 -0
  584. package/src/idl_codegen/accounts/ReferrerTokenState.ts +145 -0
  585. package/src/idl_codegen/accounts/Reserve.ts +248 -0
  586. package/src/idl_codegen/accounts/ShortUrl.ts +97 -0
  587. package/src/idl_codegen/accounts/UserMetadata.ts +142 -0
  588. package/src/idl_codegen/accounts/UserState.ts +301 -0
  589. package/src/idl_codegen/accounts/index.ts +19 -0
  590. package/src/idl_codegen/errors/anchor.ts +773 -0
  591. package/src/idl_codegen/errors/custom.ts +1633 -0
  592. package/src/idl_codegen/errors/index.ts +62 -0
  593. package/src/idl_codegen/instructions/borrowObligationLiquidity.ts +82 -0
  594. package/src/idl_codegen/instructions/deleteReferrerStateAndShortUrl.ts +30 -0
  595. package/src/idl_codegen/instructions/depositObligationCollateral.ts +62 -0
  596. package/src/idl_codegen/instructions/depositReserveLiquidity.ts +90 -0
  597. package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.ts +98 -0
  598. package/src/idl_codegen/instructions/flashBorrowReserveLiquidity.ts +82 -0
  599. package/src/idl_codegen/instructions/flashRepayReserveLiquidity.ts +83 -0
  600. package/src/idl_codegen/instructions/idlMissingTypes.ts +62 -0
  601. package/src/idl_codegen/instructions/index.ts +138 -0
  602. package/src/idl_codegen/instructions/initFarmsForReserve.ts +62 -0
  603. package/src/idl_codegen/instructions/initLendingMarket.ts +50 -0
  604. package/src/idl_codegen/instructions/initObligation.ts +52 -0
  605. package/src/idl_codegen/instructions/initObligationFarmsForReserve.ts +60 -0
  606. package/src/idl_codegen/instructions/initReferrerStateAndShortUrl.ts +50 -0
  607. package/src/idl_codegen/instructions/initReferrerTokenState.ts +46 -0
  608. package/src/idl_codegen/instructions/initReserve.ts +74 -0
  609. package/src/idl_codegen/instructions/initUserMetadata.ts +50 -0
  610. package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.ts +139 -0
  611. package/src/idl_codegen/instructions/redeemFees.ts +50 -0
  612. package/src/idl_codegen/instructions/redeemReserveCollateral.ts +94 -0
  613. package/src/idl_codegen/instructions/refreshObligation.ts +24 -0
  614. package/src/idl_codegen/instructions/refreshObligationFarmsForReserve.ts +62 -0
  615. package/src/idl_codegen/instructions/refreshReserve.ts +40 -0
  616. package/src/idl_codegen/instructions/refreshReservesBatch.ts +29 -0
  617. package/src/idl_codegen/instructions/repayObligationLiquidity.ts +64 -0
  618. package/src/idl_codegen/instructions/requestElevationGroup.ts +40 -0
  619. package/src/idl_codegen/instructions/socializeLoss.ts +48 -0
  620. package/src/idl_codegen/instructions/updateEntireReserveConfig.ts +45 -0
  621. package/src/idl_codegen/instructions/updateLendingMarket.ts +43 -0
  622. package/src/idl_codegen/instructions/updateLendingMarketOwner.ts +28 -0
  623. package/src/idl_codegen/instructions/updateReserveConfig.ts +52 -0
  624. package/src/idl_codegen/instructions/updateSingleReserveConfig.ts +48 -0
  625. package/src/idl_codegen/instructions/withdrawObligationCollateral.ts +68 -0
  626. package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.ts +102 -0
  627. package/src/idl_codegen/instructions/withdrawProtocolFee.ts +62 -0
  628. package/src/idl_codegen/instructions/withdrawReferrerFees.ts +54 -0
  629. package/src/idl_codegen/programId.ts +13 -0
  630. package/src/idl_codegen/types/AssetTier.ts +118 -0
  631. package/src/idl_codegen/types/BigFractionBytes.ts +67 -0
  632. package/src/idl_codegen/types/BorrowRateCurve.ts +60 -0
  633. package/src/idl_codegen/types/CurvePoint.ts +64 -0
  634. package/src/idl_codegen/types/ElevationGroup.ts +133 -0
  635. package/src/idl_codegen/types/FeeCalculation.ts +90 -0
  636. package/src/idl_codegen/types/InitObligationArgs.ts +61 -0
  637. package/src/idl_codegen/types/LastUpdate.ts +95 -0
  638. package/src/idl_codegen/types/ObligationCollateral.ts +128 -0
  639. package/src/idl_codegen/types/ObligationLiquidity.ts +159 -0
  640. package/src/idl_codegen/types/PriceHeuristic.ts +81 -0
  641. package/src/idl_codegen/types/PythConfiguration.ts +56 -0
  642. package/src/idl_codegen/types/ReserveCollateral.ts +104 -0
  643. package/src/idl_codegen/types/ReserveConfig.ts +467 -0
  644. package/src/idl_codegen/types/ReserveFarmKind.ts +90 -0
  645. package/src/idl_codegen/types/ReserveFees.ts +122 -0
  646. package/src/idl_codegen/types/ReserveLiquidity.ts +286 -0
  647. package/src/idl_codegen/types/ReserveStatus.ts +120 -0
  648. package/src/idl_codegen/types/ScopeConfiguration.ts +85 -0
  649. package/src/idl_codegen/types/SwitchboardConfiguration.ts +67 -0
  650. package/src/idl_codegen/types/TokenInfo.ts +190 -0
  651. package/src/idl_codegen/types/UpdateConfigMode.ts +1440 -0
  652. package/src/idl_codegen/types/UpdateLendingMarketConfigValue.ts +376 -0
  653. package/src/idl_codegen/types/UpdateLendingMarketMode.ts +570 -0
  654. package/src/idl_codegen/types/WithdrawalCaps.ts +86 -0
  655. package/src/idl_codegen/types/index.ts +276 -0
  656. package/src/idl_codegen/zero_padding/ObligationZP.ts +186 -0
  657. package/src/idl_codegen/zero_padding/index.ts +1 -0
  658. package/src/idl_codegen_jupiter_perps/accounts/Pool.ts +155 -0
  659. package/src/idl_codegen_jupiter_perps/accounts/index.ts +2 -0
  660. package/src/idl_codegen_jupiter_perps/programId.ts +7 -0
  661. package/src/idl_codegen_jupiter_perps/types/Fees.ts +130 -0
  662. package/src/idl_codegen_jupiter_perps/types/Limit.ts +72 -0
  663. package/src/idl_codegen_jupiter_perps/types/PoolApr.ts +69 -0
  664. package/src/idl_codegen_jupiter_perps/types/index.ts +6 -0
  665. package/src/idl_codegen_kamino_vault/accounts/Reserve.ts +221 -0
  666. package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +214 -0
  667. package/src/idl_codegen_kamino_vault/accounts/index.ts +4 -0
  668. package/src/idl_codegen_kamino_vault/errors/anchor.ts +764 -0
  669. package/src/idl_codegen_kamino_vault/errors/custom.ts +344 -0
  670. package/src/idl_codegen_kamino_vault/errors/index.ts +49 -0
  671. package/src/idl_codegen_kamino_vault/instructions/deposit.ts +54 -0
  672. package/src/idl_codegen_kamino_vault/instructions/index.ts +10 -0
  673. package/src/idl_codegen_kamino_vault/instructions/initVault.ts +35 -0
  674. package/src/idl_codegen_kamino_vault/instructions/invest.ts +60 -0
  675. package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +58 -0
  676. package/src/idl_codegen_kamino_vault/instructions/withdraw.ts +81 -0
  677. package/src/idl_codegen_kamino_vault/programId.ts +7 -0
  678. package/src/idl_codegen_kamino_vault/types/BigFractionBytes.ts +61 -0
  679. package/src/idl_codegen_kamino_vault/types/BorrowRateCurve.ts +55 -0
  680. package/src/idl_codegen_kamino_vault/types/CurvePoint.ts +61 -0
  681. package/src/idl_codegen_kamino_vault/types/LastUpdate.ts +90 -0
  682. package/src/idl_codegen_kamino_vault/types/PriceHeuristic.ts +78 -0
  683. package/src/idl_codegen_kamino_vault/types/PythConfiguration.ts +56 -0
  684. package/src/idl_codegen_kamino_vault/types/ReserveCollateral.ts +104 -0
  685. package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +426 -0
  686. package/src/idl_codegen_kamino_vault/types/ReserveFees.ts +118 -0
  687. package/src/idl_codegen_kamino_vault/types/ReserveLiquidity.ts +268 -0
  688. package/src/idl_codegen_kamino_vault/types/ScopeConfiguration.ts +85 -0
  689. package/src/idl_codegen_kamino_vault/types/SwitchboardConfiguration.ts +64 -0
  690. package/src/idl_codegen_kamino_vault/types/TokenInfo.ts +172 -0
  691. package/src/idl_codegen_kamino_vault/types/VaultAllocation.ts +115 -0
  692. package/src/idl_codegen_kamino_vault/types/WithdrawalCaps.ts +86 -0
  693. package/src/idl_codegen_kamino_vault/types/index.ts +30 -0
  694. package/src/index.ts +1 -0
  695. package/src/lending_operations/index.ts +2 -0
  696. package/src/lending_operations/repay_with_collateral_calcs.ts +71 -0
  697. package/src/lending_operations/repay_with_collateral_operations.ts +318 -0
  698. package/src/leverage/calcs.ts +465 -0
  699. package/src/leverage/index.ts +4 -0
  700. package/src/leverage/instructions.ts +144 -0
  701. package/src/leverage/operations.ts +1814 -0
  702. package/src/leverage/utils.ts +273 -0
  703. package/src/lib.ts +9 -0
  704. package/src/referrals/index.ts +2 -0
  705. package/src/referrals/instructions.ts +114 -0
  706. package/src/referrals/operations.ts +325 -0
  707. package/src/utils/ObligationType.ts +171 -0
  708. package/src/utils/api.ts +59 -0
  709. package/src/utils/ata.ts +195 -0
  710. package/src/utils/constants.ts +81 -0
  711. package/src/utils/idl.ts +4 -0
  712. package/src/utils/index.ts +16 -0
  713. package/src/utils/instruction.ts +258 -0
  714. package/src/utils/kamino.ts +12 -0
  715. package/src/utils/layout.ts +118 -0
  716. package/src/utils/lookupTable.ts +55 -0
  717. package/src/utils/managerTypes.ts +456 -0
  718. package/src/utils/oracle.ts +338 -0
  719. package/src/utils/pubkey.ts +261 -0
  720. package/src/utils/rpc.ts +108 -0
  721. package/src/utils/seeds.ts +183 -0
  722. package/src/utils/sendTransactionsUtils.ts +207 -0
  723. package/src/utils/slots.ts +28 -0
  724. package/src/utils/syncNative.ts +22 -0
  725. package/src/utils/userMetadata.ts +401 -0
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Kamino, StrategyWithAddress } from '@kamino-finance/kliquidity-sdk';\nimport { KaminoMarket, KaminoReserve, lamportsToNumberDecimal } from '../classes';\nimport { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';\nimport { PriceAinBProvider, SwapIxnsProvider } from './operations';\nimport Decimal from 'decimal.js';\nimport { getTokenAccountBalanceDecimal } from '../utils';\nimport { numberToLamportsDecimal } from '../classes/utils';\nimport BN from 'bn.js';\n\nexport interface KaminoSwapperIxBuilder {\n (\n input: DepositAmountsForSwap,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey,\n owner: PublicKey,\n slippage: Decimal,\n allKeys: PublicKey[]\n ): Promise<[TransactionInstruction[], PublicKey[]]>;\n}\n\nexport interface DepositAmountsForSwap {\n requiredAAmountToDeposit: Decimal;\n requiredBAmountToDeposit: Decimal;\n tokenAToSwapAmount: Decimal;\n tokenBToSwapAmount: Decimal;\n}\n\nexport const getTokenToKtokenSwapper = async (\n connection: Connection,\n kaminoMarket: KaminoMarket,\n kamino: Kamino,\n depositor: PublicKey,\n swapper: SwapIxnsProvider,\n priceAinB: PriceAinBProvider,\n includeAtaIxns: boolean = true\n): Promise<SwapIxnsProvider> => {\n return async (\n amountInLamports: number,\n amountInMint: PublicKey,\n amountOutMint: PublicKey,\n slippage: number,\n amountDebtAtaBalance?: Decimal\n ) => {\n const slippageBps = new Decimal(slippage).mul('100');\n const mintInDecimals = kaminoMarket.getReserveByMint(amountInMint)!.state.liquidity.mintDecimals.toNumber();\n const amountIn = lamportsToNumberDecimal(amountInLamports, mintInDecimals);\n console.debug('Depositing token', amountInMint.toString(), ' for ', amountOutMint.toString(), 'ktoken');\n if (amountDebtAtaBalance === undefined) {\n throw Error('Amount in debt ATA balance is undefined for leverage ktoken deposit');\n }\n\n const ixWithLookup = (await getKtokenDepositIxs(\n connection,\n kamino,\n depositor,\n amountInMint,\n amountOutMint,\n amountIn,\n slippageBps,\n amountDebtAtaBalance,\n swapper,\n priceAinB,\n includeAtaIxns\n ))!;\n return [ixWithLookup.instructions, ixWithLookup.lookupTablesAddresses];\n };\n};\n\nexport async function getKtokenDepositIxs(\n connection: Connection,\n kamino: Kamino,\n depositor: PublicKey,\n depositTokenMint: PublicKey,\n ktokenMint: PublicKey,\n amountToDeposit: Decimal,\n slippageBps: Decimal,\n amountExpectedDepositAtaBalance: Decimal,\n swapper: SwapIxnsProvider,\n priceAinB: PriceAinBProvider,\n includeAtaIxns: boolean = true\n) {\n const kaminoStrategy = await kamino.getStrategyByKTokenMint(ktokenMint);\n const tokenAMint = kaminoStrategy?.strategy.tokenAMint!;\n const tokenBMint = kaminoStrategy?.strategy.tokenBMint!;\n const priceAinBDecimal = await priceAinB(tokenAMint, tokenBMint);\n\n if (tokenAMint.equals(depositTokenMint)) {\n const bBalance = await getTokenAccountBalanceDecimal(connection, tokenBMint, depositor);\n const tokensBalances = { a: amountExpectedDepositAtaBalance, b: bBalance };\n console.log('amountToDeposit', amountToDeposit);\n return await kamino.singleSidedDepositTokenA(\n kaminoStrategy!,\n amountToDeposit,\n depositor,\n slippageBps,\n undefined,\n swapProviderToKaminoSwapProvider(swapper),\n tokensBalances,\n priceAinBDecimal,\n includeAtaIxns\n );\n } else if (tokenBMint.equals(depositTokenMint)) {\n const aBalance = await getTokenAccountBalanceDecimal(connection, tokenAMint, depositor);\n const tokensBalances = { a: aBalance, b: amountExpectedDepositAtaBalance };\n return await kamino.singleSidedDepositTokenB(\n kaminoStrategy!,\n amountToDeposit,\n depositor,\n slippageBps,\n undefined,\n swapProviderToKaminoSwapProvider(swapper),\n tokensBalances,\n priceAinBDecimal,\n includeAtaIxns\n );\n } else {\n throw Error('Deposit token is neither A nor B in the strategy');\n }\n}\n\nexport const getKtokenToTokenSwapper = async (\n kaminoMarket: KaminoMarket,\n kamino: Kamino,\n depositor: PublicKey,\n swapper: SwapIxnsProvider\n): Promise<SwapIxnsProvider> => {\n return async (amountInLamports: number, amountInMint: PublicKey, amountOutMint: PublicKey, slippage: number) => {\n const amountInDecimals = kaminoMarket.getReserveByMint(amountInMint)!.state.liquidity.mintDecimals.toNumber();\n const amountToWithdraw = lamportsToNumberDecimal(amountInLamports, amountInDecimals);\n const kaminoStrategy = await kamino.getStrategyByKTokenMint(amountInMint);\n\n console.log('Withdrawing ktoken', amountInMint.toString(), ' for ', amountOutMint.toString(), 'token');\n\n const ixWithdraw = (await getKtokenWithdrawIxs(kamino, depositor, kaminoStrategy!, amountToWithdraw))!;\n\n const [estimatedAOut, estimatedBOut] = await getKtokenWithdrawEstimatesAndPrice(\n kamino,\n kaminoStrategy!,\n amountToWithdraw\n );\n\n if (amountOutMint.equals(kaminoStrategy?.strategy.tokenAMint!)) {\n const [swapIxs, swapLookupTables] = await swapper(\n estimatedBOut.toNumber(),\n kaminoStrategy?.strategy.tokenBMint!,\n kaminoStrategy?.strategy.tokenAMint!,\n slippage\n );\n\n return [[...ixWithdraw.prerequisiteIxs, ixWithdraw.withdrawIx, ...swapIxs], swapLookupTables];\n } else if (amountOutMint.equals(kaminoStrategy?.strategy.tokenBMint!)) {\n const [swapIxs, swapLookupTables] = await swapper(\n estimatedAOut.toNumber(),\n kaminoStrategy?.strategy.tokenAMint!,\n kaminoStrategy?.strategy.tokenBMint!,\n slippage\n );\n\n return [[...ixWithdraw.prerequisiteIxs, ixWithdraw.withdrawIx, ...swapIxs], swapLookupTables];\n } else {\n throw Error('Deposit token is neither A nor B in the strategy');\n }\n };\n};\n\nexport async function getKtokenWithdrawIxs(\n kamino: Kamino,\n withdrawer: PublicKey,\n kaminoStrategy: StrategyWithAddress,\n amountToWithdraw: Decimal\n) {\n return await kamino.withdrawShares(kaminoStrategy!, amountToWithdraw, withdrawer);\n}\n\nexport async function getKtokenWithdrawEstimatesAndPrice(\n kamino: Kamino,\n kaminoStrategy: StrategyWithAddress,\n amountToWithdraw: Decimal\n) {\n const sharesData = await kamino.getStrategyShareData(kaminoStrategy);\n const withdrawPct = amountToWithdraw\n .div(\n lamportsToNumberDecimal(\n new Decimal(kaminoStrategy.strategy.sharesIssued.toString()),\n kaminoStrategy.strategy.sharesMintDecimals.toNumber()\n )\n )\n .toDecimalPlaces(18);\n\n const withdrawFee = new Decimal(10_000).sub(new Decimal(kaminoStrategy.strategy.withdrawFee.toString()));\n\n // TODO: Mihai/Marius improve - currently subtracting due to decimal accuracy issues compared to yvaults SC\n // for both A and B op: .sub(0.000002)\n\n const estimatedAOut = sharesData.balance.computedHoldings.invested.a\n .add(sharesData.balance.computedHoldings.available.a)\n .mul(withdrawPct)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber(), 1)\n .sub(0.000002)\n .mul(withdrawFee)\n .div(10_000)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber());\n\n const estimatedAOutDecimal = numberToLamportsDecimal(\n estimatedAOut,\n kaminoStrategy.strategy.tokenAMintDecimals.toNumber()\n ).floor();\n\n const estimatedBOut = sharesData.balance.computedHoldings.invested.b\n .add(sharesData.balance.computedHoldings.available.b)\n .mul(withdrawPct)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenBMintDecimals.toNumber(), 1)\n .sub(0.000002)\n .mul(withdrawFee)\n .div(10_000)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber());\n\n const estimatedBOutDecimal = numberToLamportsDecimal(\n estimatedBOut,\n kaminoStrategy.strategy.tokenBMintDecimals.toNumber()\n ).floor();\n\n console.log('a-out', estimatedAOutDecimal.toString());\n console.log('b-out', estimatedBOut.toString());\n return [estimatedAOutDecimal, estimatedBOutDecimal];\n}\n\nexport function swapProviderToKaminoSwapProvider(swapper: SwapIxnsProvider): KaminoSwapperIxBuilder {\n return async (\n input: DepositAmountsForSwap,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey,\n _owner: PublicKey,\n slippageBps: Decimal,\n _allKeys: PublicKey[]\n ): Promise<[TransactionInstruction[], PublicKey[]]> => {\n if (input.tokenBToSwapAmount.lt(0)) {\n return await swapper(\n input.tokenBToSwapAmount.abs().toNumber(),\n tokenBMint,\n tokenAMint,\n slippageBps.toNumber() / 100\n );\n } else if (input.tokenAToSwapAmount.lt(0)) {\n return await swapper(\n input.tokenAToSwapAmount.abs().toNumber(),\n tokenAMint,\n tokenBMint,\n slippageBps.toNumber() / 100\n );\n } else {\n throw Error('Nothing to swap');\n }\n };\n}\n\nexport const getExpectedTokenBalanceAfterBorrow = async (\n connection: Connection,\n mint: PublicKey,\n owner: PublicKey,\n amountToBorrowLamports: Decimal,\n amountToBorrowmintDecimals: number\n) => {\n const initialUserTokenABalance = await getTokenAccountBalanceDecimal(connection, mint, owner);\n\n return initialUserTokenABalance\n .add(lamportsToNumberDecimal(amountToBorrowLamports, amountToBorrowmintDecimals))\n .toDecimalPlaces(amountToBorrowmintDecimals);\n};\n\nexport const isBorrowingEnabled = (reserve: KaminoReserve) => {\n return reserve.state.config.borrowLimit.gt(new BN(0));\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":";;;;;;AAoEA,kDAkDC;AA+CD,oDAOC;AAED,gFAmDC;AAED,4EA2BC;AA7PD,wCAAkF;AAGlF,4DAAiC;AACjC,oCAAyD;AACzD,4CAA2D;AAC3D,kDAAuB;AAoBhB,MAAM,uBAAuB,GAAG,KAAK,EAC1C,UAAsB,EACtB,YAA0B,EAC1B,MAAc,EACd,SAAoB,EACpB,OAAyB,EACzB,SAA4B,EAC5B,iBAA0B,IAAI,EACH,EAAE;IAC7B,OAAO,KAAK,EACV,gBAAwB,EACxB,YAAuB,EACvB,aAAwB,EACxB,QAAgB,EAChB,oBAA8B,EAC9B,EAAE;QACF,MAAM,WAAW,GAAG,IAAI,oBAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAE,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC5G,MAAM,QAAQ,GAAG,IAAA,iCAAuB,EAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxG,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,MAAM,mBAAmB,CAC7C,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,cAAc,CACf,CAAE,CAAC;QACJ,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,uBAAuB,2BAuClC;AAEK,KAAK,UAAU,mBAAmB,CACvC,UAAsB,EACtB,MAAc,EACd,SAAoB,EACpB,gBAA2B,EAC3B,UAAqB,EACrB,eAAwB,EACxB,WAAoB,EACpB,+BAAwC,EACxC,OAAyB,EACzB,SAA4B,EAC5B,iBAA0B,IAAI;IAE9B,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,cAAc,EAAE,QAAQ,CAAC,UAAW,CAAC;IACxD,MAAM,UAAU,GAAG,cAAc,EAAE,QAAQ,CAAC,UAAW,CAAC;IACxD,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEjE,IAAI,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAA6B,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,+BAA+B,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAChD,OAAO,MAAM,MAAM,CAAC,wBAAwB,CAC1C,cAAe,EACf,eAAe,EACf,SAAS,EACT,WAAW,EACX,SAAS,EACT,gCAAgC,CAAC,OAAO,CAAC,EACzC,cAAc,EACd,gBAAgB,EAChB,cAAc,CACf,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAA6B,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,+BAA+B,EAAE,CAAC;QAC3E,OAAO,MAAM,MAAM,CAAC,wBAAwB,CAC1C,cAAe,EACf,eAAe,EACf,SAAS,EACT,WAAW,EACX,SAAS,EACT,gCAAgC,CAAC,OAAO,CAAC,EACzC,cAAc,EACd,gBAAgB,EAChB,cAAc,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAC1C,YAA0B,EAC1B,MAAc,EACd,SAAoB,EACpB,OAAyB,EACE,EAAE;IAC7B,OAAO,KAAK,EAAE,gBAAwB,EAAE,YAAuB,EAAE,aAAwB,EAAE,QAAgB,EAAE,EAAE;QAC7G,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAE,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC9G,MAAM,gBAAgB,GAAG,IAAA,iCAAuB,EAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE1E,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QAEvG,MAAM,UAAU,GAAG,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,cAAe,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAEvG,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,kCAAkC,CAC7E,MAAM,EACN,cAAe,EACf,gBAAgB,CACjB,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAW,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAC/C,aAAa,CAAC,QAAQ,EAAE,EACxB,cAAc,EAAE,QAAQ,CAAC,UAAW,EACpC,cAAc,EAAE,QAAQ,CAAC,UAAW,EACpC,QAAQ,CACT,CAAC;YAEF,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAChG,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAW,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAC/C,aAAa,CAAC,QAAQ,EAAE,EACxB,cAAc,EAAE,QAAQ,CAAC,UAAW,EACpC,cAAc,EAAE,QAAQ,CAAC,UAAW,EACpC,QAAQ,CACT,CAAC;YAEF,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,uBAAuB,2BA2ClC;AAEK,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,UAAqB,EACrB,cAAmC,EACnC,gBAAyB;IAEzB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,cAAe,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;AACpF,CAAC;AAEM,KAAK,UAAU,kCAAkC,CACtD,MAAc,EACd,cAAmC,EACnC,gBAAyB;IAEzB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,gBAAgB;SACjC,GAAG,CACF,IAAA,iCAAuB,EACrB,IAAI,oBAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAC5D,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CACtD,CACF;SACA,eAAe,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEzG,2GAA2G;IAC3G,sCAAsC;IAEtC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACjE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;SACpD,GAAG,CAAC,WAAW,CAAC;SAChB,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACzE,GAAG,CAAC,QAAQ,CAAC;SACb,GAAG,CAAC,WAAW,CAAC;SAChB,GAAG,CAAC,MAAM,CAAC;SACX,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1E,MAAM,oBAAoB,GAAG,IAAA,+BAAuB,EAClD,aAAa,EACb,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CACtD,CAAC,KAAK,EAAE,CAAC;IAEV,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACjE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;SACpD,GAAG,CAAC,WAAW,CAAC;SAChB,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACzE,GAAG,CAAC,QAAQ,CAAC;SACb,GAAG,CAAC,WAAW,CAAC;SAChB,GAAG,CAAC,MAAM,CAAC;SACX,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1E,MAAM,oBAAoB,GAAG,IAAA,+BAAuB,EAClD,aAAa,EACb,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CACtD,CAAC,KAAK,EAAE,CAAC;IAEV,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,gCAAgC,CAAC,OAAyB;IACxE,OAAO,KAAK,EACV,KAA4B,EAC5B,UAAqB,EACrB,UAAqB,EACrB,MAAiB,EACjB,WAAoB,EACpB,QAAqB,EAC6B,EAAE;QACpD,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,OAAO,CAClB,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EACzC,UAAU,EACV,UAAU,EACV,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,CAC7B,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,OAAO,CAClB,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EACzC,UAAU,EACV,UAAU,EACV,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,CAC7B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM,kCAAkC,GAAG,KAAK,EACrD,UAAsB,EACtB,IAAe,EACf,KAAgB,EAChB,sBAA+B,EAC/B,0BAAkC,EAClC,EAAE;IACF,MAAM,wBAAwB,GAAG,MAAM,IAAA,qCAA6B,EAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9F,OAAO,wBAAwB;SAC5B,GAAG,CAAC,IAAA,iCAAuB,EAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;SAChF,eAAe,CAAC,0BAA0B,CAAC,CAAC;AACjD,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,kBAAkB,GAAG,CAAC,OAAsB,EAAE,EAAE;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B"}
package/dist/lib.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from './utils';
7
7
  export * from './leverage';
8
8
  export * from './referrals';
9
9
  export * from './lending_operations';
10
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,uDAAqC","sourcesContent":["export * from './idl_codegen/instructions';\nexport * from './idl_codegen/accounts';\nexport * from './idl_codegen/programId';\nexport * from './idl_codegen/zero_padding';\nexport * from './classes';\nexport * from './utils';\nexport * from './leverage';\nexport * from './referrals';\nexport * from './lending_operations';\n"]}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,uDAAqC"}
@@ -1,2 +1,3 @@
1
1
  export * from './instructions';
2
2
  export * from './operations';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B","sourcesContent":["export * from './instructions';\nexport * from './operations';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B"}
@@ -14,3 +14,4 @@ export declare const getDeleteReferrerStateAndShortUrlIxns: ({ referrer, connect
14
14
  connection: Connection;
15
15
  programId: PublicKey;
16
16
  }) => Promise<TransactionInstruction>;
17
+ //# sourceMappingURL=instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,sBAAsB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU1C,eAAO,MAAM,gCAAgC,gCAG1C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B,sCAqCA,CAAC;AAEF,eAAO,MAAM,mCAAmC,uCAI7C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB,2BAsBA,CAAC;AAGF,eAAO,MAAM,qCAAqC,yCAI/C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB,oCAgBA,CAAC"}
@@ -1,29 +1,20 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.getDeleteReferrerStateAndShortUrlIxns = exports.getInitReferrerStateAndShortUrlIxns = exports.getInitAllReferrerTokenStateIxns = void 0;
13
4
  const web3_js_1 = require("@solana/web3.js");
14
5
  const utils_1 = require("../utils");
15
6
  const lib_1 = require("../lib");
16
- const getInitAllReferrerTokenStateIxns = (_a) => __awaiter(void 0, [_a], void 0, function* ({ referrer, kaminoMarket, }) {
7
+ const getInitAllReferrerTokenStateIxns = async ({ referrer, kaminoMarket, }) => {
17
8
  if (referrer.equals(web3_js_1.PublicKey.default)) {
18
9
  throw new Error('Referrer not set');
19
10
  }
20
- yield kaminoMarket.loadReserves();
11
+ await kaminoMarket.loadReserves();
21
12
  const initReferrerTokenStateIxns = [];
22
13
  const tokenStatesToCreate = [];
23
14
  for (const reserve of kaminoMarket.reserves.values()) {
24
15
  const referrerTokenStateAddress = (0, utils_1.referrerTokenStatePda)(referrer, reserve.address, kaminoMarket.programId)[0];
25
- if (!(yield (0, utils_1.checkIfAccountExists)(kaminoMarket.getConnection(), referrerTokenStateAddress))) {
26
- tokenStatesToCreate.push([referrerTokenStateAddress, reserve === null || reserve === void 0 ? void 0 : reserve.address]);
16
+ if (!(await (0, utils_1.checkIfAccountExists)(kaminoMarket.getConnection(), referrerTokenStateAddress))) {
17
+ tokenStatesToCreate.push([referrerTokenStateAddress, reserve?.address]);
27
18
  }
28
19
  }
29
20
  tokenStatesToCreate.forEach(([referrerTokenStateAddress, reserveAddress]) => {
@@ -40,7 +31,7 @@ const getInitAllReferrerTokenStateIxns = (_a) => __awaiter(void 0, [_a], void 0,
40
31
  initReferrerTokenStateIxns.push(initReferrerTokenStateIx);
41
32
  });
42
33
  return initReferrerTokenStateIxns;
43
- });
34
+ };
44
35
  exports.getInitAllReferrerTokenStateIxns = getInitAllReferrerTokenStateIxns;
45
36
  const getInitReferrerStateAndShortUrlIxns = ({ referrer, shortUrl, programId = lib_1.PROGRAM_ID, }) => {
46
37
  const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
@@ -60,9 +51,9 @@ const getInitReferrerStateAndShortUrlIxns = ({ referrer, shortUrl, programId = l
60
51
  };
61
52
  exports.getInitReferrerStateAndShortUrlIxns = getInitReferrerStateAndShortUrlIxns;
62
53
  // TODO: 1 thing left before adding program id
63
- const getDeleteReferrerStateAndShortUrlIxns = (_a) => __awaiter(void 0, [_a], void 0, function* ({ referrer, connection, programId = lib_1.PROGRAM_ID, }) {
54
+ const getDeleteReferrerStateAndShortUrlIxns = async ({ referrer, connection, programId = lib_1.PROGRAM_ID, }) => {
64
55
  const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
65
- const referrerState = yield lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
56
+ const referrerState = await lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
66
57
  const initReferrerStateAndShortUrlIx = (0, lib_1.deleteReferrerStateAndShortUrl)({
67
58
  referrer: referrer,
68
59
  referrerState: referrerStateAddress,
@@ -71,6 +62,6 @@ const getDeleteReferrerStateAndShortUrlIxns = (_a) => __awaiter(void 0, [_a], vo
71
62
  systemProgram: web3_js_1.SystemProgram.programId,
72
63
  }, programId);
73
64
  return initReferrerStateAndShortUrlIx;
74
- });
65
+ };
75
66
  exports.getDeleteReferrerStateAndShortUrlIxns = getDeleteReferrerStateAndShortUrlIxns;
76
67
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, SYSVAR_RENT_PUBKEY, SystemProgram, TransactionInstruction, Connection } from '@solana/web3.js';\nimport { KaminoMarket } from '../classes';\nimport { checkIfAccountExists, referrerStatePda, referrerTokenStatePda, shortUrlPda, userMetadataPda } from '../utils';\nimport {\n PROGRAM_ID,\n ReferrerState,\n deleteReferrerStateAndShortUrl,\n initReferrerStateAndShortUrl,\n initReferrerTokenState,\n} from '../lib';\n\nexport const getInitAllReferrerTokenStateIxns = async ({\n referrer,\n kaminoMarket,\n}: {\n referrer: PublicKey;\n kaminoMarket: KaminoMarket;\n}) => {\n if (referrer.equals(PublicKey.default)) {\n throw new Error('Referrer not set');\n }\n\n await kaminoMarket.loadReserves();\n\n const initReferrerTokenStateIxns: TransactionInstruction[] = [];\n\n const tokenStatesToCreate: [PublicKey, PublicKey][] = [];\n for (const reserve of kaminoMarket.reserves.values()) {\n const referrerTokenStateAddress = referrerTokenStatePda(referrer, reserve.address, kaminoMarket.programId)[0];\n\n if (!(await checkIfAccountExists(kaminoMarket.getConnection(), referrerTokenStateAddress))) {\n tokenStatesToCreate.push([referrerTokenStateAddress, reserve?.address]);\n }\n }\n\n tokenStatesToCreate.forEach(([referrerTokenStateAddress, reserveAddress]) => {\n const initReferrerTokenStateIx = initReferrerTokenState(\n {\n referrer: referrer,\n },\n {\n lendingMarket: kaminoMarket.getAddress(),\n payer: referrer,\n reserve: reserveAddress,\n referrerTokenState: referrerTokenStateAddress,\n rent: SYSVAR_RENT_PUBKEY,\n systemProgram: SystemProgram.programId,\n }\n );\n\n initReferrerTokenStateIxns.push(initReferrerTokenStateIx);\n });\n\n return initReferrerTokenStateIxns;\n};\n\nexport const getInitReferrerStateAndShortUrlIxns = ({\n referrer,\n shortUrl,\n programId = PROGRAM_ID,\n}: {\n referrer: PublicKey;\n shortUrl: string;\n programId: PublicKey;\n}) => {\n const [referrerStateAddress] = referrerStatePda(referrer, programId);\n const [shortUrlAddress] = shortUrlPda(shortUrl, programId);\n\n const referrerUserMetadataAddress = userMetadataPda(referrer, programId)[0];\n\n const initReferrerStateAndShortUrlIx = initReferrerStateAndShortUrl(\n {\n shortUrl: shortUrl,\n },\n {\n referrer: referrer,\n referrerState: referrerStateAddress,\n referrerShortUrl: shortUrlAddress,\n referrerUserMetadata: referrerUserMetadataAddress,\n rent: SYSVAR_RENT_PUBKEY,\n systemProgram: SystemProgram.programId,\n },\n programId\n );\n\n return initReferrerStateAndShortUrlIx;\n};\n\n// TODO: 1 thing left before adding program id\nexport const getDeleteReferrerStateAndShortUrlIxns = async ({\n referrer,\n connection,\n programId = PROGRAM_ID,\n}: {\n referrer: PublicKey;\n connection: Connection;\n programId: PublicKey;\n}) => {\n const [referrerStateAddress] = referrerStatePda(referrer, programId);\n const referrerState = await ReferrerState.fetch(connection, referrerStateAddress, programId);\n\n const initReferrerStateAndShortUrlIx = deleteReferrerStateAndShortUrl(\n {\n referrer: referrer,\n referrerState: referrerStateAddress,\n shortUrl: referrerState!.shortUrl,\n rent: SYSVAR_RENT_PUBKEY,\n systemProgram: SystemProgram.programId,\n },\n programId\n );\n\n return initReferrerStateAndShortUrlIx;\n};\n"]}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,7 @@ export declare function getReferralsRanking(connection: Connection, kaminoMarket
92
92
  * Get ReferralRank array of all referrers ordered by how much they've earned in USD
93
93
  * @param connection
94
94
  * @param user
95
- * @param programId
95
+ * @param kaminoMarket
96
96
  */
97
97
  export declare function getUserReferralRanking(connection: Connection, user: PublicKey, kaminoMarket: KaminoMarket): Promise<number | undefined>;
98
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,OAAO,EAAc,YAAY,EAA2B,MAAM,QAAQ,CAAC;AAC3E,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gCAGpC;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,oBAQA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,mDAKxC;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,oBAQA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,sDAKxC;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,oBAkBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAO5C;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CA+BzB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCrH;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
@@ -1,13 +1,4 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -31,12 +22,12 @@ const decimal_js_1 = __importDefault(require("decimal.js"));
31
22
  * @param referrer
32
23
  * @param kaminoMarket
33
24
  */
34
- const initAllReferrerTokenStates = (_a) => __awaiter(void 0, [_a], void 0, function* ({ referrer, kaminoMarket, }) {
35
- const ixns = yield (0, instructions_1.getInitAllReferrerTokenStateIxns)({ referrer: referrer.publicKey, kaminoMarket });
36
- const tx = yield (0, utils_1.buildVersionedTransaction)(kaminoMarket.getConnection(), referrer.publicKey, ixns);
25
+ const initAllReferrerTokenStates = async ({ referrer, kaminoMarket, }) => {
26
+ const ixns = await (0, instructions_1.getInitAllReferrerTokenStateIxns)({ referrer: referrer.publicKey, kaminoMarket });
27
+ const tx = await (0, utils_1.buildVersionedTransaction)(kaminoMarket.getConnection(), referrer.publicKey, ixns);
37
28
  console.log('Init Referral Token States');
38
- return yield (0, utils_1.buildAndSendTxnWithLogs)(kaminoMarket.getConnection(), tx, referrer, [referrer]);
39
- });
29
+ return await (0, utils_1.buildAndSendTxnWithLogs)(kaminoMarket.getConnection(), tx, referrer, [referrer]);
30
+ };
40
31
  exports.initAllReferrerTokenStates = initAllReferrerTokenStates;
41
32
  /**
42
33
  * Initialize referrer state and short url
@@ -44,12 +35,12 @@ exports.initAllReferrerTokenStates = initAllReferrerTokenStates;
44
35
  * @param referrer
45
36
  * @param shortUrl
46
37
  */
47
- const createReferrerStateAndShortUrl = (_a) => __awaiter(void 0, [_a], void 0, function* ({ connection, referrer, shortUrl, programId = lib_1.PROGRAM_ID, }) {
38
+ const createReferrerStateAndShortUrl = async ({ connection, referrer, shortUrl, programId = lib_1.PROGRAM_ID, }) => {
48
39
  const ixn = (0, instructions_1.getInitReferrerStateAndShortUrlIxns)({ referrer: referrer.publicKey, shortUrl, programId });
49
- const tx = yield (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [ixn]);
40
+ const tx = await (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [ixn]);
50
41
  console.log('Init ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + shortUrl);
51
- return yield (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
52
- });
42
+ return await (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
43
+ };
53
44
  exports.createReferrerStateAndShortUrl = createReferrerStateAndShortUrl;
54
45
  /**
55
46
  * Initialize referrer state and short url
@@ -57,8 +48,8 @@ exports.createReferrerStateAndShortUrl = createReferrerStateAndShortUrl;
57
48
  * @param referrer
58
49
  * @param newShortUrl
59
50
  */
60
- const updateReferrerStateAndShortUrl = (_a) => __awaiter(void 0, [_a], void 0, function* ({ connection, referrer, newShortUrl, programId = lib_1.PROGRAM_ID, }) {
61
- const deleteIxn = yield (0, instructions_1.getDeleteReferrerStateAndShortUrlIxns)({
51
+ const updateReferrerStateAndShortUrl = async ({ connection, referrer, newShortUrl, programId = lib_1.PROGRAM_ID, }) => {
52
+ const deleteIxn = await (0, instructions_1.getDeleteReferrerStateAndShortUrlIxns)({
62
53
  referrer: referrer.publicKey,
63
54
  connection,
64
55
  programId,
@@ -68,10 +59,10 @@ const updateReferrerStateAndShortUrl = (_a) => __awaiter(void 0, [_a], void 0, f
68
59
  shortUrl: newShortUrl,
69
60
  programId,
70
61
  });
71
- const tx = yield (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [deleteIxn, initIxn]);
62
+ const tx = await (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [deleteIxn, initIxn]);
72
63
  console.log('Update ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + newShortUrl);
73
- return yield (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
74
- });
64
+ return await (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
65
+ };
75
66
  exports.updateReferrerStateAndShortUrl = updateReferrerStateAndShortUrl;
76
67
  /**
77
68
  * Check if short URL available - also checks if short URL is valid (ascii-alphanumeric plus '_' '-', max 32 chars)
@@ -79,18 +70,16 @@ exports.updateReferrerStateAndShortUrl = updateReferrerStateAndShortUrl;
79
70
  * @param shortUrl
80
71
  * @param programId
81
72
  */
82
- function isShortUrlAvailable(connection_1, shortUrl_1) {
83
- return __awaiter(this, arguments, void 0, function* (connection, shortUrl, programId = lib_1.PROGRAM_ID) {
84
- if (shortUrl.length > 32) {
85
- return false;
86
- }
87
- if (!/^[a-zA-Z0-9-_]+$/.test(shortUrl)) {
88
- return false;
89
- }
90
- const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
91
- const info = yield connection.getAccountInfo(shortUrlAddress);
92
- return info === null;
93
- });
73
+ async function isShortUrlAvailable(connection, shortUrl, programId = lib_1.PROGRAM_ID) {
74
+ if (shortUrl.length > 32) {
75
+ return false;
76
+ }
77
+ if (!/^[a-zA-Z0-9-_]+$/.test(shortUrl)) {
78
+ return false;
79
+ }
80
+ const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
81
+ const info = await connection.getAccountInfo(shortUrlAddress);
82
+ return info === null;
94
83
  }
95
84
  /**
96
85
  * Get referrer short URL address and shortUrl
@@ -98,15 +87,13 @@ function isShortUrlAvailable(connection_1, shortUrl_1) {
98
87
  * @param referrer
99
88
  * @param programId
100
89
  */
101
- function getReferrerShortUrl(connection_1, referrer_1) {
102
- return __awaiter(this, arguments, void 0, function* (connection, referrer, programId = lib_1.PROGRAM_ID) {
103
- const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
104
- const referrerState = yield lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
105
- const shortUrlState = yield lib_1.ShortUrl.fetch(connection, referrerState.shortUrl, programId);
106
- const shortUrlAddress = referrerState ? referrerState.shortUrl : null;
107
- const shortUrl = shortUrlState ? shortUrlState.shortUrl : null;
108
- return [shortUrlAddress, shortUrl];
109
- });
90
+ async function getReferrerShortUrl(connection, referrer, programId = lib_1.PROGRAM_ID) {
91
+ const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
92
+ const referrerState = await lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
93
+ const shortUrlState = await lib_1.ShortUrl.fetch(connection, referrerState.shortUrl, programId);
94
+ const shortUrlAddress = referrerState ? referrerState.shortUrl : null;
95
+ const shortUrl = shortUrlState ? shortUrlState.shortUrl : null;
96
+ return [shortUrlAddress, shortUrl];
110
97
  }
111
98
  /**
112
99
  * Get referrer for a given Short URL
@@ -114,12 +101,10 @@ function getReferrerShortUrl(connection_1, referrer_1) {
114
101
  * @param shortUrl
115
102
  * @param programId
116
103
  */
117
- function getReferrerForShortUrl(connection_1, shortUrl_1) {
118
- return __awaiter(this, arguments, void 0, function* (connection, shortUrl, programId = lib_1.PROGRAM_ID) {
119
- const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
120
- const shortUrlState = yield lib_1.ShortUrl.fetch(connection, shortUrlAddress, programId);
121
- return shortUrlState.referrer;
122
- });
104
+ async function getReferrerForShortUrl(connection, shortUrl, programId = lib_1.PROGRAM_ID) {
105
+ const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
106
+ const shortUrlState = await lib_1.ShortUrl.fetch(connection, shortUrlAddress, programId);
107
+ return shortUrlState.referrer;
123
108
  }
124
109
  /**
125
110
  * Get referrer all UserMetadata user accounts linked to a given referrer
@@ -127,34 +112,32 @@ function getReferrerForShortUrl(connection_1, shortUrl_1) {
127
112
  * @param referrer
128
113
  * @param programId
129
114
  */
130
- function getUserMetadatasByReferrer(connection_1, referrer_1) {
131
- return __awaiter(this, arguments, void 0, function* (connection, referrer, programId = lib_1.PROGRAM_ID) {
132
- const userMetadatas = yield connection.getProgramAccounts(programId, {
133
- filters: [
134
- {
135
- dataSize: lib_1.UserMetadata.layout.span + 8,
115
+ async function getUserMetadatasByReferrer(connection, referrer, programId = lib_1.PROGRAM_ID) {
116
+ const userMetadatas = await connection.getProgramAccounts(programId, {
117
+ filters: [
118
+ {
119
+ dataSize: lib_1.UserMetadata.layout.span + 8,
120
+ },
121
+ {
122
+ memcmp: {
123
+ offset: 8,
124
+ bytes: referrer.toBase58(),
136
125
  },
137
- {
138
- memcmp: {
139
- offset: 8,
140
- bytes: referrer.toBase58(),
141
- },
142
- },
143
- ],
144
- });
145
- return userMetadatas.map((userMetadata) => {
146
- if (userMetadata.account === null) {
147
- throw new Error('Invalid account');
148
- }
149
- if (!userMetadata.account.owner.equals(programId)) {
150
- throw new Error("account doesn't belong to this program");
151
- }
152
- const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
153
- if (!userMetadataAccount) {
154
- throw Error('Could not parse obligation.');
155
- }
156
- return userMetadataAccount;
157
- });
126
+ },
127
+ ],
128
+ });
129
+ return userMetadatas.map((userMetadata) => {
130
+ if (userMetadata.account === null) {
131
+ throw new Error('Invalid account');
132
+ }
133
+ if (!userMetadata.account.owner.equals(programId)) {
134
+ throw new Error("account doesn't belong to this program");
135
+ }
136
+ const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
137
+ if (!userMetadataAccount) {
138
+ throw Error('Could not parse obligation.');
139
+ }
140
+ return userMetadataAccount;
158
141
  });
159
142
  }
160
143
  /**
@@ -163,28 +146,26 @@ function getUserMetadatasByReferrer(connection_1, referrer_1) {
163
146
  * @param referrer
164
147
  * @param programId
165
148
  */
166
- function getAllUserMetadatas(connection_1) {
167
- return __awaiter(this, arguments, void 0, function* (connection, programId = lib_1.PROGRAM_ID) {
168
- const userMetadatas = yield connection.getProgramAccounts(programId, {
169
- filters: [
170
- {
171
- dataSize: lib_1.UserMetadata.layout.span + 8,
172
- },
173
- ],
174
- });
175
- return userMetadatas.map((userMetadata) => {
176
- if (userMetadata.account === null) {
177
- throw new Error('Invalid account');
178
- }
179
- if (!userMetadata.account.owner.equals(programId)) {
180
- throw new Error("account doesn't belong to this program");
181
- }
182
- const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
183
- if (!userMetadataAccount) {
184
- throw Error('Could not parse obligation.');
185
- }
186
- return userMetadataAccount;
187
- });
149
+ async function getAllUserMetadatas(connection, programId = lib_1.PROGRAM_ID) {
150
+ const userMetadatas = await connection.getProgramAccounts(programId, {
151
+ filters: [
152
+ {
153
+ dataSize: lib_1.UserMetadata.layout.span + 8,
154
+ },
155
+ ],
156
+ });
157
+ return userMetadatas.map((userMetadata) => {
158
+ if (userMetadata.account === null) {
159
+ throw new Error('Invalid account');
160
+ }
161
+ if (!userMetadata.account.owner.equals(programId)) {
162
+ throw new Error("account doesn't belong to this program");
163
+ }
164
+ const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
165
+ if (!userMetadataAccount) {
166
+ throw Error('Could not parse obligation.');
167
+ }
168
+ return userMetadataAccount;
188
169
  });
189
170
  }
190
171
  /**
@@ -193,66 +174,61 @@ function getAllUserMetadatas(connection_1) {
193
174
  * @param referrer
194
175
  * @param programId
195
176
  */
196
- function getTotalUsersReferred(connection_1, referrer_1) {
197
- return __awaiter(this, arguments, void 0, function* (connection, referrer, programId = lib_1.PROGRAM_ID) {
198
- const userMetadatas = yield getUserMetadatasByReferrer(connection, referrer, programId);
199
- return userMetadatas.length;
200
- });
177
+ async function getTotalUsersReferred(connection, referrer, programId = lib_1.PROGRAM_ID) {
178
+ const userMetadatas = await getUserMetadatasByReferrer(connection, referrer, programId);
179
+ return userMetadatas.length;
201
180
  }
202
181
  /**
203
182
  * Get ReferralRank array of all referrers ordered by how much they've earned in USD
204
183
  * @param connection
205
184
  * @param kaminoMarket
206
185
  */
207
- function getReferralsRanking(connection, kaminoMarket) {
208
- return __awaiter(this, void 0, void 0, function* () {
209
- const referrersUsersReferred = new utils_1.PublicKeyMap();
210
- // counting users referred for each referrer
211
- const userMetadatas = yield getAllUserMetadatas(connection, kaminoMarket.programId);
212
- for (const userMetadata of userMetadatas) {
213
- const referrer = userMetadata.referrer;
214
- const usersReferred = referrersUsersReferred.get(referrer);
215
- if (usersReferred) {
216
- referrersUsersReferred.set(referrer, usersReferred + 1);
217
- }
218
- else {
219
- referrersUsersReferred.set(referrer, 1);
220
- }
186
+ async function getReferralsRanking(connection, kaminoMarket) {
187
+ const referrersUsersReferred = new utils_1.PublicKeyMap();
188
+ // counting users referred for each referrer
189
+ const userMetadatas = await getAllUserMetadatas(connection, kaminoMarket.programId);
190
+ for (const userMetadata of userMetadatas) {
191
+ const referrer = userMetadata.referrer;
192
+ const usersReferred = referrersUsersReferred.get(referrer);
193
+ if (usersReferred) {
194
+ referrersUsersReferred.set(referrer, usersReferred + 1);
195
+ }
196
+ else {
197
+ referrersUsersReferred.set(referrer, 1);
221
198
  }
222
- const referralsRankArray = [];
223
- for (const referrer of referrersUsersReferred.keys()) {
224
- const referrerTokenStates = yield kaminoMarket.getAllReferrerFeesCumulative(referrer);
225
- let totalEarningsUsd = new decimal_js_1.default(0);
226
- // calculating earnings for each referrer
227
- for (const reserve of kaminoMarket.reserves.values()) {
228
- totalEarningsUsd = totalEarningsUsd.add(referrerTokenStates.get(reserve.getLiquidityMint()).mul(reserve.getOracleMarketPrice()));
229
- }
230
- referralsRankArray.push({
231
- referrer: new web3_js_1.PublicKey(referrer),
232
- totalUsersReferred: referrersUsersReferred.get(referrer),
233
- totalEarningsUsd: totalEarningsUsd,
234
- });
199
+ }
200
+ const referralsRankArray = [];
201
+ for (const referrer of referrersUsersReferred.keys()) {
202
+ const referrerTokenStates = await kaminoMarket.getAllReferrerFeesCumulative(referrer);
203
+ let totalEarningsUsd = new decimal_js_1.default(0);
204
+ // calculating earnings for each referrer
205
+ for (const reserve of kaminoMarket.reserves.values()) {
206
+ totalEarningsUsd = totalEarningsUsd.add(referrerTokenStates.get(reserve.getLiquidityMint()).mul(reserve.getOracleMarketPrice()));
235
207
  }
236
- referralsRankArray.sort((a, b) => {
237
- return b.totalEarningsUsd.comparedTo(a.totalEarningsUsd);
208
+ referralsRankArray.push({
209
+ referrer: new web3_js_1.PublicKey(referrer),
210
+ totalUsersReferred: referrersUsersReferred.get(referrer),
211
+ totalEarningsUsd: totalEarningsUsd,
238
212
  });
239
- return referralsRankArray;
213
+ }
214
+ referralsRankArray.sort((a, b) => {
215
+ return b.totalEarningsUsd.comparedTo(a.totalEarningsUsd);
240
216
  });
217
+ return referralsRankArray;
241
218
  }
242
219
  /**
243
220
  * Get ReferralRank array of all referrers ordered by how much they've earned in USD
244
221
  * @param connection
245
222
  * @param user
246
- * @param programId
223
+ * @param kaminoMarket
247
224
  */
248
- function getUserReferralRanking(connection, user, kaminoMarket) {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- const referralsRanking = yield getReferralsRanking(connection, kaminoMarket);
251
- for (let index = 0; index < referralsRanking.length; index++) {
252
- if (user.equals(referralsRanking[index].referrer)) {
253
- return index + 1;
254
- }
225
+ async function getUserReferralRanking(connection, user, kaminoMarket) {
226
+ const referralsRanking = await getReferralsRanking(connection, kaminoMarket);
227
+ for (let index = 0; index < referralsRanking.length; index++) {
228
+ if (user.equals(referralsRanking[index].referrer)) {
229
+ return index + 1;
255
230
  }
256
- });
231
+ }
232
+ return undefined;
257
233
  }
258
234
  //# sourceMappingURL=operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"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","sourcesContent":["import { Connection, Keypair, PublicKey } from '@solana/web3.js';\nimport { KaminoMarket } from '../classes';\nimport {\n PublicKeyMap,\n buildAndSendTxnWithLogs,\n buildVersionedTransaction,\n referrerStatePda,\n shortUrlPda,\n} from '../utils';\nimport {\n getDeleteReferrerStateAndShortUrlIxns,\n getInitAllReferrerTokenStateIxns,\n getInitReferrerStateAndShortUrlIxns,\n} from './instructions';\nimport { PROGRAM_ID, UserMetadata, ReferrerState, ShortUrl } from '../lib';\nimport Decimal from 'decimal.js';\n\n/**\n * Initialize all referrer token states for a given referrer\n * @param referrer\n * @param kaminoMarket\n */\nexport const initAllReferrerTokenStates = async ({\n referrer,\n kaminoMarket,\n}: {\n referrer: Keypair;\n kaminoMarket: KaminoMarket;\n}) => {\n const ixns = await getInitAllReferrerTokenStateIxns({ referrer: referrer.publicKey, kaminoMarket });\n\n const tx = await buildVersionedTransaction(kaminoMarket.getConnection(), referrer.publicKey, ixns);\n\n console.log('Init Referral Token States');\n\n return await buildAndSendTxnWithLogs(kaminoMarket.getConnection(), tx, referrer, [referrer]);\n};\n\n/**\n * Initialize referrer state and short url\n * @param connection\n * @param referrer\n * @param shortUrl\n */\nexport const createReferrerStateAndShortUrl = async ({\n connection,\n referrer,\n shortUrl,\n programId = PROGRAM_ID,\n}: {\n connection: Connection;\n referrer: Keypair;\n shortUrl: string;\n programId?: PublicKey;\n}) => {\n const ixn = getInitReferrerStateAndShortUrlIxns({ referrer: referrer.publicKey, shortUrl, programId });\n\n const tx = await buildVersionedTransaction(connection, referrer.publicKey, [ixn]);\n\n console.log('Init ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + shortUrl);\n\n return await buildAndSendTxnWithLogs(connection, tx, referrer, [referrer]);\n};\n\n/**\n * Initialize referrer state and short url\n * @param connection\n * @param referrer\n * @param newShortUrl\n */\nexport const updateReferrerStateAndShortUrl = async ({\n connection,\n referrer,\n newShortUrl,\n programId = PROGRAM_ID,\n}: {\n connection: Connection;\n referrer: Keypair;\n newShortUrl: string;\n programId?: PublicKey;\n}) => {\n const deleteIxn = await getDeleteReferrerStateAndShortUrlIxns({\n referrer: referrer.publicKey,\n connection,\n programId,\n });\n\n const initIxn = getInitReferrerStateAndShortUrlIxns({\n referrer: referrer.publicKey,\n shortUrl: newShortUrl,\n programId,\n });\n\n const tx = await buildVersionedTransaction(connection, referrer.publicKey, [deleteIxn, initIxn]);\n\n console.log('Update ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + newShortUrl);\n\n return await buildAndSendTxnWithLogs(connection, tx, referrer, [referrer]);\n};\n\n/**\n * Check if short URL available - also checks if short URL is valid (ascii-alphanumeric plus '_' '-', max 32 chars)\n * @param connection\n * @param shortUrl\n * @param programId\n */\nexport async function isShortUrlAvailable(\n connection: Connection,\n shortUrl: string,\n programId: PublicKey = PROGRAM_ID\n): Promise<boolean> {\n if (shortUrl.length > 32) {\n return false;\n }\n\n if (!/^[a-zA-Z0-9-_]+$/.test(shortUrl)) {\n return false;\n }\n\n const [shortUrlAddress] = shortUrlPda(shortUrl, programId);\n const info = await connection.getAccountInfo(shortUrlAddress);\n return info === null;\n}\n\n/**\n * Get referrer short URL address and shortUrl\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getReferrerShortUrl(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<[PublicKey | null, string | null]> {\n const [referrerStateAddress] = referrerStatePda(referrer, programId);\n const referrerState = await ReferrerState.fetch(connection, referrerStateAddress, programId);\n const shortUrlState = await ShortUrl.fetch(connection, referrerState!.shortUrl, programId);\n const shortUrlAddress = referrerState ? referrerState.shortUrl : null;\n const shortUrl = shortUrlState ? shortUrlState.shortUrl : null;\n return [shortUrlAddress, shortUrl];\n}\n\n/**\n * Get referrer for a given Short URL\n * @param connection\n * @param shortUrl\n * @param programId\n */\nexport async function getReferrerForShortUrl(\n connection: Connection,\n shortUrl: string,\n programId: PublicKey = PROGRAM_ID\n): Promise<PublicKey> {\n const [shortUrlAddress] = shortUrlPda(shortUrl, programId);\n const shortUrlState = await ShortUrl.fetch(connection, shortUrlAddress, programId);\n return shortUrlState!.referrer;\n}\n\n/**\n * Get referrer all UserMetadata user accounts linked to a given referrer\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getUserMetadatasByReferrer(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<UserMetadata[]> {\n const userMetadatas = await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: UserMetadata.layout.span + 8,\n },\n {\n memcmp: {\n offset: 8,\n bytes: referrer.toBase58(),\n },\n },\n ],\n });\n\n return userMetadatas.map((userMetadata) => {\n if (userMetadata.account === null) {\n throw new Error('Invalid account');\n }\n if (!userMetadata.account.owner.equals(programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const userMetadataAccount = UserMetadata.decode(userMetadata.account.data);\n\n if (!userMetadataAccount) {\n throw Error('Could not parse obligation.');\n }\n\n return userMetadataAccount;\n });\n}\n\n/**\n * Get referrer all UserMetadata user accounts\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getAllUserMetadatas(\n connection: Connection,\n programId: PublicKey = PROGRAM_ID\n): Promise<UserMetadata[]> {\n const userMetadatas = await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: UserMetadata.layout.span + 8,\n },\n ],\n });\n\n return userMetadatas.map((userMetadata) => {\n if (userMetadata.account === null) {\n throw new Error('Invalid account');\n }\n if (!userMetadata.account.owner.equals(programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const userMetadataAccount = UserMetadata.decode(userMetadata.account.data);\n\n if (!userMetadataAccount) {\n throw Error('Could not parse obligation.');\n }\n\n return userMetadataAccount;\n });\n}\n\n/**\n * Get referrer all UserMetadata user accounts linked to a given referrer\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getTotalUsersReferred(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<number> {\n const userMetadatas = await getUserMetadatasByReferrer(connection, referrer, programId);\n return userMetadatas.length;\n}\n\nexport type ReferralRank = {\n referrer: PublicKey;\n totalUsersReferred: number;\n totalEarningsUsd: Decimal;\n};\n\n/**\n * Get ReferralRank array of all referrers ordered by how much they've earned in USD\n * @param connection\n * @param kaminoMarket\n */\nexport async function getReferralsRanking(connection: Connection, kaminoMarket: KaminoMarket): Promise<ReferralRank[]> {\n const referrersUsersReferred = new PublicKeyMap<PublicKey, number>();\n\n // counting users referred for each referrer\n const userMetadatas = await getAllUserMetadatas(connection, kaminoMarket.programId);\n for (const userMetadata of userMetadatas) {\n const referrer = userMetadata.referrer;\n const usersReferred = referrersUsersReferred.get(referrer);\n if (usersReferred) {\n referrersUsersReferred.set(referrer, usersReferred + 1);\n } else {\n referrersUsersReferred.set(referrer, 1);\n }\n }\n\n const referralsRankArray: ReferralRank[] = [];\n\n for (const referrer of referrersUsersReferred.keys()) {\n const referrerTokenStates = await kaminoMarket.getAllReferrerFeesCumulative(referrer);\n let totalEarningsUsd = new Decimal(0);\n // calculating earnings for each referrer\n for (const reserve of kaminoMarket.reserves.values()) {\n totalEarningsUsd = totalEarningsUsd.add(\n referrerTokenStates.get(reserve.getLiquidityMint())!.mul(reserve.getOracleMarketPrice())\n );\n }\n\n referralsRankArray.push({\n referrer: new PublicKey(referrer),\n totalUsersReferred: referrersUsersReferred.get(referrer)!,\n totalEarningsUsd: totalEarningsUsd,\n });\n }\n\n referralsRankArray.sort((a, b) => {\n return b.totalEarningsUsd.comparedTo(a.totalEarningsUsd);\n });\n\n return referralsRankArray;\n}\n\n/**\n * Get ReferralRank array of all referrers ordered by how much they've earned in USD\n * @param connection\n * @param user\n * @param programId\n */\nexport async function getUserReferralRanking(connection: Connection, user: PublicKey, kaminoMarket: KaminoMarket) {\n const referralsRanking = await getReferralsRanking(connection, kaminoMarket);\n\n for (let index = 0; index < referralsRanking.length; index++) {\n if (user.equals(referralsRanking[index].referrer)) {\n return index + 1;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"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"}