@kamino-finance/klend-sdk 7.3.5-beta.0 → 7.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2307) hide show
  1. package/dist/@codegen/jupiter_perps/accounts/Custody.d.ts +57 -0
  2. package/dist/@codegen/jupiter_perps/accounts/Custody.d.ts.map +1 -0
  3. package/dist/@codegen/jupiter_perps/accounts/Custody.js +176 -0
  4. package/dist/@codegen/jupiter_perps/accounts/Custody.js.map +1 -0
  5. package/dist/@codegen/jupiter_perps/accounts/Perpetuals.d.ts +36 -0
  6. package/dist/@codegen/jupiter_perps/accounts/Perpetuals.d.ts.map +1 -0
  7. package/dist/@codegen/jupiter_perps/accounts/Perpetuals.js +132 -0
  8. package/dist/@codegen/jupiter_perps/accounts/Perpetuals.js.map +1 -0
  9. package/dist/@codegen/jupiter_perps/accounts/Pool.d.ts +48 -0
  10. package/dist/@codegen/jupiter_perps/accounts/Pool.d.ts.map +1 -0
  11. package/dist/@codegen/jupiter_perps/accounts/Pool.js +156 -0
  12. package/dist/@codegen/jupiter_perps/accounts/Pool.js.map +1 -0
  13. package/dist/@codegen/jupiter_perps/accounts/Position.d.ts +60 -0
  14. package/dist/@codegen/jupiter_perps/accounts/Position.d.ts.map +1 -0
  15. package/dist/@codegen/jupiter_perps/accounts/Position.js +180 -0
  16. package/dist/@codegen/jupiter_perps/accounts/Position.js.map +1 -0
  17. package/dist/@codegen/jupiter_perps/accounts/PositionRequest.d.ts +84 -0
  18. package/dist/@codegen/jupiter_perps/accounts/PositionRequest.d.ts.map +1 -0
  19. package/dist/@codegen/jupiter_perps/accounts/PositionRequest.js +228 -0
  20. package/dist/@codegen/jupiter_perps/accounts/PositionRequest.js.map +1 -0
  21. package/dist/@codegen/jupiter_perps/accounts/TestOracle.d.ts +29 -0
  22. package/dist/@codegen/jupiter_perps/accounts/TestOracle.d.ts.map +1 -0
  23. package/dist/@codegen/jupiter_perps/accounts/TestOracle.js +118 -0
  24. package/dist/@codegen/jupiter_perps/accounts/TestOracle.js.map +1 -0
  25. package/dist/@codegen/jupiter_perps/accounts/index.d.ts +13 -0
  26. package/dist/@codegen/jupiter_perps/accounts/index.d.ts.map +1 -0
  27. package/dist/@codegen/jupiter_perps/accounts/index.js +16 -0
  28. package/dist/@codegen/jupiter_perps/accounts/index.js.map +1 -0
  29. package/dist/@codegen/jupiter_perps/errors/anchor.d.ts +435 -0
  30. package/dist/@codegen/jupiter_perps/errors/anchor.d.ts.map +1 -0
  31. package/dist/@codegen/jupiter_perps/errors/anchor.js +767 -0
  32. package/dist/@codegen/jupiter_perps/errors/anchor.js.map +1 -0
  33. package/dist/@codegen/jupiter_perps/errors/custom.d.ts +339 -0
  34. package/dist/@codegen/jupiter_perps/errors/custom.d.ts.map +1 -0
  35. package/dist/@codegen/jupiter_perps/errors/custom.js +598 -0
  36. package/dist/@codegen/jupiter_perps/errors/custom.js.map +1 -0
  37. package/dist/@codegen/jupiter_perps/errors/index.d.ts +6 -0
  38. package/dist/@codegen/jupiter_perps/errors/index.d.ts.map +1 -0
  39. package/dist/@codegen/jupiter_perps/errors/index.js +86 -0
  40. package/dist/@codegen/jupiter_perps/errors/index.js.map +1 -0
  41. package/dist/@codegen/jupiter_perps/instructions/addCustody.d.ts +21 -0
  42. package/dist/@codegen/jupiter_perps/instructions/addCustody.d.ts.map +1 -0
  43. package/dist/@codegen/jupiter_perps/instructions/addCustody.js +67 -0
  44. package/dist/@codegen/jupiter_perps/instructions/addCustody.js.map +1 -0
  45. package/dist/@codegen/jupiter_perps/instructions/addLiquidity.d.ts +24 -0
  46. package/dist/@codegen/jupiter_perps/instructions/addLiquidity.d.ts.map +1 -0
  47. package/dist/@codegen/jupiter_perps/instructions/addLiquidity.js +70 -0
  48. package/dist/@codegen/jupiter_perps/instructions/addLiquidity.js.map +1 -0
  49. package/dist/@codegen/jupiter_perps/instructions/addPool.d.ts +19 -0
  50. package/dist/@codegen/jupiter_perps/instructions/addPool.d.ts.map +1 -0
  51. package/dist/@codegen/jupiter_perps/instructions/addPool.js +65 -0
  52. package/dist/@codegen/jupiter_perps/instructions/addPool.js.map +1 -0
  53. package/dist/@codegen/jupiter_perps/instructions/closePositionRequest.d.ts +21 -0
  54. package/dist/@codegen/jupiter_perps/instructions/closePositionRequest.d.ts.map +1 -0
  55. package/dist/@codegen/jupiter_perps/instructions/closePositionRequest.js +77 -0
  56. package/dist/@codegen/jupiter_perps/instructions/closePositionRequest.js.map +1 -0
  57. package/dist/@codegen/jupiter_perps/instructions/createDecreasePositionRequest.d.ts +28 -0
  58. package/dist/@codegen/jupiter_perps/instructions/createDecreasePositionRequest.d.ts.map +1 -0
  59. package/dist/@codegen/jupiter_perps/instructions/createDecreasePositionRequest.js +78 -0
  60. package/dist/@codegen/jupiter_perps/instructions/createDecreasePositionRequest.js.map +1 -0
  61. package/dist/@codegen/jupiter_perps/instructions/createIncreasePositionRequest.d.ts +28 -0
  62. package/dist/@codegen/jupiter_perps/instructions/createIncreasePositionRequest.d.ts.map +1 -0
  63. package/dist/@codegen/jupiter_perps/instructions/createIncreasePositionRequest.js +78 -0
  64. package/dist/@codegen/jupiter_perps/instructions/createIncreasePositionRequest.js.map +1 -0
  65. package/dist/@codegen/jupiter_perps/instructions/decreasePosition.d.ts +29 -0
  66. package/dist/@codegen/jupiter_perps/instructions/decreasePosition.d.ts.map +1 -0
  67. package/dist/@codegen/jupiter_perps/instructions/decreasePosition.js +79 -0
  68. package/dist/@codegen/jupiter_perps/instructions/decreasePosition.js.map +1 -0
  69. package/dist/@codegen/jupiter_perps/instructions/decreasePositionPostSwap.d.ts +16 -0
  70. package/dist/@codegen/jupiter_perps/instructions/decreasePositionPostSwap.d.ts.map +1 -0
  71. package/dist/@codegen/jupiter_perps/instructions/decreasePositionPostSwap.js +62 -0
  72. package/dist/@codegen/jupiter_perps/instructions/decreasePositionPostSwap.js.map +1 -0
  73. package/dist/@codegen/jupiter_perps/instructions/getAddLiquidityAmountAndFee.d.ts +16 -0
  74. package/dist/@codegen/jupiter_perps/instructions/getAddLiquidityAmountAndFee.d.ts.map +1 -0
  75. package/dist/@codegen/jupiter_perps/instructions/getAddLiquidityAmountAndFee.js +64 -0
  76. package/dist/@codegen/jupiter_perps/instructions/getAddLiquidityAmountAndFee.js.map +1 -0
  77. package/dist/@codegen/jupiter_perps/instructions/getDecreasePosition.d.ts +18 -0
  78. package/dist/@codegen/jupiter_perps/instructions/getDecreasePosition.d.ts.map +1 -0
  79. package/dist/@codegen/jupiter_perps/instructions/getDecreasePosition.js +64 -0
  80. package/dist/@codegen/jupiter_perps/instructions/getDecreasePosition.js.map +1 -0
  81. package/dist/@codegen/jupiter_perps/instructions/getExactOutSwapAmountAndFees.d.ts +17 -0
  82. package/dist/@codegen/jupiter_perps/instructions/getExactOutSwapAmountAndFees.d.ts.map +1 -0
  83. package/dist/@codegen/jupiter_perps/instructions/getExactOutSwapAmountAndFees.js +63 -0
  84. package/dist/@codegen/jupiter_perps/instructions/getExactOutSwapAmountAndFees.js.map +1 -0
  85. package/dist/@codegen/jupiter_perps/instructions/getIncreasePosition.d.ts +18 -0
  86. package/dist/@codegen/jupiter_perps/instructions/getIncreasePosition.d.ts.map +1 -0
  87. package/dist/@codegen/jupiter_perps/instructions/getIncreasePosition.js +68 -0
  88. package/dist/@codegen/jupiter_perps/instructions/getIncreasePosition.js.map +1 -0
  89. package/dist/@codegen/jupiter_perps/instructions/getLiquidationState.d.ts +17 -0
  90. package/dist/@codegen/jupiter_perps/instructions/getLiquidationState.d.ts.map +1 -0
  91. package/dist/@codegen/jupiter_perps/instructions/getLiquidationState.js +63 -0
  92. package/dist/@codegen/jupiter_perps/instructions/getLiquidationState.js.map +1 -0
  93. package/dist/@codegen/jupiter_perps/instructions/getOraclePrice.d.ts +10 -0
  94. package/dist/@codegen/jupiter_perps/instructions/getOraclePrice.d.ts.map +1 -0
  95. package/dist/@codegen/jupiter_perps/instructions/getOraclePrice.js +19 -0
  96. package/dist/@codegen/jupiter_perps/instructions/getOraclePrice.js.map +1 -0
  97. package/dist/@codegen/jupiter_perps/instructions/getPnl.d.ts +17 -0
  98. package/dist/@codegen/jupiter_perps/instructions/getPnl.d.ts.map +1 -0
  99. package/dist/@codegen/jupiter_perps/instructions/getPnl.js +63 -0
  100. package/dist/@codegen/jupiter_perps/instructions/getPnl.js.map +1 -0
  101. package/dist/@codegen/jupiter_perps/instructions/getRemoveLiquidityAmountAndFee.d.ts +16 -0
  102. package/dist/@codegen/jupiter_perps/instructions/getRemoveLiquidityAmountAndFee.d.ts.map +1 -0
  103. package/dist/@codegen/jupiter_perps/instructions/getRemoveLiquidityAmountAndFee.js +62 -0
  104. package/dist/@codegen/jupiter_perps/instructions/getRemoveLiquidityAmountAndFee.js.map +1 -0
  105. package/dist/@codegen/jupiter_perps/instructions/getSwapAmountAndFees.d.ts +17 -0
  106. package/dist/@codegen/jupiter_perps/instructions/getSwapAmountAndFees.d.ts.map +1 -0
  107. package/dist/@codegen/jupiter_perps/instructions/getSwapAmountAndFees.js +63 -0
  108. package/dist/@codegen/jupiter_perps/instructions/getSwapAmountAndFees.js.map +1 -0
  109. package/dist/@codegen/jupiter_perps/instructions/increasePosition.d.ts +25 -0
  110. package/dist/@codegen/jupiter_perps/instructions/increasePosition.d.ts.map +1 -0
  111. package/dist/@codegen/jupiter_perps/instructions/increasePosition.js +71 -0
  112. package/dist/@codegen/jupiter_perps/instructions/increasePosition.js.map +1 -0
  113. package/dist/@codegen/jupiter_perps/instructions/increasePositionPreSwap.d.ts +22 -0
  114. package/dist/@codegen/jupiter_perps/instructions/increasePositionPreSwap.d.ts.map +1 -0
  115. package/dist/@codegen/jupiter_perps/instructions/increasePositionPreSwap.js +68 -0
  116. package/dist/@codegen/jupiter_perps/instructions/increasePositionPreSwap.js.map +1 -0
  117. package/dist/@codegen/jupiter_perps/instructions/index.d.ts +71 -0
  118. package/dist/@codegen/jupiter_perps/instructions/index.d.ts.map +1 -0
  119. package/dist/@codegen/jupiter_perps/instructions/index.js +74 -0
  120. package/dist/@codegen/jupiter_perps/instructions/index.js.map +1 -0
  121. package/dist/@codegen/jupiter_perps/instructions/init.d.ts +19 -0
  122. package/dist/@codegen/jupiter_perps/instructions/init.d.ts.map +1 -0
  123. package/dist/@codegen/jupiter_perps/instructions/init.js +69 -0
  124. package/dist/@codegen/jupiter_perps/instructions/init.js.map +1 -0
  125. package/dist/@codegen/jupiter_perps/instructions/liquidatePosition.d.ts +26 -0
  126. package/dist/@codegen/jupiter_perps/instructions/liquidatePosition.d.ts.map +1 -0
  127. package/dist/@codegen/jupiter_perps/instructions/liquidatePosition.js +72 -0
  128. package/dist/@codegen/jupiter_perps/instructions/liquidatePosition.js.map +1 -0
  129. package/dist/@codegen/jupiter_perps/instructions/removeLiquidity.d.ts +24 -0
  130. package/dist/@codegen/jupiter_perps/instructions/removeLiquidity.d.ts.map +1 -0
  131. package/dist/@codegen/jupiter_perps/instructions/removeLiquidity.js +70 -0
  132. package/dist/@codegen/jupiter_perps/instructions/removeLiquidity.js.map +1 -0
  133. package/dist/@codegen/jupiter_perps/instructions/setCustodyConfig.d.ts +14 -0
  134. package/dist/@codegen/jupiter_perps/instructions/setCustodyConfig.d.ts.map +1 -0
  135. package/dist/@codegen/jupiter_perps/instructions/setCustodyConfig.js +60 -0
  136. package/dist/@codegen/jupiter_perps/instructions/setCustodyConfig.js.map +1 -0
  137. package/dist/@codegen/jupiter_perps/instructions/setCustodyGlobalLimit.d.ts +13 -0
  138. package/dist/@codegen/jupiter_perps/instructions/setCustodyGlobalLimit.d.ts.map +1 -0
  139. package/dist/@codegen/jupiter_perps/instructions/setCustodyGlobalLimit.js +59 -0
  140. package/dist/@codegen/jupiter_perps/instructions/setCustodyGlobalLimit.js.map +1 -0
  141. package/dist/@codegen/jupiter_perps/instructions/setPerpetualsConfig.d.ts +13 -0
  142. package/dist/@codegen/jupiter_perps/instructions/setPerpetualsConfig.d.ts.map +1 -0
  143. package/dist/@codegen/jupiter_perps/instructions/setPerpetualsConfig.js +59 -0
  144. package/dist/@codegen/jupiter_perps/instructions/setPerpetualsConfig.js.map +1 -0
  145. package/dist/@codegen/jupiter_perps/instructions/setPoolConfig.d.ts +14 -0
  146. package/dist/@codegen/jupiter_perps/instructions/setPoolConfig.d.ts.map +1 -0
  147. package/dist/@codegen/jupiter_perps/instructions/setPoolConfig.js +60 -0
  148. package/dist/@codegen/jupiter_perps/instructions/setPoolConfig.js.map +1 -0
  149. package/dist/@codegen/jupiter_perps/instructions/setTestOraclePrice.d.ts +17 -0
  150. package/dist/@codegen/jupiter_perps/instructions/setTestOraclePrice.d.ts.map +1 -0
  151. package/dist/@codegen/jupiter_perps/instructions/setTestOraclePrice.js +63 -0
  152. package/dist/@codegen/jupiter_perps/instructions/setTestOraclePrice.js.map +1 -0
  153. package/dist/@codegen/jupiter_perps/instructions/setTestTime.d.ts +13 -0
  154. package/dist/@codegen/jupiter_perps/instructions/setTestTime.d.ts.map +1 -0
  155. package/dist/@codegen/jupiter_perps/instructions/setTestTime.js +61 -0
  156. package/dist/@codegen/jupiter_perps/instructions/setTestTime.js.map +1 -0
  157. package/dist/@codegen/jupiter_perps/instructions/swap.d.ts +26 -0
  158. package/dist/@codegen/jupiter_perps/instructions/swap.d.ts.map +1 -0
  159. package/dist/@codegen/jupiter_perps/instructions/swap.js +74 -0
  160. package/dist/@codegen/jupiter_perps/instructions/swap.js.map +1 -0
  161. package/dist/@codegen/jupiter_perps/instructions/swapExactOut.d.ts +26 -0
  162. package/dist/@codegen/jupiter_perps/instructions/swapExactOut.d.ts.map +1 -0
  163. package/dist/@codegen/jupiter_perps/instructions/swapExactOut.js +72 -0
  164. package/dist/@codegen/jupiter_perps/instructions/swapExactOut.js.map +1 -0
  165. package/dist/@codegen/jupiter_perps/instructions/testInit.d.ts +17 -0
  166. package/dist/@codegen/jupiter_perps/instructions/testInit.d.ts.map +1 -0
  167. package/dist/@codegen/jupiter_perps/instructions/testInit.js +67 -0
  168. package/dist/@codegen/jupiter_perps/instructions/testInit.js.map +1 -0
  169. package/dist/@codegen/jupiter_perps/instructions/transferAdmin.d.ts +14 -0
  170. package/dist/@codegen/jupiter_perps/instructions/transferAdmin.d.ts.map +1 -0
  171. package/dist/@codegen/jupiter_perps/instructions/transferAdmin.js +60 -0
  172. package/dist/@codegen/jupiter_perps/instructions/transferAdmin.js.map +1 -0
  173. package/dist/@codegen/jupiter_perps/instructions/updateDecreasePositionRequest.d.ts +18 -0
  174. package/dist/@codegen/jupiter_perps/instructions/updateDecreasePositionRequest.d.ts.map +1 -0
  175. package/dist/@codegen/jupiter_perps/instructions/updateDecreasePositionRequest.js +64 -0
  176. package/dist/@codegen/jupiter_perps/instructions/updateDecreasePositionRequest.js.map +1 -0
  177. package/dist/@codegen/jupiter_perps/instructions/updateIncreasePositionRequest.d.ts +18 -0
  178. package/dist/@codegen/jupiter_perps/instructions/updateIncreasePositionRequest.d.ts.map +1 -0
  179. package/dist/@codegen/jupiter_perps/instructions/updateIncreasePositionRequest.js +64 -0
  180. package/dist/@codegen/jupiter_perps/instructions/updateIncreasePositionRequest.js.map +1 -0
  181. package/dist/@codegen/jupiter_perps/instructions/withdrawFees.d.ts +20 -0
  182. package/dist/@codegen/jupiter_perps/instructions/withdrawFees.d.ts.map +1 -0
  183. package/dist/@codegen/jupiter_perps/instructions/withdrawFees.js +68 -0
  184. package/dist/@codegen/jupiter_perps/instructions/withdrawFees.js.map +1 -0
  185. package/dist/@codegen/jupiter_perps/programId.d.ts +4 -0
  186. package/dist/@codegen/jupiter_perps/programId.d.ts.map +1 -0
  187. package/dist/@codegen/jupiter_perps/programId.js +9 -0
  188. package/dist/@codegen/jupiter_perps/programId.js.map +1 -0
  189. package/dist/@codegen/jupiter_perps/types/AddCustodyParams.d.ts +101 -0
  190. package/dist/@codegen/jupiter_perps/types/AddCustodyParams.d.ts.map +1 -0
  191. package/dist/@codegen/jupiter_perps/types/AddCustodyParams.js +114 -0
  192. package/dist/@codegen/jupiter_perps/types/AddCustodyParams.js.map +1 -0
  193. package/dist/@codegen/jupiter_perps/types/AddLiquidityParams.d.ts +33 -0
  194. package/dist/@codegen/jupiter_perps/types/AddLiquidityParams.d.ts.map +1 -0
  195. package/dist/@codegen/jupiter_perps/types/AddLiquidityParams.js +92 -0
  196. package/dist/@codegen/jupiter_perps/types/AddLiquidityParams.js.map +1 -0
  197. package/dist/@codegen/jupiter_perps/types/AddPoolParams.d.ts +66 -0
  198. package/dist/@codegen/jupiter_perps/types/AddPoolParams.d.ts.map +1 -0
  199. package/dist/@codegen/jupiter_perps/types/AddPoolParams.js +100 -0
  200. package/dist/@codegen/jupiter_perps/types/AddPoolParams.js.map +1 -0
  201. package/dist/@codegen/jupiter_perps/types/AmountAndFee.d.ts +33 -0
  202. package/dist/@codegen/jupiter_perps/types/AmountAndFee.d.ts.map +1 -0
  203. package/dist/@codegen/jupiter_perps/types/AmountAndFee.js +88 -0
  204. package/dist/@codegen/jupiter_perps/types/AmountAndFee.js.map +1 -0
  205. package/dist/@codegen/jupiter_perps/types/Assets.d.ts +48 -0
  206. package/dist/@codegen/jupiter_perps/types/Assets.d.ts.map +1 -0
  207. package/dist/@codegen/jupiter_perps/types/Assets.js +113 -0
  208. package/dist/@codegen/jupiter_perps/types/Assets.js.map +1 -0
  209. package/dist/@codegen/jupiter_perps/types/ClosePositionRequestParams.d.ts +15 -0
  210. package/dist/@codegen/jupiter_perps/types/ClosePositionRequestParams.d.ts.map +1 -0
  211. package/dist/@codegen/jupiter_perps/types/ClosePositionRequestParams.js +61 -0
  212. package/dist/@codegen/jupiter_perps/types/ClosePositionRequestParams.js.map +1 -0
  213. package/dist/@codegen/jupiter_perps/types/CreateDecreasePositionRequestParams.d.ts +71 -0
  214. package/dist/@codegen/jupiter_perps/types/CreateDecreasePositionRequestParams.d.ts.map +1 -0
  215. package/dist/@codegen/jupiter_perps/types/CreateDecreasePositionRequestParams.js +135 -0
  216. package/dist/@codegen/jupiter_perps/types/CreateDecreasePositionRequestParams.js.map +1 -0
  217. package/dist/@codegen/jupiter_perps/types/CreateIncreasePositionRequestParams.d.ts +83 -0
  218. package/dist/@codegen/jupiter_perps/types/CreateIncreasePositionRequestParams.d.ts.map +1 -0
  219. package/dist/@codegen/jupiter_perps/types/CreateIncreasePositionRequestParams.js +135 -0
  220. package/dist/@codegen/jupiter_perps/types/CreateIncreasePositionRequestParams.js.map +1 -0
  221. package/dist/@codegen/jupiter_perps/types/DecreasePositionInfo.d.ts +58 -0
  222. package/dist/@codegen/jupiter_perps/types/DecreasePositionInfo.d.ts.map +1 -0
  223. package/dist/@codegen/jupiter_perps/types/DecreasePositionInfo.js +127 -0
  224. package/dist/@codegen/jupiter_perps/types/DecreasePositionInfo.js.map +1 -0
  225. package/dist/@codegen/jupiter_perps/types/DecreasePositionParams.d.ts +15 -0
  226. package/dist/@codegen/jupiter_perps/types/DecreasePositionParams.d.ts.map +1 -0
  227. package/dist/@codegen/jupiter_perps/types/DecreasePositionParams.js +61 -0
  228. package/dist/@codegen/jupiter_perps/types/DecreasePositionParams.js.map +1 -0
  229. package/dist/@codegen/jupiter_perps/types/DecreasePositionPostSwapParams.d.ts +15 -0
  230. package/dist/@codegen/jupiter_perps/types/DecreasePositionPostSwapParams.d.ts.map +1 -0
  231. package/dist/@codegen/jupiter_perps/types/DecreasePositionPostSwapParams.js +61 -0
  232. package/dist/@codegen/jupiter_perps/types/DecreasePositionPostSwapParams.js.map +1 -0
  233. package/dist/@codegen/jupiter_perps/types/Fees.d.ts +63 -0
  234. package/dist/@codegen/jupiter_perps/types/Fees.d.ts.map +1 -0
  235. package/dist/@codegen/jupiter_perps/types/Fees.js +134 -0
  236. package/dist/@codegen/jupiter_perps/types/Fees.js.map +1 -0
  237. package/dist/@codegen/jupiter_perps/types/FundingRateState.d.ts +33 -0
  238. package/dist/@codegen/jupiter_perps/types/FundingRateState.d.ts.map +1 -0
  239. package/dist/@codegen/jupiter_perps/types/FundingRateState.js +92 -0
  240. package/dist/@codegen/jupiter_perps/types/FundingRateState.js.map +1 -0
  241. package/dist/@codegen/jupiter_perps/types/GetAddLiquidityAmountAndFeeParams.d.ts +23 -0
  242. package/dist/@codegen/jupiter_perps/types/GetAddLiquidityAmountAndFeeParams.d.ts.map +1 -0
  243. package/dist/@codegen/jupiter_perps/types/GetAddLiquidityAmountAndFeeParams.js +76 -0
  244. package/dist/@codegen/jupiter_perps/types/GetAddLiquidityAmountAndFeeParams.js.map +1 -0
  245. package/dist/@codegen/jupiter_perps/types/GetDecreasePositionParams.d.ts +28 -0
  246. package/dist/@codegen/jupiter_perps/types/GetDecreasePositionParams.d.ts.map +1 -0
  247. package/dist/@codegen/jupiter_perps/types/GetDecreasePositionParams.js +82 -0
  248. package/dist/@codegen/jupiter_perps/types/GetDecreasePositionParams.js.map +1 -0
  249. package/dist/@codegen/jupiter_perps/types/GetExactOutSwapAmountAndFeesParams.d.ts +23 -0
  250. package/dist/@codegen/jupiter_perps/types/GetExactOutSwapAmountAndFeesParams.d.ts.map +1 -0
  251. package/dist/@codegen/jupiter_perps/types/GetExactOutSwapAmountAndFeesParams.js +76 -0
  252. package/dist/@codegen/jupiter_perps/types/GetExactOutSwapAmountAndFeesParams.js.map +1 -0
  253. package/dist/@codegen/jupiter_perps/types/GetIncreasePositionParams.d.ts +45 -0
  254. package/dist/@codegen/jupiter_perps/types/GetIncreasePositionParams.d.ts.map +1 -0
  255. package/dist/@codegen/jupiter_perps/types/GetIncreasePositionParams.js +93 -0
  256. package/dist/@codegen/jupiter_perps/types/GetIncreasePositionParams.js.map +1 -0
  257. package/dist/@codegen/jupiter_perps/types/GetLiquidationStateParams.d.ts +15 -0
  258. package/dist/@codegen/jupiter_perps/types/GetLiquidationStateParams.d.ts.map +1 -0
  259. package/dist/@codegen/jupiter_perps/types/GetLiquidationStateParams.js +61 -0
  260. package/dist/@codegen/jupiter_perps/types/GetLiquidationStateParams.js.map +1 -0
  261. package/dist/@codegen/jupiter_perps/types/GetPnlAndFeeParams.d.ts +15 -0
  262. package/dist/@codegen/jupiter_perps/types/GetPnlAndFeeParams.d.ts.map +1 -0
  263. package/dist/@codegen/jupiter_perps/types/GetPnlAndFeeParams.js +61 -0
  264. package/dist/@codegen/jupiter_perps/types/GetPnlAndFeeParams.js.map +1 -0
  265. package/dist/@codegen/jupiter_perps/types/GetRemoveLiquidityAmountAndFeeParams.d.ts +23 -0
  266. package/dist/@codegen/jupiter_perps/types/GetRemoveLiquidityAmountAndFeeParams.d.ts.map +1 -0
  267. package/dist/@codegen/jupiter_perps/types/GetRemoveLiquidityAmountAndFeeParams.js +76 -0
  268. package/dist/@codegen/jupiter_perps/types/GetRemoveLiquidityAmountAndFeeParams.js.map +1 -0
  269. package/dist/@codegen/jupiter_perps/types/GetSwapAmountAndFeesParams.d.ts +23 -0
  270. package/dist/@codegen/jupiter_perps/types/GetSwapAmountAndFeesParams.d.ts.map +1 -0
  271. package/dist/@codegen/jupiter_perps/types/GetSwapAmountAndFeesParams.js +76 -0
  272. package/dist/@codegen/jupiter_perps/types/GetSwapAmountAndFeesParams.js.map +1 -0
  273. package/dist/@codegen/jupiter_perps/types/IncreasePositionInfo.d.ts +38 -0
  274. package/dist/@codegen/jupiter_perps/types/IncreasePositionInfo.d.ts.map +1 -0
  275. package/dist/@codegen/jupiter_perps/types/IncreasePositionInfo.js +99 -0
  276. package/dist/@codegen/jupiter_perps/types/IncreasePositionInfo.js.map +1 -0
  277. package/dist/@codegen/jupiter_perps/types/IncreasePositionParams.d.ts +15 -0
  278. package/dist/@codegen/jupiter_perps/types/IncreasePositionParams.d.ts.map +1 -0
  279. package/dist/@codegen/jupiter_perps/types/IncreasePositionParams.js +61 -0
  280. package/dist/@codegen/jupiter_perps/types/IncreasePositionParams.js.map +1 -0
  281. package/dist/@codegen/jupiter_perps/types/IncreasePositionPreSwapParams.d.ts +15 -0
  282. package/dist/@codegen/jupiter_perps/types/IncreasePositionPreSwapParams.d.ts.map +1 -0
  283. package/dist/@codegen/jupiter_perps/types/IncreasePositionPreSwapParams.js +61 -0
  284. package/dist/@codegen/jupiter_perps/types/IncreasePositionPreSwapParams.js.map +1 -0
  285. package/dist/@codegen/jupiter_perps/types/InitParams.d.ts +52 -0
  286. package/dist/@codegen/jupiter_perps/types/InitParams.d.ts.map +1 -0
  287. package/dist/@codegen/jupiter_perps/types/InitParams.js +116 -0
  288. package/dist/@codegen/jupiter_perps/types/InitParams.js.map +1 -0
  289. package/dist/@codegen/jupiter_perps/types/Limit.d.ts +33 -0
  290. package/dist/@codegen/jupiter_perps/types/Limit.d.ts.map +1 -0
  291. package/dist/@codegen/jupiter_perps/types/Limit.js +92 -0
  292. package/dist/@codegen/jupiter_perps/types/Limit.js.map +1 -0
  293. package/dist/@codegen/jupiter_perps/types/LiquidatePositionParams.d.ts +15 -0
  294. package/dist/@codegen/jupiter_perps/types/LiquidatePositionParams.d.ts.map +1 -0
  295. package/dist/@codegen/jupiter_perps/types/LiquidatePositionParams.js +61 -0
  296. package/dist/@codegen/jupiter_perps/types/LiquidatePositionParams.js.map +1 -0
  297. package/dist/@codegen/jupiter_perps/types/OracleParams.d.ts +51 -0
  298. package/dist/@codegen/jupiter_perps/types/OracleParams.d.ts.map +1 -0
  299. package/dist/@codegen/jupiter_perps/types/OracleParams.js +102 -0
  300. package/dist/@codegen/jupiter_perps/types/OracleParams.js.map +1 -0
  301. package/dist/@codegen/jupiter_perps/types/OraclePrice.d.ts +28 -0
  302. package/dist/@codegen/jupiter_perps/types/OraclePrice.d.ts.map +1 -0
  303. package/dist/@codegen/jupiter_perps/types/OraclePrice.js +82 -0
  304. package/dist/@codegen/jupiter_perps/types/OraclePrice.js.map +1 -0
  305. package/dist/@codegen/jupiter_perps/types/OraclePriceInfo.d.ts +48 -0
  306. package/dist/@codegen/jupiter_perps/types/OraclePriceInfo.d.ts.map +1 -0
  307. package/dist/@codegen/jupiter_perps/types/OraclePriceInfo.js +113 -0
  308. package/dist/@codegen/jupiter_perps/types/OraclePriceInfo.js.map +1 -0
  309. package/dist/@codegen/jupiter_perps/types/OracleType.d.ts +45 -0
  310. package/dist/@codegen/jupiter_perps/types/OracleType.d.ts.map +1 -0
  311. package/dist/@codegen/jupiter_perps/types/OracleType.js +132 -0
  312. package/dist/@codegen/jupiter_perps/types/OracleType.js.map +1 -0
  313. package/dist/@codegen/jupiter_perps/types/Permissions.d.ts +52 -0
  314. package/dist/@codegen/jupiter_perps/types/Permissions.d.ts.map +1 -0
  315. package/dist/@codegen/jupiter_perps/types/Permissions.js +116 -0
  316. package/dist/@codegen/jupiter_perps/types/Permissions.js.map +1 -0
  317. package/dist/@codegen/jupiter_perps/types/PnlAndFee.d.ts +48 -0
  318. package/dist/@codegen/jupiter_perps/types/PnlAndFee.d.ts.map +1 -0
  319. package/dist/@codegen/jupiter_perps/types/PnlAndFee.js +113 -0
  320. package/dist/@codegen/jupiter_perps/types/PnlAndFee.js.map +1 -0
  321. package/dist/@codegen/jupiter_perps/types/PoolApr.d.ts +33 -0
  322. package/dist/@codegen/jupiter_perps/types/PoolApr.d.ts.map +1 -0
  323. package/dist/@codegen/jupiter_perps/types/PoolApr.js +92 -0
  324. package/dist/@codegen/jupiter_perps/types/PoolApr.js.map +1 -0
  325. package/dist/@codegen/jupiter_perps/types/PriceCalcMode.d.ts +45 -0
  326. package/dist/@codegen/jupiter_perps/types/PriceCalcMode.d.ts.map +1 -0
  327. package/dist/@codegen/jupiter_perps/types/PriceCalcMode.js +132 -0
  328. package/dist/@codegen/jupiter_perps/types/PriceCalcMode.js.map +1 -0
  329. package/dist/@codegen/jupiter_perps/types/PricingParams.d.ts +48 -0
  330. package/dist/@codegen/jupiter_perps/types/PricingParams.d.ts.map +1 -0
  331. package/dist/@codegen/jupiter_perps/types/PricingParams.js +113 -0
  332. package/dist/@codegen/jupiter_perps/types/PricingParams.js.map +1 -0
  333. package/dist/@codegen/jupiter_perps/types/RemoveLiquidityParams.d.ts +28 -0
  334. package/dist/@codegen/jupiter_perps/types/RemoveLiquidityParams.d.ts.map +1 -0
  335. package/dist/@codegen/jupiter_perps/types/RemoveLiquidityParams.js +82 -0
  336. package/dist/@codegen/jupiter_perps/types/RemoveLiquidityParams.js.map +1 -0
  337. package/dist/@codegen/jupiter_perps/types/RequestChange.d.ts +45 -0
  338. package/dist/@codegen/jupiter_perps/types/RequestChange.d.ts.map +1 -0
  339. package/dist/@codegen/jupiter_perps/types/RequestChange.js +132 -0
  340. package/dist/@codegen/jupiter_perps/types/RequestChange.js.map +1 -0
  341. package/dist/@codegen/jupiter_perps/types/RequestType.d.ts +32 -0
  342. package/dist/@codegen/jupiter_perps/types/RequestType.d.ts.map +1 -0
  343. package/dist/@codegen/jupiter_perps/types/RequestType.js +108 -0
  344. package/dist/@codegen/jupiter_perps/types/RequestType.js.map +1 -0
  345. package/dist/@codegen/jupiter_perps/types/SetCustodyConfigParams.d.ts +96 -0
  346. package/dist/@codegen/jupiter_perps/types/SetCustodyConfigParams.d.ts.map +1 -0
  347. package/dist/@codegen/jupiter_perps/types/SetCustodyConfigParams.js +107 -0
  348. package/dist/@codegen/jupiter_perps/types/SetCustodyConfigParams.js.map +1 -0
  349. package/dist/@codegen/jupiter_perps/types/SetCustodyGlobalLimitParams.d.ts +28 -0
  350. package/dist/@codegen/jupiter_perps/types/SetCustodyGlobalLimitParams.d.ts.map +1 -0
  351. package/dist/@codegen/jupiter_perps/types/SetCustodyGlobalLimitParams.js +82 -0
  352. package/dist/@codegen/jupiter_perps/types/SetCustodyGlobalLimitParams.js.map +1 -0
  353. package/dist/@codegen/jupiter_perps/types/SetPerpetualsConfigParams.d.ts +38 -0
  354. package/dist/@codegen/jupiter_perps/types/SetPerpetualsConfigParams.d.ts.map +1 -0
  355. package/dist/@codegen/jupiter_perps/types/SetPerpetualsConfigParams.js +73 -0
  356. package/dist/@codegen/jupiter_perps/types/SetPerpetualsConfigParams.js.map +1 -0
  357. package/dist/@codegen/jupiter_perps/types/SetPoolConfigParams.d.ts +61 -0
  358. package/dist/@codegen/jupiter_perps/types/SetPoolConfigParams.d.ts.map +1 -0
  359. package/dist/@codegen/jupiter_perps/types/SetPoolConfigParams.js +93 -0
  360. package/dist/@codegen/jupiter_perps/types/SetPoolConfigParams.js.map +1 -0
  361. package/dist/@codegen/jupiter_perps/types/SetTestOraclePriceParams.d.ts +38 -0
  362. package/dist/@codegen/jupiter_perps/types/SetTestOraclePriceParams.d.ts.map +1 -0
  363. package/dist/@codegen/jupiter_perps/types/SetTestOraclePriceParams.js +99 -0
  364. package/dist/@codegen/jupiter_perps/types/SetTestOraclePriceParams.js.map +1 -0
  365. package/dist/@codegen/jupiter_perps/types/SetTestTimeParams.d.ts +23 -0
  366. package/dist/@codegen/jupiter_perps/types/SetTestTimeParams.d.ts.map +1 -0
  367. package/dist/@codegen/jupiter_perps/types/SetTestTimeParams.js +76 -0
  368. package/dist/@codegen/jupiter_perps/types/SetTestTimeParams.js.map +1 -0
  369. package/dist/@codegen/jupiter_perps/types/Side.d.ts +45 -0
  370. package/dist/@codegen/jupiter_perps/types/Side.d.ts.map +1 -0
  371. package/dist/@codegen/jupiter_perps/types/Side.js +132 -0
  372. package/dist/@codegen/jupiter_perps/types/Side.js.map +1 -0
  373. package/dist/@codegen/jupiter_perps/types/SwapAmountAndFees.d.ts +38 -0
  374. package/dist/@codegen/jupiter_perps/types/SwapAmountAndFees.d.ts.map +1 -0
  375. package/dist/@codegen/jupiter_perps/types/SwapAmountAndFees.js +99 -0
  376. package/dist/@codegen/jupiter_perps/types/SwapAmountAndFees.js.map +1 -0
  377. package/dist/@codegen/jupiter_perps/types/SwapExactOutParams.d.ts +28 -0
  378. package/dist/@codegen/jupiter_perps/types/SwapExactOutParams.d.ts.map +1 -0
  379. package/dist/@codegen/jupiter_perps/types/SwapExactOutParams.js +82 -0
  380. package/dist/@codegen/jupiter_perps/types/SwapExactOutParams.js.map +1 -0
  381. package/dist/@codegen/jupiter_perps/types/SwapParams.d.ts +28 -0
  382. package/dist/@codegen/jupiter_perps/types/SwapParams.d.ts.map +1 -0
  383. package/dist/@codegen/jupiter_perps/types/SwapParams.js +82 -0
  384. package/dist/@codegen/jupiter_perps/types/SwapParams.js.map +1 -0
  385. package/dist/@codegen/jupiter_perps/types/TestInitParams.d.ts +52 -0
  386. package/dist/@codegen/jupiter_perps/types/TestInitParams.d.ts.map +1 -0
  387. package/dist/@codegen/jupiter_perps/types/TestInitParams.js +116 -0
  388. package/dist/@codegen/jupiter_perps/types/TestInitParams.js.map +1 -0
  389. package/dist/@codegen/jupiter_perps/types/TransferAdminParams.d.ts +15 -0
  390. package/dist/@codegen/jupiter_perps/types/TransferAdminParams.d.ts.map +1 -0
  391. package/dist/@codegen/jupiter_perps/types/TransferAdminParams.js +61 -0
  392. package/dist/@codegen/jupiter_perps/types/TransferAdminParams.js.map +1 -0
  393. package/dist/@codegen/jupiter_perps/types/UpdateDecreasePositionRequestParams.d.ts +28 -0
  394. package/dist/@codegen/jupiter_perps/types/UpdateDecreasePositionRequestParams.d.ts.map +1 -0
  395. package/dist/@codegen/jupiter_perps/types/UpdateDecreasePositionRequestParams.js +82 -0
  396. package/dist/@codegen/jupiter_perps/types/UpdateDecreasePositionRequestParams.js.map +1 -0
  397. package/dist/@codegen/jupiter_perps/types/UpdateIncreasePositionRequestParams.d.ts +28 -0
  398. package/dist/@codegen/jupiter_perps/types/UpdateIncreasePositionRequestParams.d.ts.map +1 -0
  399. package/dist/@codegen/jupiter_perps/types/UpdateIncreasePositionRequestParams.js +82 -0
  400. package/dist/@codegen/jupiter_perps/types/UpdateIncreasePositionRequestParams.js.map +1 -0
  401. package/dist/@codegen/jupiter_perps/types/WithdrawFeesParams.d.ts +15 -0
  402. package/dist/@codegen/jupiter_perps/types/WithdrawFeesParams.d.ts.map +1 -0
  403. package/dist/@codegen/jupiter_perps/types/WithdrawFeesParams.js +61 -0
  404. package/dist/@codegen/jupiter_perps/types/WithdrawFeesParams.js.map +1 -0
  405. package/dist/@codegen/jupiter_perps/types/index.d.ts +119 -0
  406. package/dist/@codegen/jupiter_perps/types/index.d.ts.map +1 -0
  407. package/dist/@codegen/jupiter_perps/types/index.js +146 -0
  408. package/dist/@codegen/jupiter_perps/types/index.js.map +1 -0
  409. package/dist/@codegen/jupiter_perps/utils/borshAddress.d.ts +4 -0
  410. package/dist/@codegen/jupiter_perps/utils/borshAddress.d.ts.map +1 -0
  411. package/dist/@codegen/jupiter_perps/utils/borshAddress.js +30 -0
  412. package/dist/@codegen/jupiter_perps/utils/borshAddress.js.map +1 -0
  413. package/dist/@codegen/jupiter_perps/utils/index.d.ts +2 -0
  414. package/dist/@codegen/jupiter_perps/utils/index.d.ts.map +1 -0
  415. package/dist/@codegen/jupiter_perps/utils/index.js +18 -0
  416. package/dist/@codegen/jupiter_perps/utils/index.js.map +1 -0
  417. package/dist/@codegen/klend/accounts/GlobalConfig.d.ts +40 -0
  418. package/dist/@codegen/klend/accounts/GlobalConfig.d.ts.map +1 -0
  419. package/dist/@codegen/klend/accounts/GlobalConfig.js +118 -0
  420. package/dist/@codegen/klend/accounts/GlobalConfig.js.map +1 -0
  421. package/dist/@codegen/klend/accounts/LendingMarket.d.ts +285 -0
  422. package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -0
  423. package/dist/@codegen/klend/accounts/LendingMarket.js +358 -0
  424. package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -0
  425. package/dist/@codegen/klend/accounts/Obligation.d.ts +199 -0
  426. package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -0
  427. package/dist/@codegen/klend/accounts/Obligation.js +295 -0
  428. package/dist/@codegen/klend/accounts/Obligation.js.map +1 -0
  429. package/dist/@codegen/klend/accounts/ReferrerState.d.ts +22 -0
  430. package/dist/@codegen/klend/accounts/ReferrerState.d.ts.map +1 -0
  431. package/dist/@codegen/klend/accounts/ReferrerState.js +102 -0
  432. package/dist/@codegen/klend/accounts/ReferrerState.js.map +1 -0
  433. package/dist/@codegen/klend/accounts/ReferrerTokenState.d.ts +51 -0
  434. package/dist/@codegen/klend/accounts/ReferrerTokenState.d.ts.map +1 -0
  435. package/dist/@codegen/klend/accounts/ReferrerTokenState.js +137 -0
  436. package/dist/@codegen/klend/accounts/ReferrerTokenState.js.map +1 -0
  437. package/dist/@codegen/klend/accounts/Reserve.d.ts +90 -0
  438. package/dist/@codegen/klend/accounts/Reserve.d.ts.map +1 -0
  439. package/dist/@codegen/klend/accounts/Reserve.js +192 -0
  440. package/dist/@codegen/klend/accounts/Reserve.js.map +1 -0
  441. package/dist/@codegen/klend/accounts/ShortUrl.d.ts +22 -0
  442. package/dist/@codegen/klend/accounts/ShortUrl.d.ts.map +1 -0
  443. package/dist/@codegen/klend/accounts/ShortUrl.js +102 -0
  444. package/dist/@codegen/klend/accounts/ShortUrl.js.map +1 -0
  445. package/dist/@codegen/klend/accounts/UserMetadata.d.ts +48 -0
  446. package/dist/@codegen/klend/accounts/UserMetadata.d.ts.map +1 -0
  447. package/dist/@codegen/klend/accounts/UserMetadata.js +136 -0
  448. package/dist/@codegen/klend/accounts/UserMetadata.js.map +1 -0
  449. package/dist/@codegen/klend/accounts/UserState.d.ts +143 -0
  450. package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -0
  451. package/dist/@codegen/klend/accounts/UserState.js +222 -0
  452. package/dist/@codegen/klend/accounts/UserState.js.map +1 -0
  453. package/dist/@codegen/klend/accounts/index.d.ts +19 -0
  454. package/dist/@codegen/klend/accounts/index.d.ts.map +1 -0
  455. package/dist/@codegen/klend/accounts/index.js +22 -0
  456. package/dist/@codegen/klend/accounts/index.js.map +1 -0
  457. package/dist/@codegen/klend/errors/anchor.d.ts +435 -0
  458. package/dist/@codegen/klend/errors/anchor.d.ts.map +1 -0
  459. package/dist/@codegen/klend/errors/anchor.js +767 -0
  460. package/dist/@codegen/klend/errors/anchor.js.map +1 -0
  461. package/dist/@codegen/klend/errors/custom.d.ts +1067 -0
  462. package/dist/@codegen/klend/errors/custom.d.ts.map +1 -0
  463. package/dist/@codegen/klend/errors/custom.js +1874 -0
  464. package/dist/@codegen/klend/errors/custom.js.map +1 -0
  465. package/dist/@codegen/klend/errors/index.d.ts +6 -0
  466. package/dist/@codegen/klend/errors/index.d.ts.map +1 -0
  467. package/dist/@codegen/klend/errors/index.js +86 -0
  468. package/dist/@codegen/klend/errors/index.js.map +1 -0
  469. package/dist/@codegen/klend/instructions/borrowObligationLiquidity.d.ts +23 -0
  470. package/dist/@codegen/klend/instructions/borrowObligationLiquidity.d.ts.map +1 -0
  471. package/dist/@codegen/klend/instructions/borrowObligationLiquidity.js +72 -0
  472. package/dist/@codegen/klend/instructions/borrowObligationLiquidity.js.map +1 -0
  473. package/dist/@codegen/klend/instructions/borrowObligationLiquidityV2.d.ts +30 -0
  474. package/dist/@codegen/klend/instructions/borrowObligationLiquidityV2.d.ts.map +1 -0
  475. package/dist/@codegen/klend/instructions/borrowObligationLiquidityV2.js +89 -0
  476. package/dist/@codegen/klend/instructions/borrowObligationLiquidityV2.js.map +1 -0
  477. package/dist/@codegen/klend/instructions/deleteReferrerStateAndShortUrl.d.ts +11 -0
  478. package/dist/@codegen/klend/instructions/deleteReferrerStateAndShortUrl.d.ts.map +1 -0
  479. package/dist/@codegen/klend/instructions/deleteReferrerStateAndShortUrl.js +20 -0
  480. package/dist/@codegen/klend/instructions/deleteReferrerStateAndShortUrl.js.map +1 -0
  481. package/dist/@codegen/klend/instructions/depositAndWithdraw.d.ts +53 -0
  482. package/dist/@codegen/klend/instructions/depositAndWithdraw.d.ts.map +1 -0
  483. package/dist/@codegen/klend/instructions/depositAndWithdraw.js +135 -0
  484. package/dist/@codegen/klend/instructions/depositAndWithdraw.js.map +1 -0
  485. package/dist/@codegen/klend/instructions/depositObligationCollateral.d.ts +19 -0
  486. package/dist/@codegen/klend/instructions/depositObligationCollateral.d.ts.map +1 -0
  487. package/dist/@codegen/klend/instructions/depositObligationCollateral.js +64 -0
  488. package/dist/@codegen/klend/instructions/depositObligationCollateral.js.map +1 -0
  489. package/dist/@codegen/klend/instructions/depositObligationCollateralV2.d.ts +27 -0
  490. package/dist/@codegen/klend/instructions/depositObligationCollateralV2.d.ts.map +1 -0
  491. package/dist/@codegen/klend/instructions/depositObligationCollateralV2.js +81 -0
  492. package/dist/@codegen/klend/instructions/depositObligationCollateralV2.js.map +1 -0
  493. package/dist/@codegen/klend/instructions/depositReserveLiquidity.d.ts +23 -0
  494. package/dist/@codegen/klend/instructions/depositReserveLiquidity.d.ts.map +1 -0
  495. package/dist/@codegen/klend/instructions/depositReserveLiquidity.js +68 -0
  496. package/dist/@codegen/klend/instructions/depositReserveLiquidity.js.map +1 -0
  497. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateral.d.ts +25 -0
  498. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateral.d.ts.map +1 -0
  499. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateral.js +77 -0
  500. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -0
  501. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateralV2.d.ts +32 -0
  502. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateralV2.d.ts.map +1 -0
  503. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateralV2.js +96 -0
  504. package/dist/@codegen/klend/instructions/depositReserveLiquidityAndObligationCollateralV2.js.map +1 -0
  505. package/dist/@codegen/klend/instructions/flashBorrowReserveLiquidity.d.ts +23 -0
  506. package/dist/@codegen/klend/instructions/flashBorrowReserveLiquidity.d.ts.map +1 -0
  507. package/dist/@codegen/klend/instructions/flashBorrowReserveLiquidity.js +78 -0
  508. package/dist/@codegen/klend/instructions/flashBorrowReserveLiquidity.js.map +1 -0
  509. package/dist/@codegen/klend/instructions/flashRepayReserveLiquidity.d.ts +24 -0
  510. package/dist/@codegen/klend/instructions/flashRepayReserveLiquidity.d.ts.map +1 -0
  511. package/dist/@codegen/klend/instructions/flashRepayReserveLiquidity.js +80 -0
  512. package/dist/@codegen/klend/instructions/flashRepayReserveLiquidity.js.map +1 -0
  513. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +21 -0
  514. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -0
  515. package/dist/@codegen/klend/instructions/idlMissingTypes.js +73 -0
  516. package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -0
  517. package/dist/@codegen/klend/instructions/index.d.ts +99 -0
  518. package/dist/@codegen/klend/instructions/index.d.ts.map +1 -0
  519. package/dist/@codegen/klend/instructions/index.js +102 -0
  520. package/dist/@codegen/klend/instructions/index.js.map +1 -0
  521. package/dist/@codegen/klend/instructions/initFarmsForReserve.d.ts +20 -0
  522. package/dist/@codegen/klend/instructions/initFarmsForReserve.d.ts.map +1 -0
  523. package/dist/@codegen/klend/instructions/initFarmsForReserve.js +68 -0
  524. package/dist/@codegen/klend/instructions/initFarmsForReserve.js.map +1 -0
  525. package/dist/@codegen/klend/instructions/initGlobalConfig.d.ts +11 -0
  526. package/dist/@codegen/klend/instructions/initGlobalConfig.d.ts.map +1 -0
  527. package/dist/@codegen/klend/instructions/initGlobalConfig.js +20 -0
  528. package/dist/@codegen/klend/instructions/initGlobalConfig.js.map +1 -0
  529. package/dist/@codegen/klend/instructions/initLendingMarket.d.ts +15 -0
  530. package/dist/@codegen/klend/instructions/initLendingMarket.d.ts.map +1 -0
  531. package/dist/@codegen/klend/instructions/initLendingMarket.js +65 -0
  532. package/dist/@codegen/klend/instructions/initLendingMarket.js.map +1 -0
  533. package/dist/@codegen/klend/instructions/initObligation.d.ts +20 -0
  534. package/dist/@codegen/klend/instructions/initObligation.d.ts.map +1 -0
  535. package/dist/@codegen/klend/instructions/initObligation.js +70 -0
  536. package/dist/@codegen/klend/instructions/initObligation.js.map +1 -0
  537. package/dist/@codegen/klend/instructions/initObligationFarmsForReserve.d.ts +21 -0
  538. package/dist/@codegen/klend/instructions/initObligationFarmsForReserve.d.ts.map +1 -0
  539. package/dist/@codegen/klend/instructions/initObligationFarmsForReserve.js +67 -0
  540. package/dist/@codegen/klend/instructions/initObligationFarmsForReserve.js.map +1 -0
  541. package/dist/@codegen/klend/instructions/initReferrerStateAndShortUrl.d.ts +16 -0
  542. package/dist/@codegen/klend/instructions/initReferrerStateAndShortUrl.d.ts.map +1 -0
  543. package/dist/@codegen/klend/instructions/initReferrerStateAndShortUrl.js +62 -0
  544. package/dist/@codegen/klend/instructions/initReferrerStateAndShortUrl.js.map +1 -0
  545. package/dist/@codegen/klend/instructions/initReferrerTokenState.d.ts +13 -0
  546. package/dist/@codegen/klend/instructions/initReferrerTokenState.d.ts.map +1 -0
  547. package/dist/@codegen/klend/instructions/initReferrerTokenState.js +22 -0
  548. package/dist/@codegen/klend/instructions/initReferrerTokenState.js.map +1 -0
  549. package/dist/@codegen/klend/instructions/initReserve.d.ts +20 -0
  550. package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -0
  551. package/dist/@codegen/klend/instructions/initReserve.js +29 -0
  552. package/dist/@codegen/klend/instructions/initReserve.js.map +1 -0
  553. package/dist/@codegen/klend/instructions/initUserMetadata.d.ts +16 -0
  554. package/dist/@codegen/klend/instructions/initUserMetadata.d.ts.map +1 -0
  555. package/dist/@codegen/klend/instructions/initUserMetadata.js +67 -0
  556. package/dist/@codegen/klend/instructions/initUserMetadata.js.map +1 -0
  557. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts +33 -0
  558. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts.map +1 -0
  559. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js +84 -0
  560. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -0
  561. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.d.ts +44 -0
  562. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.d.ts.map +1 -0
  563. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.js +138 -0
  564. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateralV2.js.map +1 -0
  565. package/dist/@codegen/klend/instructions/markObligationForDeleveraging.d.ts +13 -0
  566. package/dist/@codegen/klend/instructions/markObligationForDeleveraging.d.ts.map +1 -0
  567. package/dist/@codegen/klend/instructions/markObligationForDeleveraging.js +63 -0
  568. package/dist/@codegen/klend/instructions/markObligationForDeleveraging.js.map +1 -0
  569. package/dist/@codegen/klend/instructions/redeemFees.d.ts +13 -0
  570. package/dist/@codegen/klend/instructions/redeemFees.d.ts.map +1 -0
  571. package/dist/@codegen/klend/instructions/redeemFees.js +22 -0
  572. package/dist/@codegen/klend/instructions/redeemFees.js.map +1 -0
  573. package/dist/@codegen/klend/instructions/redeemReserveCollateral.d.ts +23 -0
  574. package/dist/@codegen/klend/instructions/redeemReserveCollateral.d.ts.map +1 -0
  575. package/dist/@codegen/klend/instructions/redeemReserveCollateral.js +70 -0
  576. package/dist/@codegen/klend/instructions/redeemReserveCollateral.js.map +1 -0
  577. package/dist/@codegen/klend/instructions/refreshObligation.d.ts +8 -0
  578. package/dist/@codegen/klend/instructions/refreshObligation.d.ts.map +1 -0
  579. package/dist/@codegen/klend/instructions/refreshObligation.js +17 -0
  580. package/dist/@codegen/klend/instructions/refreshObligation.js.map +1 -0
  581. package/dist/@codegen/klend/instructions/refreshObligationFarmsForReserve.d.ts +22 -0
  582. package/dist/@codegen/klend/instructions/refreshObligationFarmsForReserve.d.ts.map +1 -0
  583. package/dist/@codegen/klend/instructions/refreshObligationFarmsForReserve.js +66 -0
  584. package/dist/@codegen/klend/instructions/refreshObligationFarmsForReserve.js.map +1 -0
  585. package/dist/@codegen/klend/instructions/refreshReserve.d.ts +12 -0
  586. package/dist/@codegen/klend/instructions/refreshReserve.d.ts.map +1 -0
  587. package/dist/@codegen/klend/instructions/refreshReserve.js +31 -0
  588. package/dist/@codegen/klend/instructions/refreshReserve.js.map +1 -0
  589. package/dist/@codegen/klend/instructions/refreshReservesBatch.d.ts +8 -0
  590. package/dist/@codegen/klend/instructions/refreshReservesBatch.d.ts.map +1 -0
  591. package/dist/@codegen/klend/instructions/refreshReservesBatch.js +56 -0
  592. package/dist/@codegen/klend/instructions/refreshReservesBatch.js.map +1 -0
  593. package/dist/@codegen/klend/instructions/repayAndWithdrawAndRedeem.d.ts +48 -0
  594. package/dist/@codegen/klend/instructions/repayAndWithdrawAndRedeem.d.ts.map +1 -0
  595. package/dist/@codegen/klend/instructions/repayAndWithdrawAndRedeem.js +119 -0
  596. package/dist/@codegen/klend/instructions/repayAndWithdrawAndRedeem.js.map +1 -0
  597. package/dist/@codegen/klend/instructions/repayObligationLiquidity.d.ts +20 -0
  598. package/dist/@codegen/klend/instructions/repayObligationLiquidity.d.ts.map +1 -0
  599. package/dist/@codegen/klend/instructions/repayObligationLiquidity.js +65 -0
  600. package/dist/@codegen/klend/instructions/repayObligationLiquidity.js.map +1 -0
  601. package/dist/@codegen/klend/instructions/repayObligationLiquidityV2.d.ts +28 -0
  602. package/dist/@codegen/klend/instructions/repayObligationLiquidityV2.d.ts.map +1 -0
  603. package/dist/@codegen/klend/instructions/repayObligationLiquidityV2.js +82 -0
  604. package/dist/@codegen/klend/instructions/repayObligationLiquidityV2.js.map +1 -0
  605. package/dist/@codegen/klend/instructions/requestElevationGroup.d.ts +13 -0
  606. package/dist/@codegen/klend/instructions/requestElevationGroup.d.ts.map +1 -0
  607. package/dist/@codegen/klend/instructions/requestElevationGroup.js +59 -0
  608. package/dist/@codegen/klend/instructions/requestElevationGroup.js.map +1 -0
  609. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.d.ts +13 -0
  610. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.d.ts.map +1 -0
  611. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.js +24 -0
  612. package/dist/@codegen/klend/instructions/seedDepositOnInitReserve.js.map +1 -0
  613. package/dist/@codegen/klend/instructions/setObligationOrder.d.ts +15 -0
  614. package/dist/@codegen/klend/instructions/setObligationOrder.d.ts.map +1 -0
  615. package/dist/@codegen/klend/instructions/setObligationOrder.js +62 -0
  616. package/dist/@codegen/klend/instructions/setObligationOrder.js.map +1 -0
  617. package/dist/@codegen/klend/instructions/socializeLoss.d.ts +16 -0
  618. package/dist/@codegen/klend/instructions/socializeLoss.d.ts.map +1 -0
  619. package/dist/@codegen/klend/instructions/socializeLoss.js +65 -0
  620. package/dist/@codegen/klend/instructions/socializeLoss.js.map +1 -0
  621. package/dist/@codegen/klend/instructions/socializeLossV2.d.ts +24 -0
  622. package/dist/@codegen/klend/instructions/socializeLossV2.d.ts.map +1 -0
  623. package/dist/@codegen/klend/instructions/socializeLossV2.js +81 -0
  624. package/dist/@codegen/klend/instructions/socializeLossV2.js.map +1 -0
  625. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts +14 -0
  626. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts.map +1 -0
  627. package/dist/@codegen/klend/instructions/updateGlobalConfig.js +65 -0
  628. package/dist/@codegen/klend/instructions/updateGlobalConfig.js.map +1 -0
  629. package/dist/@codegen/klend/instructions/updateGlobalConfigAdmin.d.ts +8 -0
  630. package/dist/@codegen/klend/instructions/updateGlobalConfigAdmin.d.ts.map +1 -0
  631. package/dist/@codegen/klend/instructions/updateGlobalConfigAdmin.js +21 -0
  632. package/dist/@codegen/klend/instructions/updateGlobalConfigAdmin.js.map +1 -0
  633. package/dist/@codegen/klend/instructions/updateLendingMarket.d.ts +14 -0
  634. package/dist/@codegen/klend/instructions/updateLendingMarket.d.ts.map +1 -0
  635. package/dist/@codegen/klend/instructions/updateLendingMarket.js +64 -0
  636. package/dist/@codegen/klend/instructions/updateLendingMarket.js.map +1 -0
  637. package/dist/@codegen/klend/instructions/updateLendingMarketOwner.d.ts +8 -0
  638. package/dist/@codegen/klend/instructions/updateLendingMarketOwner.d.ts.map +1 -0
  639. package/dist/@codegen/klend/instructions/updateLendingMarketOwner.js +21 -0
  640. package/dist/@codegen/klend/instructions/updateLendingMarketOwner.js.map +1 -0
  641. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts +17 -0
  642. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts.map +1 -0
  643. package/dist/@codegen/klend/instructions/updateReserveConfig.js +65 -0
  644. package/dist/@codegen/klend/instructions/updateReserveConfig.js.map +1 -0
  645. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.d.ts +20 -0
  646. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.d.ts.map +1 -0
  647. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +65 -0
  648. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js.map +1 -0
  649. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts +25 -0
  650. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts.map +1 -0
  651. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +77 -0
  652. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -0
  653. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.d.ts +32 -0
  654. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.d.ts.map +1 -0
  655. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js +92 -0
  656. package/dist/@codegen/klend/instructions/withdrawObligationCollateralAndRedeemReserveCollateralV2.js.map +1 -0
  657. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.d.ts +27 -0
  658. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.d.ts.map +1 -0
  659. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +83 -0
  660. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js.map +1 -0
  661. package/dist/@codegen/klend/instructions/withdrawProtocolFee.d.ts +19 -0
  662. package/dist/@codegen/klend/instructions/withdrawProtocolFee.d.ts.map +1 -0
  663. package/dist/@codegen/klend/instructions/withdrawProtocolFee.js +64 -0
  664. package/dist/@codegen/klend/instructions/withdrawProtocolFee.js.map +1 -0
  665. package/dist/@codegen/klend/instructions/withdrawReferrerFees.d.ts +15 -0
  666. package/dist/@codegen/klend/instructions/withdrawReferrerFees.d.ts.map +1 -0
  667. package/dist/@codegen/klend/instructions/withdrawReferrerFees.js +26 -0
  668. package/dist/@codegen/klend/instructions/withdrawReferrerFees.js.map +1 -0
  669. package/dist/@codegen/klend/programId.d.ts +4 -0
  670. package/dist/@codegen/klend/programId.d.ts.map +1 -0
  671. package/dist/@codegen/klend/programId.js +9 -0
  672. package/dist/@codegen/klend/programId.js.map +1 -0
  673. package/dist/@codegen/klend/types/AssetTier.d.ts +45 -0
  674. package/dist/@codegen/klend/types/AssetTier.d.ts.map +1 -0
  675. package/dist/@codegen/klend/types/AssetTier.js +132 -0
  676. package/dist/@codegen/klend/types/AssetTier.js.map +1 -0
  677. package/dist/@codegen/klend/types/BigFractionBytes.d.ts +28 -0
  678. package/dist/@codegen/klend/types/BigFractionBytes.d.ts.map +1 -0
  679. package/dist/@codegen/klend/types/BigFractionBytes.js +85 -0
  680. package/dist/@codegen/klend/types/BigFractionBytes.js.map +1 -0
  681. package/dist/@codegen/klend/types/BorrowRateCurve.d.ts +28 -0
  682. package/dist/@codegen/klend/types/BorrowRateCurve.d.ts.map +1 -0
  683. package/dist/@codegen/klend/types/BorrowRateCurve.js +73 -0
  684. package/dist/@codegen/klend/types/BorrowRateCurve.js.map +1 -0
  685. package/dist/@codegen/klend/types/CurvePoint.d.ts +27 -0
  686. package/dist/@codegen/klend/types/CurvePoint.d.ts.map +1 -0
  687. package/dist/@codegen/klend/types/CurvePoint.js +78 -0
  688. package/dist/@codegen/klend/types/CurvePoint.js.map +1 -0
  689. package/dist/@codegen/klend/types/ElevationGroup.d.ts +67 -0
  690. package/dist/@codegen/klend/types/ElevationGroup.d.ts.map +1 -0
  691. package/dist/@codegen/klend/types/ElevationGroup.js +137 -0
  692. package/dist/@codegen/klend/types/ElevationGroup.js.map +1 -0
  693. package/dist/@codegen/klend/types/FeeCalculation.d.ts +32 -0
  694. package/dist/@codegen/klend/types/FeeCalculation.d.ts.map +1 -0
  695. package/dist/@codegen/klend/types/FeeCalculation.js +108 -0
  696. package/dist/@codegen/klend/types/FeeCalculation.js.map +1 -0
  697. package/dist/@codegen/klend/types/InitObligationArgs.d.ts +27 -0
  698. package/dist/@codegen/klend/types/InitObligationArgs.d.ts.map +1 -0
  699. package/dist/@codegen/klend/types/InitObligationArgs.js +78 -0
  700. package/dist/@codegen/klend/types/InitObligationArgs.js.map +1 -0
  701. package/dist/@codegen/klend/types/LastUpdate.d.ts +48 -0
  702. package/dist/@codegen/klend/types/LastUpdate.d.ts.map +1 -0
  703. package/dist/@codegen/klend/types/LastUpdate.js +103 -0
  704. package/dist/@codegen/klend/types/LastUpdate.js.map +1 -0
  705. package/dist/@codegen/klend/types/ObligationCollateral.d.ts +72 -0
  706. package/dist/@codegen/klend/types/ObligationCollateral.d.ts.map +1 -0
  707. package/dist/@codegen/klend/types/ObligationCollateral.js +119 -0
  708. package/dist/@codegen/klend/types/ObligationCollateral.js.map +1 -0
  709. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +84 -0
  710. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -0
  711. package/dist/@codegen/klend/types/ObligationLiquidity.js +141 -0
  712. package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -0
  713. package/dist/@codegen/klend/types/ObligationOrder.d.ts +284 -0
  714. package/dist/@codegen/klend/types/ObligationOrder.d.ts.map +1 -0
  715. package/dist/@codegen/klend/types/ObligationOrder.js +205 -0
  716. package/dist/@codegen/klend/types/ObligationOrder.js.map +1 -0
  717. package/dist/@codegen/klend/types/PriceHeuristic.d.ts +42 -0
  718. package/dist/@codegen/klend/types/PriceHeuristic.d.ts.map +1 -0
  719. package/dist/@codegen/klend/types/PriceHeuristic.js +91 -0
  720. package/dist/@codegen/klend/types/PriceHeuristic.js.map +1 -0
  721. package/dist/@codegen/klend/types/PythConfiguration.d.ts +26 -0
  722. package/dist/@codegen/klend/types/PythConfiguration.d.ts.map +1 -0
  723. package/dist/@codegen/klend/types/PythConfiguration.js +75 -0
  724. package/dist/@codegen/klend/types/PythConfiguration.js.map +1 -0
  725. package/dist/@codegen/klend/types/ReserveCollateral.d.ts +54 -0
  726. package/dist/@codegen/klend/types/ReserveCollateral.d.ts.map +1 -0
  727. package/dist/@codegen/klend/types/ReserveCollateral.js +112 -0
  728. package/dist/@codegen/klend/types/ReserveCollateral.js.map +1 -0
  729. package/dist/@codegen/klend/types/ReserveConfig.d.ts +472 -0
  730. package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -0
  731. package/dist/@codegen/klend/types/ReserveConfig.js +377 -0
  732. package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -0
  733. package/dist/@codegen/klend/types/ReserveFarmKind.d.ts +32 -0
  734. package/dist/@codegen/klend/types/ReserveFarmKind.d.ts.map +1 -0
  735. package/dist/@codegen/klend/types/ReserveFarmKind.js +108 -0
  736. package/dist/@codegen/klend/types/ReserveFarmKind.js.map +1 -0
  737. package/dist/@codegen/klend/types/ReserveFees.d.ts +79 -0
  738. package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -0
  739. package/dist/@codegen/klend/types/ReserveFees.js +112 -0
  740. package/dist/@codegen/klend/types/ReserveFees.js.map +1 -0
  741. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts +182 -0
  742. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts.map +1 -0
  743. package/dist/@codegen/klend/types/ReserveLiquidity.js +225 -0
  744. package/dist/@codegen/klend/types/ReserveLiquidity.js.map +1 -0
  745. package/dist/@codegen/klend/types/ReserveStatus.d.ts +45 -0
  746. package/dist/@codegen/klend/types/ReserveStatus.d.ts.map +1 -0
  747. package/dist/@codegen/klend/types/ReserveStatus.js +132 -0
  748. package/dist/@codegen/klend/types/ReserveStatus.js.map +1 -0
  749. package/dist/@codegen/klend/types/ScopeConfiguration.d.ts +42 -0
  750. package/dist/@codegen/klend/types/ScopeConfiguration.d.ts.map +1 -0
  751. package/dist/@codegen/klend/types/ScopeConfiguration.js +93 -0
  752. package/dist/@codegen/klend/types/ScopeConfiguration.js.map +1 -0
  753. package/dist/@codegen/klend/types/SwitchboardConfiguration.d.ts +31 -0
  754. package/dist/@codegen/klend/types/SwitchboardConfiguration.d.ts.map +1 -0
  755. package/dist/@codegen/klend/types/SwitchboardConfiguration.js +81 -0
  756. package/dist/@codegen/klend/types/SwitchboardConfiguration.js.map +1 -0
  757. package/dist/@codegen/klend/types/TokenInfo.d.ts +118 -0
  758. package/dist/@codegen/klend/types/TokenInfo.d.ts.map +1 -0
  759. package/dist/@codegen/klend/types/TokenInfo.js +161 -0
  760. package/dist/@codegen/klend/types/TokenInfo.js.map +1 -0
  761. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +695 -0
  762. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -0
  763. package/dist/@codegen/klend/types/UpdateConfigMode.js +1333 -0
  764. package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -0
  765. package/dist/@codegen/klend/types/UpdateGlobalConfigMode.d.ts +32 -0
  766. package/dist/@codegen/klend/types/UpdateGlobalConfigMode.d.ts.map +1 -0
  767. package/dist/@codegen/klend/types/UpdateGlobalConfigMode.js +108 -0
  768. package/dist/@codegen/klend/types/UpdateGlobalConfigMode.js.map +1 -0
  769. package/dist/@codegen/klend/types/UpdateLendingMarketConfigValue.d.ts +198 -0
  770. package/dist/@codegen/klend/types/UpdateLendingMarketConfigValue.d.ts.map +1 -0
  771. package/dist/@codegen/klend/types/UpdateLendingMarketConfigValue.js +355 -0
  772. package/dist/@codegen/klend/types/UpdateLendingMarketConfigValue.js.map +1 -0
  773. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +357 -0
  774. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -0
  775. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +708 -0
  776. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -0
  777. package/dist/@codegen/klend/types/WithdrawalCaps.d.ts +39 -0
  778. package/dist/@codegen/klend/types/WithdrawalCaps.d.ts.map +1 -0
  779. package/dist/@codegen/klend/types/WithdrawalCaps.js +100 -0
  780. package/dist/@codegen/klend/types/WithdrawalCaps.js.map +1 -0
  781. package/dist/@codegen/klend/types/index.d.ts +72 -0
  782. package/dist/@codegen/klend/types/index.d.ts.map +1 -0
  783. package/dist/@codegen/klend/types/index.js +91 -0
  784. package/dist/@codegen/klend/types/index.js.map +1 -0
  785. package/dist/@codegen/klend/utils/borshAddress.d.ts +4 -0
  786. package/dist/@codegen/klend/utils/borshAddress.d.ts.map +1 -0
  787. package/dist/@codegen/klend/utils/borshAddress.js +30 -0
  788. package/dist/@codegen/klend/utils/borshAddress.js.map +1 -0
  789. package/dist/@codegen/klend/utils/index.d.ts +2 -0
  790. package/dist/@codegen/klend/utils/index.d.ts.map +1 -0
  791. package/dist/@codegen/klend/utils/index.js +18 -0
  792. package/dist/@codegen/klend/utils/index.js.map +1 -0
  793. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +73 -0
  794. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -0
  795. package/dist/@codegen/klend/zero_padding/ObligationZP.js +225 -0
  796. package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -0
  797. package/dist/@codegen/klend/zero_padding/index.d.ts +2 -0
  798. package/dist/@codegen/klend/zero_padding/index.d.ts.map +1 -0
  799. package/dist/@codegen/klend/zero_padding/index.js +6 -0
  800. package/dist/@codegen/klend/zero_padding/index.js.map +1 -0
  801. package/dist/@codegen/kvault/accounts/GlobalConfig.d.ts +32 -0
  802. package/dist/@codegen/kvault/accounts/GlobalConfig.d.ts.map +1 -0
  803. package/dist/@codegen/kvault/accounts/GlobalConfig.js +125 -0
  804. package/dist/@codegen/kvault/accounts/GlobalConfig.js.map +1 -0
  805. package/dist/@codegen/kvault/accounts/Reserve.d.ts +90 -0
  806. package/dist/@codegen/kvault/accounts/Reserve.d.ts.map +1 -0
  807. package/dist/@codegen/kvault/accounts/Reserve.js +192 -0
  808. package/dist/@codegen/kvault/accounts/Reserve.js.map +1 -0
  809. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.d.ts +52 -0
  810. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.d.ts.map +1 -0
  811. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.js +127 -0
  812. package/dist/@codegen/kvault/accounts/ReserveWhitelistEntry.js.map +1 -0
  813. package/dist/@codegen/kvault/accounts/VaultState.d.ts +144 -0
  814. package/dist/@codegen/kvault/accounts/VaultState.d.ts.map +1 -0
  815. package/dist/@codegen/kvault/accounts/VaultState.js +350 -0
  816. package/dist/@codegen/kvault/accounts/VaultState.js.map +1 -0
  817. package/dist/@codegen/kvault/accounts/index.d.ts +9 -0
  818. package/dist/@codegen/kvault/accounts/index.d.ts.map +1 -0
  819. package/dist/@codegen/kvault/accounts/index.js +12 -0
  820. package/dist/@codegen/kvault/accounts/index.js.map +1 -0
  821. package/dist/@codegen/kvault/errors/anchor.d.ts +435 -0
  822. package/dist/@codegen/kvault/errors/anchor.d.ts.map +1 -0
  823. package/dist/@codegen/kvault/errors/anchor.js +767 -0
  824. package/dist/@codegen/kvault/errors/anchor.js.map +1 -0
  825. package/dist/@codegen/kvault/errors/custom.d.ts +451 -0
  826. package/dist/@codegen/kvault/errors/custom.d.ts.map +1 -0
  827. package/dist/@codegen/kvault/errors/custom.js +795 -0
  828. package/dist/@codegen/kvault/errors/custom.js.map +1 -0
  829. package/dist/@codegen/kvault/errors/index.d.ts +6 -0
  830. package/dist/@codegen/kvault/errors/index.d.ts.map +1 -0
  831. package/dist/@codegen/kvault/errors/index.js +86 -0
  832. package/dist/@codegen/kvault/errors/index.js.map +1 -0
  833. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.d.ts +16 -0
  834. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.d.ts.map +1 -0
  835. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.js +66 -0
  836. package/dist/@codegen/kvault/instructions/addUpdateWhitelistedReserve.js.map +1 -0
  837. package/dist/@codegen/kvault/instructions/buy.d.ts +24 -0
  838. package/dist/@codegen/kvault/instructions/buy.d.ts.map +1 -0
  839. package/dist/@codegen/kvault/instructions/buy.js +67 -0
  840. package/dist/@codegen/kvault/instructions/buy.js.map +1 -0
  841. package/dist/@codegen/kvault/instructions/deposit.d.ts +24 -0
  842. package/dist/@codegen/kvault/instructions/deposit.d.ts.map +1 -0
  843. package/dist/@codegen/kvault/instructions/deposit.js +67 -0
  844. package/dist/@codegen/kvault/instructions/deposit.js.map +1 -0
  845. package/dist/@codegen/kvault/instructions/giveUpPendingFees.d.ts +14 -0
  846. package/dist/@codegen/kvault/instructions/giveUpPendingFees.d.ts.map +1 -0
  847. package/dist/@codegen/kvault/instructions/giveUpPendingFees.js +65 -0
  848. package/dist/@codegen/kvault/instructions/giveUpPendingFees.js.map +1 -0
  849. package/dist/@codegen/kvault/instructions/index.d.ts +39 -0
  850. package/dist/@codegen/kvault/instructions/index.d.ts.map +1 -0
  851. package/dist/@codegen/kvault/instructions/index.js +42 -0
  852. package/dist/@codegen/kvault/instructions/index.js.map +1 -0
  853. package/dist/@codegen/kvault/instructions/initGlobalConfig.d.ts +11 -0
  854. package/dist/@codegen/kvault/instructions/initGlobalConfig.d.ts.map +1 -0
  855. package/dist/@codegen/kvault/instructions/initGlobalConfig.js +20 -0
  856. package/dist/@codegen/kvault/instructions/initGlobalConfig.js.map +1 -0
  857. package/dist/@codegen/kvault/instructions/initVault.d.ts +17 -0
  858. package/dist/@codegen/kvault/instructions/initVault.d.ts.map +1 -0
  859. package/dist/@codegen/kvault/instructions/initVault.js +30 -0
  860. package/dist/@codegen/kvault/instructions/initVault.js.map +1 -0
  861. package/dist/@codegen/kvault/instructions/initializeSharesMetadata.d.ts +20 -0
  862. package/dist/@codegen/kvault/instructions/initializeSharesMetadata.d.ts.map +1 -0
  863. package/dist/@codegen/kvault/instructions/initializeSharesMetadata.js +72 -0
  864. package/dist/@codegen/kvault/instructions/initializeSharesMetadata.js.map +1 -0
  865. package/dist/@codegen/kvault/instructions/invest.d.ts +24 -0
  866. package/dist/@codegen/kvault/instructions/invest.d.ts.map +1 -0
  867. package/dist/@codegen/kvault/instructions/invest.js +36 -0
  868. package/dist/@codegen/kvault/instructions/invest.js.map +1 -0
  869. package/dist/@codegen/kvault/instructions/removeAllocation.d.ts +9 -0
  870. package/dist/@codegen/kvault/instructions/removeAllocation.d.ts.map +1 -0
  871. package/dist/@codegen/kvault/instructions/removeAllocation.js +22 -0
  872. package/dist/@codegen/kvault/instructions/removeAllocation.js.map +1 -0
  873. package/dist/@codegen/kvault/instructions/sell.d.ts +40 -0
  874. package/dist/@codegen/kvault/instructions/sell.d.ts.map +1 -0
  875. package/dist/@codegen/kvault/instructions/sell.js +98 -0
  876. package/dist/@codegen/kvault/instructions/sell.js.map +1 -0
  877. package/dist/@codegen/kvault/instructions/updateAdmin.d.ts +8 -0
  878. package/dist/@codegen/kvault/instructions/updateAdmin.d.ts.map +1 -0
  879. package/dist/@codegen/kvault/instructions/updateAdmin.js +21 -0
  880. package/dist/@codegen/kvault/instructions/updateAdmin.js.map +1 -0
  881. package/dist/@codegen/kvault/instructions/updateGlobalConfig.d.ts +13 -0
  882. package/dist/@codegen/kvault/instructions/updateGlobalConfig.d.ts.map +1 -0
  883. package/dist/@codegen/kvault/instructions/updateGlobalConfig.js +63 -0
  884. package/dist/@codegen/kvault/instructions/updateGlobalConfig.js.map +1 -0
  885. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.d.ts +8 -0
  886. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.d.ts.map +1 -0
  887. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.js +21 -0
  888. package/dist/@codegen/kvault/instructions/updateGlobalConfigAdmin.js.map +1 -0
  889. package/dist/@codegen/kvault/instructions/updateReserveAllocation.d.ts +22 -0
  890. package/dist/@codegen/kvault/instructions/updateReserveAllocation.d.ts.map +1 -0
  891. package/dist/@codegen/kvault/instructions/updateReserveAllocation.js +72 -0
  892. package/dist/@codegen/kvault/instructions/updateReserveAllocation.js.map +1 -0
  893. package/dist/@codegen/kvault/instructions/updateSharesMetadata.d.ts +17 -0
  894. package/dist/@codegen/kvault/instructions/updateSharesMetadata.d.ts.map +1 -0
  895. package/dist/@codegen/kvault/instructions/updateSharesMetadata.js +71 -0
  896. package/dist/@codegen/kvault/instructions/updateSharesMetadata.js.map +1 -0
  897. package/dist/@codegen/kvault/instructions/updateVaultConfig.d.ts +16 -0
  898. package/dist/@codegen/kvault/instructions/updateVaultConfig.d.ts.map +1 -0
  899. package/dist/@codegen/kvault/instructions/updateVaultConfig.js +63 -0
  900. package/dist/@codegen/kvault/instructions/updateVaultConfig.js.map +1 -0
  901. package/dist/@codegen/kvault/instructions/withdraw.d.ts +40 -0
  902. package/dist/@codegen/kvault/instructions/withdraw.d.ts.map +1 -0
  903. package/dist/@codegen/kvault/instructions/withdraw.js +98 -0
  904. package/dist/@codegen/kvault/instructions/withdraw.js.map +1 -0
  905. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.d.ts +25 -0
  906. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.d.ts.map +1 -0
  907. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.js +70 -0
  908. package/dist/@codegen/kvault/instructions/withdrawFromAvailable.js.map +1 -0
  909. package/dist/@codegen/kvault/instructions/withdrawPendingFees.d.ts +23 -0
  910. package/dist/@codegen/kvault/instructions/withdrawPendingFees.d.ts.map +1 -0
  911. package/dist/@codegen/kvault/instructions/withdrawPendingFees.js +37 -0
  912. package/dist/@codegen/kvault/instructions/withdrawPendingFees.js.map +1 -0
  913. package/dist/@codegen/kvault/programId.d.ts +4 -0
  914. package/dist/@codegen/kvault/programId.d.ts.map +1 -0
  915. package/dist/@codegen/kvault/programId.js +9 -0
  916. package/dist/@codegen/kvault/programId.js.map +1 -0
  917. package/dist/@codegen/kvault/types/BigFractionBytes.d.ts +28 -0
  918. package/dist/@codegen/kvault/types/BigFractionBytes.d.ts.map +1 -0
  919. package/dist/@codegen/kvault/types/BigFractionBytes.js +85 -0
  920. package/dist/@codegen/kvault/types/BigFractionBytes.js.map +1 -0
  921. package/dist/@codegen/kvault/types/BorrowRateCurve.d.ts +28 -0
  922. package/dist/@codegen/kvault/types/BorrowRateCurve.d.ts.map +1 -0
  923. package/dist/@codegen/kvault/types/BorrowRateCurve.js +73 -0
  924. package/dist/@codegen/kvault/types/BorrowRateCurve.js.map +1 -0
  925. package/dist/@codegen/kvault/types/CurvePoint.d.ts +27 -0
  926. package/dist/@codegen/kvault/types/CurvePoint.d.ts.map +1 -0
  927. package/dist/@codegen/kvault/types/CurvePoint.js +78 -0
  928. package/dist/@codegen/kvault/types/CurvePoint.js.map +1 -0
  929. package/dist/@codegen/kvault/types/LastUpdate.d.ts +48 -0
  930. package/dist/@codegen/kvault/types/LastUpdate.d.ts.map +1 -0
  931. package/dist/@codegen/kvault/types/LastUpdate.js +103 -0
  932. package/dist/@codegen/kvault/types/LastUpdate.js.map +1 -0
  933. package/dist/@codegen/kvault/types/PriceHeuristic.d.ts +42 -0
  934. package/dist/@codegen/kvault/types/PriceHeuristic.d.ts.map +1 -0
  935. package/dist/@codegen/kvault/types/PriceHeuristic.js +91 -0
  936. package/dist/@codegen/kvault/types/PriceHeuristic.js.map +1 -0
  937. package/dist/@codegen/kvault/types/PythConfiguration.d.ts +26 -0
  938. package/dist/@codegen/kvault/types/PythConfiguration.d.ts.map +1 -0
  939. package/dist/@codegen/kvault/types/PythConfiguration.js +75 -0
  940. package/dist/@codegen/kvault/types/PythConfiguration.js.map +1 -0
  941. package/dist/@codegen/kvault/types/ReserveCollateral.d.ts +54 -0
  942. package/dist/@codegen/kvault/types/ReserveCollateral.d.ts.map +1 -0
  943. package/dist/@codegen/kvault/types/ReserveCollateral.js +112 -0
  944. package/dist/@codegen/kvault/types/ReserveCollateral.js.map +1 -0
  945. package/dist/@codegen/kvault/types/ReserveConfig.d.ts +472 -0
  946. package/dist/@codegen/kvault/types/ReserveConfig.d.ts.map +1 -0
  947. package/dist/@codegen/kvault/types/ReserveConfig.js +377 -0
  948. package/dist/@codegen/kvault/types/ReserveConfig.js.map +1 -0
  949. package/dist/@codegen/kvault/types/ReserveFees.d.ts +79 -0
  950. package/dist/@codegen/kvault/types/ReserveFees.d.ts.map +1 -0
  951. package/dist/@codegen/kvault/types/ReserveFees.js +112 -0
  952. package/dist/@codegen/kvault/types/ReserveFees.js.map +1 -0
  953. package/dist/@codegen/kvault/types/ReserveLiquidity.d.ts +182 -0
  954. package/dist/@codegen/kvault/types/ReserveLiquidity.d.ts.map +1 -0
  955. package/dist/@codegen/kvault/types/ReserveLiquidity.js +225 -0
  956. package/dist/@codegen/kvault/types/ReserveLiquidity.js.map +1 -0
  957. package/dist/@codegen/kvault/types/ScopeConfiguration.d.ts +42 -0
  958. package/dist/@codegen/kvault/types/ScopeConfiguration.d.ts.map +1 -0
  959. package/dist/@codegen/kvault/types/ScopeConfiguration.js +93 -0
  960. package/dist/@codegen/kvault/types/ScopeConfiguration.js.map +1 -0
  961. package/dist/@codegen/kvault/types/SwitchboardConfiguration.d.ts +31 -0
  962. package/dist/@codegen/kvault/types/SwitchboardConfiguration.d.ts.map +1 -0
  963. package/dist/@codegen/kvault/types/SwitchboardConfiguration.js +81 -0
  964. package/dist/@codegen/kvault/types/SwitchboardConfiguration.js.map +1 -0
  965. package/dist/@codegen/kvault/types/TokenInfo.d.ts +118 -0
  966. package/dist/@codegen/kvault/types/TokenInfo.d.ts.map +1 -0
  967. package/dist/@codegen/kvault/types/TokenInfo.js +161 -0
  968. package/dist/@codegen/kvault/types/TokenInfo.js.map +1 -0
  969. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.d.ts +68 -0
  970. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.d.ts.map +1 -0
  971. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.js +162 -0
  972. package/dist/@codegen/kvault/types/UpdateGlobalConfigMode.js.map +1 -0
  973. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.d.ts +46 -0
  974. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.d.ts.map +1 -0
  975. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.js +124 -0
  976. package/dist/@codegen/kvault/types/UpdateReserveWhitelistMode.js.map +1 -0
  977. package/dist/@codegen/kvault/types/VaultAllocation.d.ts +72 -0
  978. package/dist/@codegen/kvault/types/VaultAllocation.d.ts.map +1 -0
  979. package/dist/@codegen/kvault/types/VaultAllocation.js +144 -0
  980. package/dist/@codegen/kvault/types/VaultAllocation.js.map +1 -0
  981. package/dist/@codegen/kvault/types/VaultConfigField.d.ts +253 -0
  982. package/dist/@codegen/kvault/types/VaultConfigField.d.ts.map +1 -0
  983. package/dist/@codegen/kvault/types/VaultConfigField.js +516 -0
  984. package/dist/@codegen/kvault/types/VaultConfigField.js.map +1 -0
  985. package/dist/@codegen/kvault/types/WithdrawalCaps.d.ts +39 -0
  986. package/dist/@codegen/kvault/types/WithdrawalCaps.d.ts.map +1 -0
  987. package/dist/@codegen/kvault/types/WithdrawalCaps.js +100 -0
  988. package/dist/@codegen/kvault/types/WithdrawalCaps.js.map +1 -0
  989. package/dist/@codegen/kvault/types/index.d.ts +43 -0
  990. package/dist/@codegen/kvault/types/index.d.ts.map +1 -0
  991. package/dist/@codegen/kvault/types/index.js +73 -0
  992. package/dist/@codegen/kvault/types/index.js.map +1 -0
  993. package/dist/@codegen/kvault/utils/borshAddress.d.ts +4 -0
  994. package/dist/@codegen/kvault/utils/borshAddress.d.ts.map +1 -0
  995. package/dist/@codegen/kvault/utils/borshAddress.js +30 -0
  996. package/dist/@codegen/kvault/utils/borshAddress.js.map +1 -0
  997. package/dist/@codegen/kvault/utils/index.d.ts +2 -0
  998. package/dist/@codegen/kvault/utils/index.d.ts.map +1 -0
  999. package/dist/@codegen/kvault/utils/index.js +18 -0
  1000. package/dist/@codegen/kvault/utils/index.js.map +1 -0
  1001. package/dist/@codegen/pyth_rec/accounts/Config.d.ts +36 -0
  1002. package/dist/@codegen/pyth_rec/accounts/Config.d.ts.map +1 -0
  1003. package/dist/@codegen/pyth_rec/accounts/Config.js +134 -0
  1004. package/dist/@codegen/pyth_rec/accounts/Config.js.map +1 -0
  1005. package/dist/@codegen/pyth_rec/accounts/index.d.ts +7 -0
  1006. package/dist/@codegen/pyth_rec/accounts/index.d.ts.map +1 -0
  1007. package/dist/@codegen/pyth_rec/accounts/index.js +10 -0
  1008. package/dist/@codegen/pyth_rec/accounts/index.js.map +1 -0
  1009. package/dist/@codegen/pyth_rec/accounts/priceUpdateV2.d.ts +30 -0
  1010. package/dist/@codegen/pyth_rec/accounts/priceUpdateV2.d.ts.map +1 -0
  1011. package/dist/@codegen/pyth_rec/accounts/priceUpdateV2.js +120 -0
  1012. package/dist/@codegen/pyth_rec/accounts/priceUpdateV2.js.map +1 -0
  1013. package/dist/@codegen/pyth_rec/accounts/twapUpdate.d.ts +23 -0
  1014. package/dist/@codegen/pyth_rec/accounts/twapUpdate.d.ts.map +1 -0
  1015. package/dist/@codegen/pyth_rec/accounts/twapUpdate.js +103 -0
  1016. package/dist/@codegen/pyth_rec/accounts/twapUpdate.js.map +1 -0
  1017. package/dist/@codegen/pyth_rec/errors/anchor.d.ts +435 -0
  1018. package/dist/@codegen/pyth_rec/errors/anchor.d.ts.map +1 -0
  1019. package/dist/@codegen/pyth_rec/errors/anchor.js +767 -0
  1020. package/dist/@codegen/pyth_rec/errors/anchor.js.map +1 -0
  1021. package/dist/@codegen/pyth_rec/errors/custom.d.ts +179 -0
  1022. package/dist/@codegen/pyth_rec/errors/custom.d.ts.map +1 -0
  1023. package/dist/@codegen/pyth_rec/errors/custom.js +318 -0
  1024. package/dist/@codegen/pyth_rec/errors/custom.js.map +1 -0
  1025. package/dist/@codegen/pyth_rec/errors/index.d.ts +6 -0
  1026. package/dist/@codegen/pyth_rec/errors/index.d.ts.map +1 -0
  1027. package/dist/@codegen/pyth_rec/errors/index.js +86 -0
  1028. package/dist/@codegen/pyth_rec/errors/index.js.map +1 -0
  1029. package/dist/@codegen/pyth_rec/instructions/acceptGovernanceAuthorityTransfer.d.ts +8 -0
  1030. package/dist/@codegen/pyth_rec/instructions/acceptGovernanceAuthorityTransfer.d.ts.map +1 -0
  1031. package/dist/@codegen/pyth_rec/instructions/acceptGovernanceAuthorityTransfer.js +17 -0
  1032. package/dist/@codegen/pyth_rec/instructions/acceptGovernanceAuthorityTransfer.js.map +1 -0
  1033. package/dist/@codegen/pyth_rec/instructions/index.d.ts +17 -0
  1034. package/dist/@codegen/pyth_rec/instructions/index.d.ts.map +1 -0
  1035. package/dist/@codegen/pyth_rec/instructions/index.js +20 -0
  1036. package/dist/@codegen/pyth_rec/instructions/index.js.map +1 -0
  1037. package/dist/@codegen/pyth_rec/instructions/reclaimRent.d.ts +8 -0
  1038. package/dist/@codegen/pyth_rec/instructions/reclaimRent.d.ts.map +1 -0
  1039. package/dist/@codegen/pyth_rec/instructions/reclaimRent.js +17 -0
  1040. package/dist/@codegen/pyth_rec/instructions/reclaimRent.js.map +1 -0
  1041. package/dist/@codegen/pyth_rec/instructions/reclaimTwapRent.d.ts +8 -0
  1042. package/dist/@codegen/pyth_rec/instructions/reclaimTwapRent.d.ts.map +1 -0
  1043. package/dist/@codegen/pyth_rec/instructions/reclaimTwapRent.js +17 -0
  1044. package/dist/@codegen/pyth_rec/instructions/reclaimTwapRent.js.map +1 -0
  1045. package/dist/@codegen/pyth_rec/instructions/requestGovernanceAuthorityTransfer.d.ts +12 -0
  1046. package/dist/@codegen/pyth_rec/instructions/requestGovernanceAuthorityTransfer.d.ts.map +1 -0
  1047. package/dist/@codegen/pyth_rec/instructions/requestGovernanceAuthorityTransfer.js +59 -0
  1048. package/dist/@codegen/pyth_rec/instructions/requestGovernanceAuthorityTransfer.js.map +1 -0
  1049. package/dist/@codegen/pyth_rec/instructions/setDataSources.d.ts +13 -0
  1050. package/dist/@codegen/pyth_rec/instructions/setDataSources.d.ts.map +1 -0
  1051. package/dist/@codegen/pyth_rec/instructions/setDataSources.js +59 -0
  1052. package/dist/@codegen/pyth_rec/instructions/setDataSources.js.map +1 -0
  1053. package/dist/@codegen/pyth_rec/instructions/setFee.d.ts +13 -0
  1054. package/dist/@codegen/pyth_rec/instructions/setFee.d.ts.map +1 -0
  1055. package/dist/@codegen/pyth_rec/instructions/setFee.js +58 -0
  1056. package/dist/@codegen/pyth_rec/instructions/setFee.js.map +1 -0
  1057. package/dist/@codegen/pyth_rec/instructions/setMinimumSignatures.d.ts +12 -0
  1058. package/dist/@codegen/pyth_rec/instructions/setMinimumSignatures.d.ts.map +1 -0
  1059. package/dist/@codegen/pyth_rec/instructions/setMinimumSignatures.js +58 -0
  1060. package/dist/@codegen/pyth_rec/instructions/setMinimumSignatures.js.map +1 -0
  1061. package/dist/@codegen/pyth_rec/instructions/setWormholeAddress.d.ts +12 -0
  1062. package/dist/@codegen/pyth_rec/instructions/setWormholeAddress.d.ts.map +1 -0
  1063. package/dist/@codegen/pyth_rec/instructions/setWormholeAddress.js +61 -0
  1064. package/dist/@codegen/pyth_rec/instructions/setWormholeAddress.js.map +1 -0
  1065. package/dist/@codegen/pyth_rec/programId.d.ts +4 -0
  1066. package/dist/@codegen/pyth_rec/programId.d.ts.map +1 -0
  1067. package/dist/@codegen/pyth_rec/programId.js +9 -0
  1068. package/dist/@codegen/pyth_rec/programId.js.map +1 -0
  1069. package/dist/@codegen/pyth_rec/types/DataSource.d.ts +28 -0
  1070. package/dist/@codegen/pyth_rec/types/DataSource.d.ts.map +1 -0
  1071. package/dist/@codegen/pyth_rec/types/DataSource.js +80 -0
  1072. package/dist/@codegen/pyth_rec/types/DataSource.js.map +1 -0
  1073. package/dist/@codegen/pyth_rec/types/MerklePriceUpdate.d.ts +27 -0
  1074. package/dist/@codegen/pyth_rec/types/MerklePriceUpdate.d.ts.map +1 -0
  1075. package/dist/@codegen/pyth_rec/types/MerklePriceUpdate.js +78 -0
  1076. package/dist/@codegen/pyth_rec/types/MerklePriceUpdate.js.map +1 -0
  1077. package/dist/@codegen/pyth_rec/types/PostTwapUpdateParams.d.ts +44 -0
  1078. package/dist/@codegen/pyth_rec/types/PostTwapUpdateParams.d.ts.map +1 -0
  1079. package/dist/@codegen/pyth_rec/types/PostTwapUpdateParams.js +93 -0
  1080. package/dist/@codegen/pyth_rec/types/PostTwapUpdateParams.js.map +1 -0
  1081. package/dist/@codegen/pyth_rec/types/PostUpdateAtomicParams.d.ts +38 -0
  1082. package/dist/@codegen/pyth_rec/types/PostUpdateAtomicParams.d.ts.map +1 -0
  1083. package/dist/@codegen/pyth_rec/types/PostUpdateAtomicParams.js +91 -0
  1084. package/dist/@codegen/pyth_rec/types/PostUpdateAtomicParams.js.map +1 -0
  1085. package/dist/@codegen/pyth_rec/types/PostUpdateParams.d.ts +33 -0
  1086. package/dist/@codegen/pyth_rec/types/PostUpdateParams.d.ts.map +1 -0
  1087. package/dist/@codegen/pyth_rec/types/PostUpdateParams.js +84 -0
  1088. package/dist/@codegen/pyth_rec/types/PostUpdateParams.js.map +1 -0
  1089. package/dist/@codegen/pyth_rec/types/PriceFeedMessage.d.ts +58 -0
  1090. package/dist/@codegen/pyth_rec/types/PriceFeedMessage.d.ts.map +1 -0
  1091. package/dist/@codegen/pyth_rec/types/PriceFeedMessage.js +127 -0
  1092. package/dist/@codegen/pyth_rec/types/PriceFeedMessage.js.map +1 -0
  1093. package/dist/@codegen/pyth_rec/types/TwapPrice.d.ts +69 -0
  1094. package/dist/@codegen/pyth_rec/types/TwapPrice.d.ts.map +1 -0
  1095. package/dist/@codegen/pyth_rec/types/TwapPrice.js +128 -0
  1096. package/dist/@codegen/pyth_rec/types/TwapPrice.js.map +1 -0
  1097. package/dist/@codegen/pyth_rec/types/VerificationLevel.d.ts +45 -0
  1098. package/dist/@codegen/pyth_rec/types/VerificationLevel.d.ts.map +1 -0
  1099. package/dist/@codegen/pyth_rec/types/VerificationLevel.js +124 -0
  1100. package/dist/@codegen/pyth_rec/types/VerificationLevel.js.map +1 -0
  1101. package/dist/@codegen/pyth_rec/types/index.d.ts +24 -0
  1102. package/dist/@codegen/pyth_rec/types/index.d.ts.map +1 -0
  1103. package/dist/@codegen/pyth_rec/types/index.js +53 -0
  1104. package/dist/@codegen/pyth_rec/types/index.js.map +1 -0
  1105. package/dist/@codegen/pyth_rec/utils/borshAddress.d.ts +4 -0
  1106. package/dist/@codegen/pyth_rec/utils/borshAddress.d.ts.map +1 -0
  1107. package/dist/@codegen/pyth_rec/utils/borshAddress.js +30 -0
  1108. package/dist/@codegen/pyth_rec/utils/borshAddress.js.map +1 -0
  1109. package/dist/@codegen/pyth_rec/utils/index.d.ts +2 -0
  1110. package/dist/@codegen/pyth_rec/utils/index.d.ts.map +1 -0
  1111. package/dist/@codegen/pyth_rec/utils/index.js +18 -0
  1112. package/dist/@codegen/pyth_rec/utils/index.js.map +1 -0
  1113. package/dist/@codegen/switchboard_v2/accounts/AggregatorAccountData.d.ts +123 -0
  1114. package/dist/@codegen/switchboard_v2/accounts/AggregatorAccountData.d.ts.map +1 -0
  1115. package/dist/@codegen/switchboard_v2/accounts/AggregatorAccountData.js +312 -0
  1116. package/dist/@codegen/switchboard_v2/accounts/AggregatorAccountData.js.map +1 -0
  1117. package/dist/@codegen/switchboard_v2/accounts/BufferRelayerAccountData.d.ts +50 -0
  1118. package/dist/@codegen/switchboard_v2/accounts/BufferRelayerAccountData.d.ts.map +1 -0
  1119. package/dist/@codegen/switchboard_v2/accounts/BufferRelayerAccountData.js +159 -0
  1120. package/dist/@codegen/switchboard_v2/accounts/BufferRelayerAccountData.js.map +1 -0
  1121. package/dist/@codegen/switchboard_v2/accounts/CrankAccountData.d.ts +40 -0
  1122. package/dist/@codegen/switchboard_v2/accounts/CrankAccountData.d.ts.map +1 -0
  1123. package/dist/@codegen/switchboard_v2/accounts/CrankAccountData.js +138 -0
  1124. package/dist/@codegen/switchboard_v2/accounts/CrankAccountData.js.map +1 -0
  1125. package/dist/@codegen/switchboard_v2/accounts/JobAccountData.d.ts +47 -0
  1126. package/dist/@codegen/switchboard_v2/accounts/JobAccountData.d.ts.map +1 -0
  1127. package/dist/@codegen/switchboard_v2/accounts/JobAccountData.js +155 -0
  1128. package/dist/@codegen/switchboard_v2/accounts/JobAccountData.js.map +1 -0
  1129. package/dist/@codegen/switchboard_v2/accounts/LeaseAccountData.d.ts +47 -0
  1130. package/dist/@codegen/switchboard_v2/accounts/LeaseAccountData.d.ts.map +1 -0
  1131. package/dist/@codegen/switchboard_v2/accounts/LeaseAccountData.js +155 -0
  1132. package/dist/@codegen/switchboard_v2/accounts/LeaseAccountData.js.map +1 -0
  1133. package/dist/@codegen/switchboard_v2/accounts/OracleAccountData.d.ts +45 -0
  1134. package/dist/@codegen/switchboard_v2/accounts/OracleAccountData.d.ts.map +1 -0
  1135. package/dist/@codegen/switchboard_v2/accounts/OracleAccountData.js +150 -0
  1136. package/dist/@codegen/switchboard_v2/accounts/OracleAccountData.js.map +1 -0
  1137. package/dist/@codegen/switchboard_v2/accounts/OracleQueueAccountData.d.ts +87 -0
  1138. package/dist/@codegen/switchboard_v2/accounts/OracleQueueAccountData.d.ts.map +1 -0
  1139. package/dist/@codegen/switchboard_v2/accounts/OracleQueueAccountData.js +238 -0
  1140. package/dist/@codegen/switchboard_v2/accounts/OracleQueueAccountData.js.map +1 -0
  1141. package/dist/@codegen/switchboard_v2/accounts/PermissionAccountData.d.ts +35 -0
  1142. package/dist/@codegen/switchboard_v2/accounts/PermissionAccountData.d.ts.map +1 -0
  1143. package/dist/@codegen/switchboard_v2/accounts/PermissionAccountData.js +131 -0
  1144. package/dist/@codegen/switchboard_v2/accounts/PermissionAccountData.js.map +1 -0
  1145. package/dist/@codegen/switchboard_v2/accounts/RealmSpawnRecordAccountData.d.ts +19 -0
  1146. package/dist/@codegen/switchboard_v2/accounts/RealmSpawnRecordAccountData.d.ts.map +1 -0
  1147. package/dist/@codegen/switchboard_v2/accounts/RealmSpawnRecordAccountData.js +93 -0
  1148. package/dist/@codegen/switchboard_v2/accounts/RealmSpawnRecordAccountData.js.map +1 -0
  1149. package/dist/@codegen/switchboard_v2/accounts/SbState.d.ts +31 -0
  1150. package/dist/@codegen/switchboard_v2/accounts/SbState.d.ts.map +1 -0
  1151. package/dist/@codegen/switchboard_v2/accounts/SbState.js +120 -0
  1152. package/dist/@codegen/switchboard_v2/accounts/SbState.js.map +1 -0
  1153. package/dist/@codegen/switchboard_v2/accounts/SlidingResultAccountData.d.ts +26 -0
  1154. package/dist/@codegen/switchboard_v2/accounts/SlidingResultAccountData.d.ts.map +1 -0
  1155. package/dist/@codegen/switchboard_v2/accounts/SlidingResultAccountData.js +108 -0
  1156. package/dist/@codegen/switchboard_v2/accounts/SlidingResultAccountData.js.map +1 -0
  1157. package/dist/@codegen/switchboard_v2/accounts/TaskSpecRecord.d.ts +20 -0
  1158. package/dist/@codegen/switchboard_v2/accounts/TaskSpecRecord.d.ts.map +1 -0
  1159. package/dist/@codegen/switchboard_v2/accounts/TaskSpecRecord.js +96 -0
  1160. package/dist/@codegen/switchboard_v2/accounts/TaskSpecRecord.js.map +1 -0
  1161. package/dist/@codegen/switchboard_v2/accounts/VrfAccountData.d.ts +54 -0
  1162. package/dist/@codegen/switchboard_v2/accounts/VrfAccountData.d.ts.map +1 -0
  1163. package/dist/@codegen/switchboard_v2/accounts/VrfAccountData.js +168 -0
  1164. package/dist/@codegen/switchboard_v2/accounts/VrfAccountData.js.map +1 -0
  1165. package/dist/@codegen/switchboard_v2/accounts/VrfLiteAccountData.d.ts +69 -0
  1166. package/dist/@codegen/switchboard_v2/accounts/VrfLiteAccountData.d.ts.map +1 -0
  1167. package/dist/@codegen/switchboard_v2/accounts/VrfLiteAccountData.js +198 -0
  1168. package/dist/@codegen/switchboard_v2/accounts/VrfLiteAccountData.js.map +1 -0
  1169. package/dist/@codegen/switchboard_v2/accounts/VrfPoolAccountData.d.ts +43 -0
  1170. package/dist/@codegen/switchboard_v2/accounts/VrfPoolAccountData.d.ts.map +1 -0
  1171. package/dist/@codegen/switchboard_v2/accounts/VrfPoolAccountData.js +142 -0
  1172. package/dist/@codegen/switchboard_v2/accounts/VrfPoolAccountData.js.map +1 -0
  1173. package/dist/@codegen/switchboard_v2/accounts/index.d.ts +31 -0
  1174. package/dist/@codegen/switchboard_v2/accounts/index.d.ts.map +1 -0
  1175. package/dist/@codegen/switchboard_v2/accounts/index.js +34 -0
  1176. package/dist/@codegen/switchboard_v2/accounts/index.js.map +1 -0
  1177. package/dist/@codegen/switchboard_v2/errors/anchor.d.ts +435 -0
  1178. package/dist/@codegen/switchboard_v2/errors/anchor.d.ts.map +1 -0
  1179. package/dist/@codegen/switchboard_v2/errors/anchor.js +767 -0
  1180. package/dist/@codegen/switchboard_v2/errors/anchor.js.map +1 -0
  1181. package/dist/@codegen/switchboard_v2/errors/custom.d.ts +801 -0
  1182. package/dist/@codegen/switchboard_v2/errors/custom.d.ts.map +1 -0
  1183. package/dist/@codegen/switchboard_v2/errors/custom.js +1409 -0
  1184. package/dist/@codegen/switchboard_v2/errors/custom.js.map +1 -0
  1185. package/dist/@codegen/switchboard_v2/errors/index.d.ts +6 -0
  1186. package/dist/@codegen/switchboard_v2/errors/index.d.ts.map +1 -0
  1187. package/dist/@codegen/switchboard_v2/errors/index.js +86 -0
  1188. package/dist/@codegen/switchboard_v2/errors/index.js.map +1 -0
  1189. package/dist/@codegen/switchboard_v2/instructions/aggregatorAddJob.d.ts +13 -0
  1190. package/dist/@codegen/switchboard_v2/instructions/aggregatorAddJob.d.ts.map +1 -0
  1191. package/dist/@codegen/switchboard_v2/instructions/aggregatorAddJob.js +63 -0
  1192. package/dist/@codegen/switchboard_v2/instructions/aggregatorAddJob.js.map +1 -0
  1193. package/dist/@codegen/switchboard_v2/instructions/aggregatorInit.d.ts +14 -0
  1194. package/dist/@codegen/switchboard_v2/instructions/aggregatorInit.d.ts.map +1 -0
  1195. package/dist/@codegen/switchboard_v2/instructions/aggregatorInit.js +60 -0
  1196. package/dist/@codegen/switchboard_v2/instructions/aggregatorInit.js.map +1 -0
  1197. package/dist/@codegen/switchboard_v2/instructions/aggregatorLock.d.ts +12 -0
  1198. package/dist/@codegen/switchboard_v2/instructions/aggregatorLock.d.ts.map +1 -0
  1199. package/dist/@codegen/switchboard_v2/instructions/aggregatorLock.js +62 -0
  1200. package/dist/@codegen/switchboard_v2/instructions/aggregatorLock.js.map +1 -0
  1201. package/dist/@codegen/switchboard_v2/instructions/aggregatorOpenRound.d.ts +21 -0
  1202. package/dist/@codegen/switchboard_v2/instructions/aggregatorOpenRound.d.ts.map +1 -0
  1203. package/dist/@codegen/switchboard_v2/instructions/aggregatorOpenRound.js +67 -0
  1204. package/dist/@codegen/switchboard_v2/instructions/aggregatorOpenRound.js.map +1 -0
  1205. package/dist/@codegen/switchboard_v2/instructions/aggregatorRemoveJob.d.ts +13 -0
  1206. package/dist/@codegen/switchboard_v2/instructions/aggregatorRemoveJob.d.ts.map +1 -0
  1207. package/dist/@codegen/switchboard_v2/instructions/aggregatorRemoveJob.js +63 -0
  1208. package/dist/@codegen/switchboard_v2/instructions/aggregatorRemoveJob.js.map +1 -0
  1209. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResult.d.ts +23 -0
  1210. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResult.d.ts.map +1 -0
  1211. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResult.js +73 -0
  1212. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResult.js.map +1 -0
  1213. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResultV2.d.ts +23 -0
  1214. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResultV2.d.ts.map +1 -0
  1215. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResultV2.js +73 -0
  1216. package/dist/@codegen/switchboard_v2/instructions/aggregatorSaveResultV2.js.map +1 -0
  1217. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetAuthority.d.ts +13 -0
  1218. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetAuthority.d.ts.map +1 -0
  1219. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetAuthority.js +63 -0
  1220. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetAuthority.js.map +1 -0
  1221. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetConfig.d.ts +12 -0
  1222. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetConfig.d.ts.map +1 -0
  1223. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetConfig.js +62 -0
  1224. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetConfig.js.map +1 -0
  1225. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetHistoryBuffer.d.ts +13 -0
  1226. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetHistoryBuffer.d.ts.map +1 -0
  1227. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetHistoryBuffer.js +63 -0
  1228. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetHistoryBuffer.js.map +1 -0
  1229. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetQueue.d.ts +13 -0
  1230. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetQueue.d.ts.map +1 -0
  1231. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetQueue.js +63 -0
  1232. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetQueue.js.map +1 -0
  1233. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetResolutionMode.d.ts +15 -0
  1234. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetResolutionMode.d.ts.map +1 -0
  1235. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetResolutionMode.js +65 -0
  1236. package/dist/@codegen/switchboard_v2/instructions/aggregatorSetResolutionMode.js.map +1 -0
  1237. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerInit.d.ts +22 -0
  1238. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerInit.d.ts.map +1 -0
  1239. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerInit.js +68 -0
  1240. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerInit.js.map +1 -0
  1241. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerOpenRound.d.ts +16 -0
  1242. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerOpenRound.d.ts.map +1 -0
  1243. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerOpenRound.js +62 -0
  1244. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerOpenRound.js.map +1 -0
  1245. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerSaveResult.d.ts +21 -0
  1246. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerSaveResult.d.ts.map +1 -0
  1247. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerSaveResult.js +71 -0
  1248. package/dist/@codegen/switchboard_v2/instructions/bufferRelayerSaveResult.js.map +1 -0
  1249. package/dist/@codegen/switchboard_v2/instructions/crankInit.d.ts +15 -0
  1250. package/dist/@codegen/switchboard_v2/instructions/crankInit.d.ts.map +1 -0
  1251. package/dist/@codegen/switchboard_v2/instructions/crankInit.js +59 -0
  1252. package/dist/@codegen/switchboard_v2/instructions/crankInit.js.map +1 -0
  1253. package/dist/@codegen/switchboard_v2/instructions/crankPop.d.ts +19 -0
  1254. package/dist/@codegen/switchboard_v2/instructions/crankPop.d.ts.map +1 -0
  1255. package/dist/@codegen/switchboard_v2/instructions/crankPop.js +63 -0
  1256. package/dist/@codegen/switchboard_v2/instructions/crankPop.js.map +1 -0
  1257. package/dist/@codegen/switchboard_v2/instructions/crankPopV2.d.ts +19 -0
  1258. package/dist/@codegen/switchboard_v2/instructions/crankPopV2.d.ts.map +1 -0
  1259. package/dist/@codegen/switchboard_v2/instructions/crankPopV2.js +63 -0
  1260. package/dist/@codegen/switchboard_v2/instructions/crankPopV2.js.map +1 -0
  1261. package/dist/@codegen/switchboard_v2/instructions/crankPush.d.ts +19 -0
  1262. package/dist/@codegen/switchboard_v2/instructions/crankPush.d.ts.map +1 -0
  1263. package/dist/@codegen/switchboard_v2/instructions/crankPush.js +63 -0
  1264. package/dist/@codegen/switchboard_v2/instructions/crankPush.js.map +1 -0
  1265. package/dist/@codegen/switchboard_v2/instructions/index.d.ts +97 -0
  1266. package/dist/@codegen/switchboard_v2/instructions/index.d.ts.map +1 -0
  1267. package/dist/@codegen/switchboard_v2/instructions/index.js +100 -0
  1268. package/dist/@codegen/switchboard_v2/instructions/index.js.map +1 -0
  1269. package/dist/@codegen/switchboard_v2/instructions/jobInit.d.ts +15 -0
  1270. package/dist/@codegen/switchboard_v2/instructions/jobInit.d.ts.map +1 -0
  1271. package/dist/@codegen/switchboard_v2/instructions/jobInit.js +63 -0
  1272. package/dist/@codegen/switchboard_v2/instructions/jobInit.js.map +1 -0
  1273. package/dist/@codegen/switchboard_v2/instructions/jobSetData.d.ts +12 -0
  1274. package/dist/@codegen/switchboard_v2/instructions/jobSetData.d.ts.map +1 -0
  1275. package/dist/@codegen/switchboard_v2/instructions/jobSetData.js +60 -0
  1276. package/dist/@codegen/switchboard_v2/instructions/jobSetData.js.map +1 -0
  1277. package/dist/@codegen/switchboard_v2/instructions/leaseExtend.d.ts +19 -0
  1278. package/dist/@codegen/switchboard_v2/instructions/leaseExtend.d.ts.map +1 -0
  1279. package/dist/@codegen/switchboard_v2/instructions/leaseExtend.js +63 -0
  1280. package/dist/@codegen/switchboard_v2/instructions/leaseExtend.js.map +1 -0
  1281. package/dist/@codegen/switchboard_v2/instructions/leaseInit.d.ts +21 -0
  1282. package/dist/@codegen/switchboard_v2/instructions/leaseInit.d.ts.map +1 -0
  1283. package/dist/@codegen/switchboard_v2/instructions/leaseInit.js +65 -0
  1284. package/dist/@codegen/switchboard_v2/instructions/leaseInit.js.map +1 -0
  1285. package/dist/@codegen/switchboard_v2/instructions/leaseSetAuthority.d.ts +13 -0
  1286. package/dist/@codegen/switchboard_v2/instructions/leaseSetAuthority.d.ts.map +1 -0
  1287. package/dist/@codegen/switchboard_v2/instructions/leaseSetAuthority.js +63 -0
  1288. package/dist/@codegen/switchboard_v2/instructions/leaseSetAuthority.js.map +1 -0
  1289. package/dist/@codegen/switchboard_v2/instructions/leaseWithdraw.d.ts +19 -0
  1290. package/dist/@codegen/switchboard_v2/instructions/leaseWithdraw.d.ts.map +1 -0
  1291. package/dist/@codegen/switchboard_v2/instructions/leaseWithdraw.js +67 -0
  1292. package/dist/@codegen/switchboard_v2/instructions/leaseWithdraw.js.map +1 -0
  1293. package/dist/@codegen/switchboard_v2/instructions/oracleHeartbeat.d.ts +17 -0
  1294. package/dist/@codegen/switchboard_v2/instructions/oracleHeartbeat.d.ts.map +1 -0
  1295. package/dist/@codegen/switchboard_v2/instructions/oracleHeartbeat.js +67 -0
  1296. package/dist/@codegen/switchboard_v2/instructions/oracleHeartbeat.js.map +1 -0
  1297. package/dist/@codegen/switchboard_v2/instructions/oracleInit.d.ts +17 -0
  1298. package/dist/@codegen/switchboard_v2/instructions/oracleInit.d.ts.map +1 -0
  1299. package/dist/@codegen/switchboard_v2/instructions/oracleInit.js +61 -0
  1300. package/dist/@codegen/switchboard_v2/instructions/oracleInit.js.map +1 -0
  1301. package/dist/@codegen/switchboard_v2/instructions/oracleQueueInit.d.ts +16 -0
  1302. package/dist/@codegen/switchboard_v2/instructions/oracleQueueInit.d.ts.map +1 -0
  1303. package/dist/@codegen/switchboard_v2/instructions/oracleQueueInit.js +66 -0
  1304. package/dist/@codegen/switchboard_v2/instructions/oracleQueueInit.js.map +1 -0
  1305. package/dist/@codegen/switchboard_v2/instructions/oracleQueueSetConfig.d.ts +12 -0
  1306. package/dist/@codegen/switchboard_v2/instructions/oracleQueueSetConfig.d.ts.map +1 -0
  1307. package/dist/@codegen/switchboard_v2/instructions/oracleQueueSetConfig.js +62 -0
  1308. package/dist/@codegen/switchboard_v2/instructions/oracleQueueSetConfig.js.map +1 -0
  1309. package/dist/@codegen/switchboard_v2/instructions/oracleWithdraw.d.ts +20 -0
  1310. package/dist/@codegen/switchboard_v2/instructions/oracleWithdraw.d.ts.map +1 -0
  1311. package/dist/@codegen/switchboard_v2/instructions/oracleWithdraw.js +70 -0
  1312. package/dist/@codegen/switchboard_v2/instructions/oracleWithdraw.js.map +1 -0
  1313. package/dist/@codegen/switchboard_v2/instructions/permissionInit.d.ts +16 -0
  1314. package/dist/@codegen/switchboard_v2/instructions/permissionInit.d.ts.map +1 -0
  1315. package/dist/@codegen/switchboard_v2/instructions/permissionInit.js +62 -0
  1316. package/dist/@codegen/switchboard_v2/instructions/permissionInit.js.map +1 -0
  1317. package/dist/@codegen/switchboard_v2/instructions/permissionSet.d.ts +12 -0
  1318. package/dist/@codegen/switchboard_v2/instructions/permissionSet.d.ts.map +1 -0
  1319. package/dist/@codegen/switchboard_v2/instructions/permissionSet.js +60 -0
  1320. package/dist/@codegen/switchboard_v2/instructions/permissionSet.js.map +1 -0
  1321. package/dist/@codegen/switchboard_v2/instructions/programConfig.d.ts +13 -0
  1322. package/dist/@codegen/switchboard_v2/instructions/programConfig.d.ts.map +1 -0
  1323. package/dist/@codegen/switchboard_v2/instructions/programConfig.js +61 -0
  1324. package/dist/@codegen/switchboard_v2/instructions/programConfig.js.map +1 -0
  1325. package/dist/@codegen/switchboard_v2/instructions/programInit.d.ts +18 -0
  1326. package/dist/@codegen/switchboard_v2/instructions/programInit.d.ts.map +1 -0
  1327. package/dist/@codegen/switchboard_v2/instructions/programInit.js +62 -0
  1328. package/dist/@codegen/switchboard_v2/instructions/programInit.js.map +1 -0
  1329. package/dist/@codegen/switchboard_v2/instructions/vaultTransfer.d.ts +15 -0
  1330. package/dist/@codegen/switchboard_v2/instructions/vaultTransfer.d.ts.map +1 -0
  1331. package/dist/@codegen/switchboard_v2/instructions/vaultTransfer.js +63 -0
  1332. package/dist/@codegen/switchboard_v2/instructions/vaultTransfer.js.map +1 -0
  1333. package/dist/@codegen/switchboard_v2/instructions/vrfCloseAction.d.ts +20 -0
  1334. package/dist/@codegen/switchboard_v2/instructions/vrfCloseAction.d.ts.map +1 -0
  1335. package/dist/@codegen/switchboard_v2/instructions/vrfCloseAction.js +68 -0
  1336. package/dist/@codegen/switchboard_v2/instructions/vrfCloseAction.js.map +1 -0
  1337. package/dist/@codegen/switchboard_v2/instructions/vrfInit.d.ts +16 -0
  1338. package/dist/@codegen/switchboard_v2/instructions/vrfInit.d.ts.map +1 -0
  1339. package/dist/@codegen/switchboard_v2/instructions/vrfInit.js +60 -0
  1340. package/dist/@codegen/switchboard_v2/instructions/vrfInit.js.map +1 -0
  1341. package/dist/@codegen/switchboard_v2/instructions/vrfLiteCloseAction.d.ts +20 -0
  1342. package/dist/@codegen/switchboard_v2/instructions/vrfLiteCloseAction.d.ts.map +1 -0
  1343. package/dist/@codegen/switchboard_v2/instructions/vrfLiteCloseAction.js +68 -0
  1344. package/dist/@codegen/switchboard_v2/instructions/vrfLiteCloseAction.js.map +1 -0
  1345. package/dist/@codegen/switchboard_v2/instructions/vrfLiteInit.d.ts +23 -0
  1346. package/dist/@codegen/switchboard_v2/instructions/vrfLiteInit.d.ts.map +1 -0
  1347. package/dist/@codegen/switchboard_v2/instructions/vrfLiteInit.js +67 -0
  1348. package/dist/@codegen/switchboard_v2/instructions/vrfLiteInit.js.map +1 -0
  1349. package/dist/@codegen/switchboard_v2/instructions/vrfLiteProveAndVerify.d.ts +19 -0
  1350. package/dist/@codegen/switchboard_v2/instructions/vrfLiteProveAndVerify.d.ts.map +1 -0
  1351. package/dist/@codegen/switchboard_v2/instructions/vrfLiteProveAndVerify.js +69 -0
  1352. package/dist/@codegen/switchboard_v2/instructions/vrfLiteProveAndVerify.js.map +1 -0
  1353. package/dist/@codegen/switchboard_v2/instructions/vrfLiteRequestRandomness.d.ts +20 -0
  1354. package/dist/@codegen/switchboard_v2/instructions/vrfLiteRequestRandomness.d.ts.map +1 -0
  1355. package/dist/@codegen/switchboard_v2/instructions/vrfLiteRequestRandomness.js +70 -0
  1356. package/dist/@codegen/switchboard_v2/instructions/vrfLiteRequestRandomness.js.map +1 -0
  1357. package/dist/@codegen/switchboard_v2/instructions/vrfPoolAdd.d.ts +15 -0
  1358. package/dist/@codegen/switchboard_v2/instructions/vrfPoolAdd.d.ts.map +1 -0
  1359. package/dist/@codegen/switchboard_v2/instructions/vrfPoolAdd.js +59 -0
  1360. package/dist/@codegen/switchboard_v2/instructions/vrfPoolAdd.js.map +1 -0
  1361. package/dist/@codegen/switchboard_v2/instructions/vrfPoolInit.d.ts +21 -0
  1362. package/dist/@codegen/switchboard_v2/instructions/vrfPoolInit.d.ts.map +1 -0
  1363. package/dist/@codegen/switchboard_v2/instructions/vrfPoolInit.js +65 -0
  1364. package/dist/@codegen/switchboard_v2/instructions/vrfPoolInit.js.map +1 -0
  1365. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRemove.d.ts +13 -0
  1366. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRemove.d.ts.map +1 -0
  1367. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRemove.js +61 -0
  1368. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRemove.js.map +1 -0
  1369. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRequest.d.ts +20 -0
  1370. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRequest.d.ts.map +1 -0
  1371. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRequest.js +70 -0
  1372. package/dist/@codegen/switchboard_v2/instructions/vrfPoolRequest.js.map +1 -0
  1373. package/dist/@codegen/switchboard_v2/instructions/vrfProveAndVerify.d.ts +19 -0
  1374. package/dist/@codegen/switchboard_v2/instructions/vrfProveAndVerify.d.ts.map +1 -0
  1375. package/dist/@codegen/switchboard_v2/instructions/vrfProveAndVerify.js +69 -0
  1376. package/dist/@codegen/switchboard_v2/instructions/vrfProveAndVerify.js.map +1 -0
  1377. package/dist/@codegen/switchboard_v2/instructions/vrfRequestRandomness.d.ts +22 -0
  1378. package/dist/@codegen/switchboard_v2/instructions/vrfRequestRandomness.d.ts.map +1 -0
  1379. package/dist/@codegen/switchboard_v2/instructions/vrfRequestRandomness.js +76 -0
  1380. package/dist/@codegen/switchboard_v2/instructions/vrfRequestRandomness.js.map +1 -0
  1381. package/dist/@codegen/switchboard_v2/instructions/vrfSetCallback.d.ts +12 -0
  1382. package/dist/@codegen/switchboard_v2/instructions/vrfSetCallback.d.ts.map +1 -0
  1383. package/dist/@codegen/switchboard_v2/instructions/vrfSetCallback.js +62 -0
  1384. package/dist/@codegen/switchboard_v2/instructions/vrfSetCallback.js.map +1 -0
  1385. package/dist/@codegen/switchboard_v2/programId.d.ts +4 -0
  1386. package/dist/@codegen/switchboard_v2/programId.d.ts.map +1 -0
  1387. package/dist/@codegen/switchboard_v2/programId.js +9 -0
  1388. package/dist/@codegen/switchboard_v2/programId.js.map +1 -0
  1389. package/dist/@codegen/switchboard_v2/types/AccountMetaBorsh.d.ts +33 -0
  1390. package/dist/@codegen/switchboard_v2/types/AccountMetaBorsh.d.ts.map +1 -0
  1391. package/dist/@codegen/switchboard_v2/types/AccountMetaBorsh.js +90 -0
  1392. package/dist/@codegen/switchboard_v2/types/AccountMetaBorsh.js.map +1 -0
  1393. package/dist/@codegen/switchboard_v2/types/AccountMetaZC.d.ts +33 -0
  1394. package/dist/@codegen/switchboard_v2/types/AccountMetaZC.d.ts.map +1 -0
  1395. package/dist/@codegen/switchboard_v2/types/AccountMetaZC.js +90 -0
  1396. package/dist/@codegen/switchboard_v2/types/AccountMetaZC.js.map +1 -0
  1397. package/dist/@codegen/switchboard_v2/types/AggregatorAddJobParams.d.ts +22 -0
  1398. package/dist/@codegen/switchboard_v2/types/AggregatorAddJobParams.d.ts.map +1 -0
  1399. package/dist/@codegen/switchboard_v2/types/AggregatorAddJobParams.js +72 -0
  1400. package/dist/@codegen/switchboard_v2/types/AggregatorAddJobParams.js.map +1 -0
  1401. package/dist/@codegen/switchboard_v2/types/AggregatorHistoryRow.d.ts +34 -0
  1402. package/dist/@codegen/switchboard_v2/types/AggregatorHistoryRow.d.ts.map +1 -0
  1403. package/dist/@codegen/switchboard_v2/types/AggregatorHistoryRow.js +83 -0
  1404. package/dist/@codegen/switchboard_v2/types/AggregatorHistoryRow.js.map +1 -0
  1405. package/dist/@codegen/switchboard_v2/types/AggregatorInitParams.d.ts +84 -0
  1406. package/dist/@codegen/switchboard_v2/types/AggregatorInitParams.d.ts.map +1 -0
  1407. package/dist/@codegen/switchboard_v2/types/AggregatorInitParams.js +158 -0
  1408. package/dist/@codegen/switchboard_v2/types/AggregatorInitParams.js.map +1 -0
  1409. package/dist/@codegen/switchboard_v2/types/AggregatorLockParams.d.ts +15 -0
  1410. package/dist/@codegen/switchboard_v2/types/AggregatorLockParams.d.ts.map +1 -0
  1411. package/dist/@codegen/switchboard_v2/types/AggregatorLockParams.js +61 -0
  1412. package/dist/@codegen/switchboard_v2/types/AggregatorLockParams.js.map +1 -0
  1413. package/dist/@codegen/switchboard_v2/types/AggregatorOpenRoundParams.d.ts +37 -0
  1414. package/dist/@codegen/switchboard_v2/types/AggregatorOpenRoundParams.d.ts.map +1 -0
  1415. package/dist/@codegen/switchboard_v2/types/AggregatorOpenRoundParams.js +95 -0
  1416. package/dist/@codegen/switchboard_v2/types/AggregatorOpenRoundParams.js.map +1 -0
  1417. package/dist/@codegen/switchboard_v2/types/AggregatorRemoveJobParams.d.ts +22 -0
  1418. package/dist/@codegen/switchboard_v2/types/AggregatorRemoveJobParams.d.ts.map +1 -0
  1419. package/dist/@codegen/switchboard_v2/types/AggregatorRemoveJobParams.js +72 -0
  1420. package/dist/@codegen/switchboard_v2/types/AggregatorRemoveJobParams.js.map +1 -0
  1421. package/dist/@codegen/switchboard_v2/types/AggregatorResolutionMode.d.ts +32 -0
  1422. package/dist/@codegen/switchboard_v2/types/AggregatorResolutionMode.d.ts.map +1 -0
  1423. package/dist/@codegen/switchboard_v2/types/AggregatorResolutionMode.js +108 -0
  1424. package/dist/@codegen/switchboard_v2/types/AggregatorResolutionMode.js.map +1 -0
  1425. package/dist/@codegen/switchboard_v2/types/AggregatorRound.d.ts +119 -0
  1426. package/dist/@codegen/switchboard_v2/types/AggregatorRound.d.ts.map +1 -0
  1427. package/dist/@codegen/switchboard_v2/types/AggregatorRound.js +172 -0
  1428. package/dist/@codegen/switchboard_v2/types/AggregatorRound.js.map +1 -0
  1429. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParams.d.ts +86 -0
  1430. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParams.d.ts.map +1 -0
  1431. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParams.js +138 -0
  1432. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParams.js.map +1 -0
  1433. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParamsV2.d.ts +97 -0
  1434. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParamsV2.d.ts.map +1 -0
  1435. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParamsV2.js +145 -0
  1436. package/dist/@codegen/switchboard_v2/types/AggregatorSaveResultParamsV2.js.map +1 -0
  1437. package/dist/@codegen/switchboard_v2/types/AggregatorSetAuthorityParams.d.ts +15 -0
  1438. package/dist/@codegen/switchboard_v2/types/AggregatorSetAuthorityParams.d.ts.map +1 -0
  1439. package/dist/@codegen/switchboard_v2/types/AggregatorSetAuthorityParams.js +61 -0
  1440. package/dist/@codegen/switchboard_v2/types/AggregatorSetAuthorityParams.js.map +1 -0
  1441. package/dist/@codegen/switchboard_v2/types/AggregatorSetBatchSizeParams.d.ts +22 -0
  1442. package/dist/@codegen/switchboard_v2/types/AggregatorSetBatchSizeParams.d.ts.map +1 -0
  1443. package/dist/@codegen/switchboard_v2/types/AggregatorSetBatchSizeParams.js +72 -0
  1444. package/dist/@codegen/switchboard_v2/types/AggregatorSetBatchSizeParams.js.map +1 -0
  1445. package/dist/@codegen/switchboard_v2/types/AggregatorSetConfigParams.d.ts +84 -0
  1446. package/dist/@codegen/switchboard_v2/types/AggregatorSetConfigParams.d.ts.map +1 -0
  1447. package/dist/@codegen/switchboard_v2/types/AggregatorSetConfigParams.js +161 -0
  1448. package/dist/@codegen/switchboard_v2/types/AggregatorSetConfigParams.js.map +1 -0
  1449. package/dist/@codegen/switchboard_v2/types/AggregatorSetForceReportPeriodParams.d.ts +22 -0
  1450. package/dist/@codegen/switchboard_v2/types/AggregatorSetForceReportPeriodParams.d.ts.map +1 -0
  1451. package/dist/@codegen/switchboard_v2/types/AggregatorSetForceReportPeriodParams.js +72 -0
  1452. package/dist/@codegen/switchboard_v2/types/AggregatorSetForceReportPeriodParams.js.map +1 -0
  1453. package/dist/@codegen/switchboard_v2/types/AggregatorSetHistoryBufferParams.d.ts +15 -0
  1454. package/dist/@codegen/switchboard_v2/types/AggregatorSetHistoryBufferParams.d.ts.map +1 -0
  1455. package/dist/@codegen/switchboard_v2/types/AggregatorSetHistoryBufferParams.js +61 -0
  1456. package/dist/@codegen/switchboard_v2/types/AggregatorSetHistoryBufferParams.js.map +1 -0
  1457. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinJobsParams.d.ts +22 -0
  1458. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinJobsParams.d.ts.map +1 -0
  1459. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinJobsParams.js +72 -0
  1460. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinJobsParams.js.map +1 -0
  1461. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinOraclesParams.d.ts +22 -0
  1462. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinOraclesParams.d.ts.map +1 -0
  1463. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinOraclesParams.js +72 -0
  1464. package/dist/@codegen/switchboard_v2/types/AggregatorSetMinOraclesParams.js.map +1 -0
  1465. package/dist/@codegen/switchboard_v2/types/AggregatorSetQueueParams.d.ts +15 -0
  1466. package/dist/@codegen/switchboard_v2/types/AggregatorSetQueueParams.d.ts.map +1 -0
  1467. package/dist/@codegen/switchboard_v2/types/AggregatorSetQueueParams.js +61 -0
  1468. package/dist/@codegen/switchboard_v2/types/AggregatorSetQueueParams.js.map +1 -0
  1469. package/dist/@codegen/switchboard_v2/types/AggregatorSetResolutionModeParams.d.ts +22 -0
  1470. package/dist/@codegen/switchboard_v2/types/AggregatorSetResolutionModeParams.d.ts.map +1 -0
  1471. package/dist/@codegen/switchboard_v2/types/AggregatorSetResolutionModeParams.js +72 -0
  1472. package/dist/@codegen/switchboard_v2/types/AggregatorSetResolutionModeParams.js.map +1 -0
  1473. package/dist/@codegen/switchboard_v2/types/AggregatorSetUpdateIntervalParams.d.ts +22 -0
  1474. package/dist/@codegen/switchboard_v2/types/AggregatorSetUpdateIntervalParams.d.ts.map +1 -0
  1475. package/dist/@codegen/switchboard_v2/types/AggregatorSetUpdateIntervalParams.js +72 -0
  1476. package/dist/@codegen/switchboard_v2/types/AggregatorSetUpdateIntervalParams.js.map +1 -0
  1477. package/dist/@codegen/switchboard_v2/types/AggregatorSetVarianceThresholdParams.d.ts +29 -0
  1478. package/dist/@codegen/switchboard_v2/types/AggregatorSetVarianceThresholdParams.d.ts.map +1 -0
  1479. package/dist/@codegen/switchboard_v2/types/AggregatorSetVarianceThresholdParams.js +75 -0
  1480. package/dist/@codegen/switchboard_v2/types/AggregatorSetVarianceThresholdParams.js.map +1 -0
  1481. package/dist/@codegen/switchboard_v2/types/BorshDecimal.d.ts +28 -0
  1482. package/dist/@codegen/switchboard_v2/types/BorshDecimal.d.ts.map +1 -0
  1483. package/dist/@codegen/switchboard_v2/types/BorshDecimal.js +82 -0
  1484. package/dist/@codegen/switchboard_v2/types/BorshDecimal.js.map +1 -0
  1485. package/dist/@codegen/switchboard_v2/types/BufferRelayerInitParams.d.ts +32 -0
  1486. package/dist/@codegen/switchboard_v2/types/BufferRelayerInitParams.d.ts.map +1 -0
  1487. package/dist/@codegen/switchboard_v2/types/BufferRelayerInitParams.js +88 -0
  1488. package/dist/@codegen/switchboard_v2/types/BufferRelayerInitParams.js.map +1 -0
  1489. package/dist/@codegen/switchboard_v2/types/BufferRelayerOpenRoundParams.d.ts +27 -0
  1490. package/dist/@codegen/switchboard_v2/types/BufferRelayerOpenRoundParams.d.ts.map +1 -0
  1491. package/dist/@codegen/switchboard_v2/types/BufferRelayerOpenRoundParams.js +78 -0
  1492. package/dist/@codegen/switchboard_v2/types/BufferRelayerOpenRoundParams.js.map +1 -0
  1493. package/dist/@codegen/switchboard_v2/types/BufferRelayerRound.d.ts +44 -0
  1494. package/dist/@codegen/switchboard_v2/types/BufferRelayerRound.d.ts.map +1 -0
  1495. package/dist/@codegen/switchboard_v2/types/BufferRelayerRound.js +108 -0
  1496. package/dist/@codegen/switchboard_v2/types/BufferRelayerRound.js.map +1 -0
  1497. package/dist/@codegen/switchboard_v2/types/BufferRelayerSaveResultParams.d.ts +37 -0
  1498. package/dist/@codegen/switchboard_v2/types/BufferRelayerSaveResultParams.d.ts.map +1 -0
  1499. package/dist/@codegen/switchboard_v2/types/BufferRelayerSaveResultParams.js +95 -0
  1500. package/dist/@codegen/switchboard_v2/types/BufferRelayerSaveResultParams.js.map +1 -0
  1501. package/dist/@codegen/switchboard_v2/types/Callback.d.ts +41 -0
  1502. package/dist/@codegen/switchboard_v2/types/Callback.d.ts.map +1 -0
  1503. package/dist/@codegen/switchboard_v2/types/Callback.js +91 -0
  1504. package/dist/@codegen/switchboard_v2/types/Callback.js.map +1 -0
  1505. package/dist/@codegen/switchboard_v2/types/CallbackZC.d.ts +51 -0
  1506. package/dist/@codegen/switchboard_v2/types/CallbackZC.d.ts.map +1 -0
  1507. package/dist/@codegen/switchboard_v2/types/CallbackZC.js +105 -0
  1508. package/dist/@codegen/switchboard_v2/types/CallbackZC.js.map +1 -0
  1509. package/dist/@codegen/switchboard_v2/types/CompletedPointZC.d.ts +54 -0
  1510. package/dist/@codegen/switchboard_v2/types/CompletedPointZC.d.ts.map +1 -0
  1511. package/dist/@codegen/switchboard_v2/types/CompletedPointZC.js +96 -0
  1512. package/dist/@codegen/switchboard_v2/types/CompletedPointZC.js.map +1 -0
  1513. package/dist/@codegen/switchboard_v2/types/CrankInitParams.d.ts +32 -0
  1514. package/dist/@codegen/switchboard_v2/types/CrankInitParams.d.ts.map +1 -0
  1515. package/dist/@codegen/switchboard_v2/types/CrankInitParams.js +84 -0
  1516. package/dist/@codegen/switchboard_v2/types/CrankInitParams.js.map +1 -0
  1517. package/dist/@codegen/switchboard_v2/types/CrankPopParams.d.ts +42 -0
  1518. package/dist/@codegen/switchboard_v2/types/CrankPopParams.d.ts.map +1 -0
  1519. package/dist/@codegen/switchboard_v2/types/CrankPopParams.js +102 -0
  1520. package/dist/@codegen/switchboard_v2/types/CrankPopParams.js.map +1 -0
  1521. package/dist/@codegen/switchboard_v2/types/CrankPopParamsV2.d.ts +47 -0
  1522. package/dist/@codegen/switchboard_v2/types/CrankPopParamsV2.d.ts.map +1 -0
  1523. package/dist/@codegen/switchboard_v2/types/CrankPopParamsV2.js +109 -0
  1524. package/dist/@codegen/switchboard_v2/types/CrankPopParamsV2.js.map +1 -0
  1525. package/dist/@codegen/switchboard_v2/types/CrankPushParams.d.ts +32 -0
  1526. package/dist/@codegen/switchboard_v2/types/CrankPushParams.d.ts.map +1 -0
  1527. package/dist/@codegen/switchboard_v2/types/CrankPushParams.js +88 -0
  1528. package/dist/@codegen/switchboard_v2/types/CrankPushParams.js.map +1 -0
  1529. package/dist/@codegen/switchboard_v2/types/CrankRow.d.ts +29 -0
  1530. package/dist/@codegen/switchboard_v2/types/CrankRow.d.ts.map +1 -0
  1531. package/dist/@codegen/switchboard_v2/types/CrankRow.js +84 -0
  1532. package/dist/@codegen/switchboard_v2/types/CrankRow.js.map +1 -0
  1533. package/dist/@codegen/switchboard_v2/types/EcvrfIntermediate.d.ts +63 -0
  1534. package/dist/@codegen/switchboard_v2/types/EcvrfIntermediate.d.ts.map +1 -0
  1535. package/dist/@codegen/switchboard_v2/types/EcvrfIntermediate.js +103 -0
  1536. package/dist/@codegen/switchboard_v2/types/EcvrfIntermediate.js.map +1 -0
  1537. package/dist/@codegen/switchboard_v2/types/EcvrfProofZC.d.ts +67 -0
  1538. package/dist/@codegen/switchboard_v2/types/EcvrfProofZC.d.ts.map +1 -0
  1539. package/dist/@codegen/switchboard_v2/types/EcvrfProofZC.js +89 -0
  1540. package/dist/@codegen/switchboard_v2/types/EcvrfProofZC.js.map +1 -0
  1541. package/dist/@codegen/switchboard_v2/types/EdwardsPointZC.d.ts +54 -0
  1542. package/dist/@codegen/switchboard_v2/types/EdwardsPointZC.d.ts.map +1 -0
  1543. package/dist/@codegen/switchboard_v2/types/EdwardsPointZC.js +96 -0
  1544. package/dist/@codegen/switchboard_v2/types/EdwardsPointZC.js.map +1 -0
  1545. package/dist/@codegen/switchboard_v2/types/Error.d.ts +58 -0
  1546. package/dist/@codegen/switchboard_v2/types/Error.d.ts.map +1 -0
  1547. package/dist/@codegen/switchboard_v2/types/Error.js +156 -0
  1548. package/dist/@codegen/switchboard_v2/types/Error.js.map +1 -0
  1549. package/dist/@codegen/switchboard_v2/types/FieldElementZC.d.ts +23 -0
  1550. package/dist/@codegen/switchboard_v2/types/FieldElementZC.d.ts.map +1 -0
  1551. package/dist/@codegen/switchboard_v2/types/FieldElementZC.js +76 -0
  1552. package/dist/@codegen/switchboard_v2/types/FieldElementZC.js.map +1 -0
  1553. package/dist/@codegen/switchboard_v2/types/Hash.d.ts +22 -0
  1554. package/dist/@codegen/switchboard_v2/types/Hash.d.ts.map +1 -0
  1555. package/dist/@codegen/switchboard_v2/types/Hash.js +72 -0
  1556. package/dist/@codegen/switchboard_v2/types/Hash.js.map +1 -0
  1557. package/dist/@codegen/switchboard_v2/types/JobInitParams.d.ts +43 -0
  1558. package/dist/@codegen/switchboard_v2/types/JobInitParams.d.ts.map +1 -0
  1559. package/dist/@codegen/switchboard_v2/types/JobInitParams.js +106 -0
  1560. package/dist/@codegen/switchboard_v2/types/JobInitParams.js.map +1 -0
  1561. package/dist/@codegen/switchboard_v2/types/JobSetDataParams.d.ts +27 -0
  1562. package/dist/@codegen/switchboard_v2/types/JobSetDataParams.d.ts.map +1 -0
  1563. package/dist/@codegen/switchboard_v2/types/JobSetDataParams.js +78 -0
  1564. package/dist/@codegen/switchboard_v2/types/JobSetDataParams.js.map +1 -0
  1565. package/dist/@codegen/switchboard_v2/types/LeaseExtendParams.d.ts +38 -0
  1566. package/dist/@codegen/switchboard_v2/types/LeaseExtendParams.d.ts.map +1 -0
  1567. package/dist/@codegen/switchboard_v2/types/LeaseExtendParams.js +99 -0
  1568. package/dist/@codegen/switchboard_v2/types/LeaseExtendParams.js.map +1 -0
  1569. package/dist/@codegen/switchboard_v2/types/LeaseInitParams.d.ts +44 -0
  1570. package/dist/@codegen/switchboard_v2/types/LeaseInitParams.d.ts.map +1 -0
  1571. package/dist/@codegen/switchboard_v2/types/LeaseInitParams.js +108 -0
  1572. package/dist/@codegen/switchboard_v2/types/LeaseInitParams.js.map +1 -0
  1573. package/dist/@codegen/switchboard_v2/types/LeaseSetAuthorityParams.d.ts +15 -0
  1574. package/dist/@codegen/switchboard_v2/types/LeaseSetAuthorityParams.d.ts.map +1 -0
  1575. package/dist/@codegen/switchboard_v2/types/LeaseSetAuthorityParams.js +61 -0
  1576. package/dist/@codegen/switchboard_v2/types/LeaseSetAuthorityParams.js.map +1 -0
  1577. package/dist/@codegen/switchboard_v2/types/LeaseWithdrawParams.d.ts +33 -0
  1578. package/dist/@codegen/switchboard_v2/types/LeaseWithdrawParams.d.ts.map +1 -0
  1579. package/dist/@codegen/switchboard_v2/types/LeaseWithdrawParams.js +88 -0
  1580. package/dist/@codegen/switchboard_v2/types/LeaseWithdrawParams.js.map +1 -0
  1581. package/dist/@codegen/switchboard_v2/types/OracleHeartbeatParams.d.ts +22 -0
  1582. package/dist/@codegen/switchboard_v2/types/OracleHeartbeatParams.d.ts.map +1 -0
  1583. package/dist/@codegen/switchboard_v2/types/OracleHeartbeatParams.js +72 -0
  1584. package/dist/@codegen/switchboard_v2/types/OracleHeartbeatParams.js.map +1 -0
  1585. package/dist/@codegen/switchboard_v2/types/OracleInitParams.d.ts +37 -0
  1586. package/dist/@codegen/switchboard_v2/types/OracleInitParams.d.ts.map +1 -0
  1587. package/dist/@codegen/switchboard_v2/types/OracleInitParams.js +95 -0
  1588. package/dist/@codegen/switchboard_v2/types/OracleInitParams.js.map +1 -0
  1589. package/dist/@codegen/switchboard_v2/types/OracleMetrics.d.ts +63 -0
  1590. package/dist/@codegen/switchboard_v2/types/OracleMetrics.d.ts.map +1 -0
  1591. package/dist/@codegen/switchboard_v2/types/OracleMetrics.js +134 -0
  1592. package/dist/@codegen/switchboard_v2/types/OracleMetrics.js.map +1 -0
  1593. package/dist/@codegen/switchboard_v2/types/OracleQueueInitParams.d.ts +94 -0
  1594. package/dist/@codegen/switchboard_v2/types/OracleQueueInitParams.d.ts.map +1 -0
  1595. package/dist/@codegen/switchboard_v2/types/OracleQueueInitParams.js +172 -0
  1596. package/dist/@codegen/switchboard_v2/types/OracleQueueInitParams.js.map +1 -0
  1597. package/dist/@codegen/switchboard_v2/types/OracleQueueSetConfigParams.d.ts +84 -0
  1598. package/dist/@codegen/switchboard_v2/types/OracleQueueSetConfigParams.d.ts.map +1 -0
  1599. package/dist/@codegen/switchboard_v2/types/OracleQueueSetConfigParams.js +175 -0
  1600. package/dist/@codegen/switchboard_v2/types/OracleQueueSetConfigParams.js.map +1 -0
  1601. package/dist/@codegen/switchboard_v2/types/OracleQueueSetRewardsParams.d.ts +23 -0
  1602. package/dist/@codegen/switchboard_v2/types/OracleQueueSetRewardsParams.d.ts.map +1 -0
  1603. package/dist/@codegen/switchboard_v2/types/OracleQueueSetRewardsParams.js +76 -0
  1604. package/dist/@codegen/switchboard_v2/types/OracleQueueSetRewardsParams.js.map +1 -0
  1605. package/dist/@codegen/switchboard_v2/types/OracleResponseType.d.ts +58 -0
  1606. package/dist/@codegen/switchboard_v2/types/OracleResponseType.d.ts.map +1 -0
  1607. package/dist/@codegen/switchboard_v2/types/OracleResponseType.js +156 -0
  1608. package/dist/@codegen/switchboard_v2/types/OracleResponseType.js.map +1 -0
  1609. package/dist/@codegen/switchboard_v2/types/OracleWithdrawParams.d.ts +33 -0
  1610. package/dist/@codegen/switchboard_v2/types/OracleWithdrawParams.d.ts.map +1 -0
  1611. package/dist/@codegen/switchboard_v2/types/OracleWithdrawParams.js +88 -0
  1612. package/dist/@codegen/switchboard_v2/types/OracleWithdrawParams.js.map +1 -0
  1613. package/dist/@codegen/switchboard_v2/types/PermissionInitParams.d.ts +15 -0
  1614. package/dist/@codegen/switchboard_v2/types/PermissionInitParams.d.ts.map +1 -0
  1615. package/dist/@codegen/switchboard_v2/types/PermissionInitParams.js +61 -0
  1616. package/dist/@codegen/switchboard_v2/types/PermissionInitParams.js.map +1 -0
  1617. package/dist/@codegen/switchboard_v2/types/PermissionSetParams.d.ts +39 -0
  1618. package/dist/@codegen/switchboard_v2/types/PermissionSetParams.d.ts.map +1 -0
  1619. package/dist/@codegen/switchboard_v2/types/PermissionSetParams.js +79 -0
  1620. package/dist/@codegen/switchboard_v2/types/PermissionSetParams.js.map +1 -0
  1621. package/dist/@codegen/switchboard_v2/types/ProgramConfigParams.d.ts +33 -0
  1622. package/dist/@codegen/switchboard_v2/types/ProgramConfigParams.d.ts.map +1 -0
  1623. package/dist/@codegen/switchboard_v2/types/ProgramConfigParams.js +86 -0
  1624. package/dist/@codegen/switchboard_v2/types/ProgramConfigParams.js.map +1 -0
  1625. package/dist/@codegen/switchboard_v2/types/ProgramInitParams.d.ts +22 -0
  1626. package/dist/@codegen/switchboard_v2/types/ProgramInitParams.d.ts.map +1 -0
  1627. package/dist/@codegen/switchboard_v2/types/ProgramInitParams.js +72 -0
  1628. package/dist/@codegen/switchboard_v2/types/ProgramInitParams.js.map +1 -0
  1629. package/dist/@codegen/switchboard_v2/types/ProjectivePointZC.d.ts +45 -0
  1630. package/dist/@codegen/switchboard_v2/types/ProjectivePointZC.d.ts.map +1 -0
  1631. package/dist/@codegen/switchboard_v2/types/ProjectivePointZC.js +89 -0
  1632. package/dist/@codegen/switchboard_v2/types/ProjectivePointZC.js.map +1 -0
  1633. package/dist/@codegen/switchboard_v2/types/Scalar.d.ts +22 -0
  1634. package/dist/@codegen/switchboard_v2/types/Scalar.d.ts.map +1 -0
  1635. package/dist/@codegen/switchboard_v2/types/Scalar.js +72 -0
  1636. package/dist/@codegen/switchboard_v2/types/Scalar.js.map +1 -0
  1637. package/dist/@codegen/switchboard_v2/types/SlidingWindowElement.d.ts +45 -0
  1638. package/dist/@codegen/switchboard_v2/types/SlidingWindowElement.d.ts.map +1 -0
  1639. package/dist/@codegen/switchboard_v2/types/SlidingWindowElement.js +102 -0
  1640. package/dist/@codegen/switchboard_v2/types/SlidingWindowElement.js.map +1 -0
  1641. package/dist/@codegen/switchboard_v2/types/SwitchboardDecimal.d.ts +28 -0
  1642. package/dist/@codegen/switchboard_v2/types/SwitchboardDecimal.d.ts.map +1 -0
  1643. package/dist/@codegen/switchboard_v2/types/SwitchboardDecimal.js +82 -0
  1644. package/dist/@codegen/switchboard_v2/types/SwitchboardDecimal.js.map +1 -0
  1645. package/dist/@codegen/switchboard_v2/types/SwitchboardPermission.d.ts +45 -0
  1646. package/dist/@codegen/switchboard_v2/types/SwitchboardPermission.d.ts.map +1 -0
  1647. package/dist/@codegen/switchboard_v2/types/SwitchboardPermission.js +132 -0
  1648. package/dist/@codegen/switchboard_v2/types/SwitchboardPermission.js.map +1 -0
  1649. package/dist/@codegen/switchboard_v2/types/VaultTransferParams.d.ts +28 -0
  1650. package/dist/@codegen/switchboard_v2/types/VaultTransferParams.d.ts.map +1 -0
  1651. package/dist/@codegen/switchboard_v2/types/VaultTransferParams.js +82 -0
  1652. package/dist/@codegen/switchboard_v2/types/VaultTransferParams.js.map +1 -0
  1653. package/dist/@codegen/switchboard_v2/types/VrfBuilder.d.ts +661 -0
  1654. package/dist/@codegen/switchboard_v2/types/VrfBuilder.d.ts.map +1 -0
  1655. package/dist/@codegen/switchboard_v2/types/VrfBuilder.js +338 -0
  1656. package/dist/@codegen/switchboard_v2/types/VrfBuilder.js.map +1 -0
  1657. package/dist/@codegen/switchboard_v2/types/VrfCloseParams.d.ts +27 -0
  1658. package/dist/@codegen/switchboard_v2/types/VrfCloseParams.d.ts.map +1 -0
  1659. package/dist/@codegen/switchboard_v2/types/VrfCloseParams.js +78 -0
  1660. package/dist/@codegen/switchboard_v2/types/VrfCloseParams.js.map +1 -0
  1661. package/dist/@codegen/switchboard_v2/types/VrfInitParams.d.ts +44 -0
  1662. package/dist/@codegen/switchboard_v2/types/VrfInitParams.d.ts.map +1 -0
  1663. package/dist/@codegen/switchboard_v2/types/VrfInitParams.js +79 -0
  1664. package/dist/@codegen/switchboard_v2/types/VrfInitParams.js.map +1 -0
  1665. package/dist/@codegen/switchboard_v2/types/VrfLiteCloseParams.d.ts +15 -0
  1666. package/dist/@codegen/switchboard_v2/types/VrfLiteCloseParams.d.ts.map +1 -0
  1667. package/dist/@codegen/switchboard_v2/types/VrfLiteCloseParams.js +61 -0
  1668. package/dist/@codegen/switchboard_v2/types/VrfLiteCloseParams.js.map +1 -0
  1669. package/dist/@codegen/switchboard_v2/types/VrfLiteInitParams.d.ts +50 -0
  1670. package/dist/@codegen/switchboard_v2/types/VrfLiteInitParams.d.ts.map +1 -0
  1671. package/dist/@codegen/switchboard_v2/types/VrfLiteInitParams.js +95 -0
  1672. package/dist/@codegen/switchboard_v2/types/VrfLiteInitParams.js.map +1 -0
  1673. package/dist/@codegen/switchboard_v2/types/VrfLiteProveAndVerifyParams.d.ts +38 -0
  1674. package/dist/@codegen/switchboard_v2/types/VrfLiteProveAndVerifyParams.d.ts.map +1 -0
  1675. package/dist/@codegen/switchboard_v2/types/VrfLiteProveAndVerifyParams.js +99 -0
  1676. package/dist/@codegen/switchboard_v2/types/VrfLiteProveAndVerifyParams.js.map +1 -0
  1677. package/dist/@codegen/switchboard_v2/types/VrfLiteRequestRandomnessParams.d.ts +39 -0
  1678. package/dist/@codegen/switchboard_v2/types/VrfLiteRequestRandomnessParams.d.ts.map +1 -0
  1679. package/dist/@codegen/switchboard_v2/types/VrfLiteRequestRandomnessParams.js +75 -0
  1680. package/dist/@codegen/switchboard_v2/types/VrfLiteRequestRandomnessParams.js.map +1 -0
  1681. package/dist/@codegen/switchboard_v2/types/VrfPoolAddParams.d.ts +15 -0
  1682. package/dist/@codegen/switchboard_v2/types/VrfPoolAddParams.d.ts.map +1 -0
  1683. package/dist/@codegen/switchboard_v2/types/VrfPoolAddParams.js +61 -0
  1684. package/dist/@codegen/switchboard_v2/types/VrfPoolAddParams.js.map +1 -0
  1685. package/dist/@codegen/switchboard_v2/types/VrfPoolInitParams.d.ts +32 -0
  1686. package/dist/@codegen/switchboard_v2/types/VrfPoolInitParams.d.ts.map +1 -0
  1687. package/dist/@codegen/switchboard_v2/types/VrfPoolInitParams.js +84 -0
  1688. package/dist/@codegen/switchboard_v2/types/VrfPoolInitParams.js.map +1 -0
  1689. package/dist/@codegen/switchboard_v2/types/VrfPoolRemoveParams.d.ts +15 -0
  1690. package/dist/@codegen/switchboard_v2/types/VrfPoolRemoveParams.d.ts.map +1 -0
  1691. package/dist/@codegen/switchboard_v2/types/VrfPoolRemoveParams.js +61 -0
  1692. package/dist/@codegen/switchboard_v2/types/VrfPoolRemoveParams.js.map +1 -0
  1693. package/dist/@codegen/switchboard_v2/types/VrfPoolRequestParams.d.ts +39 -0
  1694. package/dist/@codegen/switchboard_v2/types/VrfPoolRequestParams.d.ts.map +1 -0
  1695. package/dist/@codegen/switchboard_v2/types/VrfPoolRequestParams.js +75 -0
  1696. package/dist/@codegen/switchboard_v2/types/VrfPoolRequestParams.js.map +1 -0
  1697. package/dist/@codegen/switchboard_v2/types/VrfPoolRow.d.ts +29 -0
  1698. package/dist/@codegen/switchboard_v2/types/VrfPoolRow.d.ts.map +1 -0
  1699. package/dist/@codegen/switchboard_v2/types/VrfPoolRow.js +84 -0
  1700. package/dist/@codegen/switchboard_v2/types/VrfPoolRow.js.map +1 -0
  1701. package/dist/@codegen/switchboard_v2/types/VrfProveAndVerifyParams.d.ts +48 -0
  1702. package/dist/@codegen/switchboard_v2/types/VrfProveAndVerifyParams.d.ts.map +1 -0
  1703. package/dist/@codegen/switchboard_v2/types/VrfProveAndVerifyParams.js +113 -0
  1704. package/dist/@codegen/switchboard_v2/types/VrfProveAndVerifyParams.js.map +1 -0
  1705. package/dist/@codegen/switchboard_v2/types/VrfProveParams.d.ts +27 -0
  1706. package/dist/@codegen/switchboard_v2/types/VrfProveParams.d.ts.map +1 -0
  1707. package/dist/@codegen/switchboard_v2/types/VrfProveParams.js +78 -0
  1708. package/dist/@codegen/switchboard_v2/types/VrfProveParams.js.map +1 -0
  1709. package/dist/@codegen/switchboard_v2/types/VrfRequestRandomnessParams.d.ts +27 -0
  1710. package/dist/@codegen/switchboard_v2/types/VrfRequestRandomnessParams.d.ts.map +1 -0
  1711. package/dist/@codegen/switchboard_v2/types/VrfRequestRandomnessParams.js +78 -0
  1712. package/dist/@codegen/switchboard_v2/types/VrfRequestRandomnessParams.js.map +1 -0
  1713. package/dist/@codegen/switchboard_v2/types/VrfRound.d.ts +53 -0
  1714. package/dist/@codegen/switchboard_v2/types/VrfRound.d.ts.map +1 -0
  1715. package/dist/@codegen/switchboard_v2/types/VrfRound.js +120 -0
  1716. package/dist/@codegen/switchboard_v2/types/VrfRound.js.map +1 -0
  1717. package/dist/@codegen/switchboard_v2/types/VrfSetCallbackParams.d.ts +39 -0
  1718. package/dist/@codegen/switchboard_v2/types/VrfSetCallbackParams.d.ts.map +1 -0
  1719. package/dist/@codegen/switchboard_v2/types/VrfSetCallbackParams.js +73 -0
  1720. package/dist/@codegen/switchboard_v2/types/VrfSetCallbackParams.js.map +1 -0
  1721. package/dist/@codegen/switchboard_v2/types/VrfStatus.d.ts +84 -0
  1722. package/dist/@codegen/switchboard_v2/types/VrfStatus.d.ts.map +1 -0
  1723. package/dist/@codegen/switchboard_v2/types/VrfStatus.js +204 -0
  1724. package/dist/@codegen/switchboard_v2/types/VrfStatus.js.map +1 -0
  1725. package/dist/@codegen/switchboard_v2/types/index.d.ts +179 -0
  1726. package/dist/@codegen/switchboard_v2/types/index.d.ts.map +1 -0
  1727. package/dist/@codegen/switchboard_v2/types/index.js +207 -0
  1728. package/dist/@codegen/switchboard_v2/types/index.js.map +1 -0
  1729. package/dist/@codegen/switchboard_v2/utils/borshAddress.d.ts +4 -0
  1730. package/dist/@codegen/switchboard_v2/utils/borshAddress.d.ts.map +1 -0
  1731. package/dist/@codegen/switchboard_v2/utils/borshAddress.js +30 -0
  1732. package/dist/@codegen/switchboard_v2/utils/borshAddress.js.map +1 -0
  1733. package/dist/@codegen/switchboard_v2/utils/index.d.ts +2 -0
  1734. package/dist/@codegen/switchboard_v2/utils/index.d.ts.map +1 -0
  1735. package/dist/@codegen/switchboard_v2/utils/index.js +18 -0
  1736. package/dist/@codegen/switchboard_v2/utils/index.js.map +1 -0
  1737. package/dist/@codegen/unstaking_pool/accounts/PoolState.d.ts +53 -0
  1738. package/dist/@codegen/unstaking_pool/accounts/PoolState.d.ts.map +1 -0
  1739. package/dist/@codegen/unstaking_pool/accounts/PoolState.js +167 -0
  1740. package/dist/@codegen/unstaking_pool/accounts/PoolState.js.map +1 -0
  1741. package/dist/@codegen/unstaking_pool/accounts/UnstakeTicket.d.ts +41 -0
  1742. package/dist/@codegen/unstaking_pool/accounts/UnstakeTicket.d.ts.map +1 -0
  1743. package/dist/@codegen/unstaking_pool/accounts/UnstakeTicket.js +143 -0
  1744. package/dist/@codegen/unstaking_pool/accounts/UnstakeTicket.js.map +1 -0
  1745. package/dist/@codegen/unstaking_pool/accounts/index.d.ts +5 -0
  1746. package/dist/@codegen/unstaking_pool/accounts/index.d.ts.map +1 -0
  1747. package/dist/@codegen/unstaking_pool/accounts/index.js +8 -0
  1748. package/dist/@codegen/unstaking_pool/accounts/index.js.map +1 -0
  1749. package/dist/@codegen/unstaking_pool/errors/anchor.d.ts +435 -0
  1750. package/dist/@codegen/unstaking_pool/errors/anchor.d.ts.map +1 -0
  1751. package/dist/@codegen/unstaking_pool/errors/anchor.js +767 -0
  1752. package/dist/@codegen/unstaking_pool/errors/anchor.js.map +1 -0
  1753. package/dist/@codegen/unstaking_pool/errors/custom.d.ts +259 -0
  1754. package/dist/@codegen/unstaking_pool/errors/custom.d.ts.map +1 -0
  1755. package/dist/@codegen/unstaking_pool/errors/custom.js +458 -0
  1756. package/dist/@codegen/unstaking_pool/errors/custom.js.map +1 -0
  1757. package/dist/@codegen/unstaking_pool/errors/index.d.ts +6 -0
  1758. package/dist/@codegen/unstaking_pool/errors/index.d.ts.map +1 -0
  1759. package/dist/@codegen/unstaking_pool/errors/index.js +86 -0
  1760. package/dist/@codegen/unstaking_pool/errors/index.js.map +1 -0
  1761. package/dist/@codegen/unstaking_pool/instructions/burn.d.ts +21 -0
  1762. package/dist/@codegen/unstaking_pool/instructions/burn.d.ts.map +1 -0
  1763. package/dist/@codegen/unstaking_pool/instructions/burn.js +67 -0
  1764. package/dist/@codegen/unstaking_pool/instructions/burn.js.map +1 -0
  1765. package/dist/@codegen/unstaking_pool/instructions/changeTicketAuthority.d.ts +8 -0
  1766. package/dist/@codegen/unstaking_pool/instructions/changeTicketAuthority.d.ts.map +1 -0
  1767. package/dist/@codegen/unstaking_pool/instructions/changeTicketAuthority.js +16 -0
  1768. package/dist/@codegen/unstaking_pool/instructions/changeTicketAuthority.js.map +1 -0
  1769. package/dist/@codegen/unstaking_pool/instructions/collect.d.ts +16 -0
  1770. package/dist/@codegen/unstaking_pool/instructions/collect.d.ts.map +1 -0
  1771. package/dist/@codegen/unstaking_pool/instructions/collect.js +24 -0
  1772. package/dist/@codegen/unstaking_pool/instructions/collect.js.map +1 -0
  1773. package/dist/@codegen/unstaking_pool/instructions/index.d.ts +17 -0
  1774. package/dist/@codegen/unstaking_pool/instructions/index.d.ts.map +1 -0
  1775. package/dist/@codegen/unstaking_pool/instructions/index.js +20 -0
  1776. package/dist/@codegen/unstaking_pool/instructions/index.js.map +1 -0
  1777. package/dist/@codegen/unstaking_pool/instructions/initializePool.d.ts +14 -0
  1778. package/dist/@codegen/unstaking_pool/instructions/initializePool.d.ts.map +1 -0
  1779. package/dist/@codegen/unstaking_pool/instructions/initializePool.js +22 -0
  1780. package/dist/@codegen/unstaking_pool/instructions/initializePool.js.map +1 -0
  1781. package/dist/@codegen/unstaking_pool/instructions/mint.d.ts +24 -0
  1782. package/dist/@codegen/unstaking_pool/instructions/mint.d.ts.map +1 -0
  1783. package/dist/@codegen/unstaking_pool/instructions/mint.js +74 -0
  1784. package/dist/@codegen/unstaking_pool/instructions/mint.js.map +1 -0
  1785. package/dist/@codegen/unstaking_pool/instructions/splitTicket.d.ts +15 -0
  1786. package/dist/@codegen/unstaking_pool/instructions/splitTicket.d.ts.map +1 -0
  1787. package/dist/@codegen/unstaking_pool/instructions/splitTicket.js +62 -0
  1788. package/dist/@codegen/unstaking_pool/instructions/splitTicket.js.map +1 -0
  1789. package/dist/@codegen/unstaking_pool/instructions/updateAdmin.d.ts +7 -0
  1790. package/dist/@codegen/unstaking_pool/instructions/updateAdmin.d.ts.map +1 -0
  1791. package/dist/@codegen/unstaking_pool/instructions/updateAdmin.js +19 -0
  1792. package/dist/@codegen/unstaking_pool/instructions/updateAdmin.js.map +1 -0
  1793. package/dist/@codegen/unstaking_pool/instructions/updatePoolConfig.d.ts +13 -0
  1794. package/dist/@codegen/unstaking_pool/instructions/updatePoolConfig.d.ts.map +1 -0
  1795. package/dist/@codegen/unstaking_pool/instructions/updatePoolConfig.js +60 -0
  1796. package/dist/@codegen/unstaking_pool/instructions/updatePoolConfig.js.map +1 -0
  1797. package/dist/@codegen/unstaking_pool/programId.d.ts +4 -0
  1798. package/dist/@codegen/unstaking_pool/programId.d.ts.map +1 -0
  1799. package/dist/@codegen/unstaking_pool/programId.js +9 -0
  1800. package/dist/@codegen/unstaking_pool/programId.js.map +1 -0
  1801. package/dist/@codegen/unstaking_pool/types/PoolConfigField.d.ts +45 -0
  1802. package/dist/@codegen/unstaking_pool/types/PoolConfigField.d.ts.map +1 -0
  1803. package/dist/@codegen/unstaking_pool/types/PoolConfigField.js +132 -0
  1804. package/dist/@codegen/unstaking_pool/types/PoolConfigField.js.map +1 -0
  1805. package/dist/@codegen/unstaking_pool/types/index.d.ts +5 -0
  1806. package/dist/@codegen/unstaking_pool/types/index.d.ts.map +1 -0
  1807. package/dist/@codegen/unstaking_pool/types/index.js +39 -0
  1808. package/dist/@codegen/unstaking_pool/types/index.js.map +1 -0
  1809. package/dist/@codegen/unstaking_pool/utils/borshAddress.d.ts +4 -0
  1810. package/dist/@codegen/unstaking_pool/utils/borshAddress.d.ts.map +1 -0
  1811. package/dist/@codegen/unstaking_pool/utils/borshAddress.js +30 -0
  1812. package/dist/@codegen/unstaking_pool/utils/borshAddress.js.map +1 -0
  1813. package/dist/@codegen/unstaking_pool/utils/index.d.ts +2 -0
  1814. package/dist/@codegen/unstaking_pool/utils/index.d.ts.map +1 -0
  1815. package/dist/@codegen/unstaking_pool/utils/index.js +18 -0
  1816. package/dist/@codegen/unstaking_pool/utils/index.js.map +1 -0
  1817. package/dist/classes/action.d.ts +211 -0
  1818. package/dist/classes/action.d.ts.map +1 -0
  1819. package/dist/classes/action.js +2230 -0
  1820. package/dist/classes/action.js.map +1 -0
  1821. package/dist/classes/configItems.d.ts +166 -0
  1822. package/dist/classes/configItems.d.ts.map +1 -0
  1823. package/dist/classes/configItems.js +202 -0
  1824. package/dist/classes/configItems.js.map +1 -0
  1825. package/dist/classes/curve.d.ts +16 -0
  1826. package/dist/classes/curve.d.ts.map +1 -0
  1827. package/dist/classes/curve.js +32 -0
  1828. package/dist/classes/curve.js.map +1 -0
  1829. package/dist/classes/farm_utils.d.ts +40 -0
  1830. package/dist/classes/farm_utils.d.ts.map +1 -0
  1831. package/dist/classes/farm_utils.js +170 -0
  1832. package/dist/classes/farm_utils.js.map +1 -0
  1833. package/dist/classes/fraction.d.ts +27 -0
  1834. package/dist/classes/fraction.d.ts.map +1 -0
  1835. package/dist/classes/fraction.js +91 -0
  1836. package/dist/classes/fraction.js.map +1 -0
  1837. package/dist/classes/index.d.ts +19 -0
  1838. package/dist/classes/index.d.ts.map +1 -0
  1839. package/dist/classes/index.js +35 -0
  1840. package/dist/classes/index.js.map +1 -0
  1841. package/dist/classes/jupiterPerps.d.ts +3 -0
  1842. package/dist/classes/jupiterPerps.d.ts.map +1 -0
  1843. package/dist/classes/jupiterPerps.js +13 -0
  1844. package/dist/classes/jupiterPerps.js.map +1 -0
  1845. package/dist/classes/manager.d.ts +686 -0
  1846. package/dist/classes/manager.d.ts.map +1 -0
  1847. package/dist/classes/manager.js +1206 -0
  1848. package/dist/classes/manager.js.map +1 -0
  1849. package/dist/classes/market.d.ts +250 -0
  1850. package/dist/classes/market.d.ts.map +1 -0
  1851. package/dist/classes/market.js +1240 -0
  1852. package/dist/classes/market.js.map +1 -0
  1853. package/dist/classes/obligation.d.ts +321 -0
  1854. package/dist/classes/obligation.d.ts.map +1 -0
  1855. package/dist/classes/obligation.js +1171 -0
  1856. package/dist/classes/obligation.js.map +1 -0
  1857. package/dist/classes/obligationOrder.d.ts +230 -0
  1858. package/dist/classes/obligationOrder.d.ts.map +1 -0
  1859. package/dist/classes/obligationOrder.js +407 -0
  1860. package/dist/classes/obligationOrder.js.map +1 -0
  1861. package/dist/classes/reserve.d.ts +261 -0
  1862. package/dist/classes/reserve.d.ts.map +1 -0
  1863. package/dist/classes/reserve.js +1020 -0
  1864. package/dist/classes/reserve.js.map +1 -0
  1865. package/dist/classes/shared.d.ts +74 -0
  1866. package/dist/classes/shared.d.ts.map +1 -0
  1867. package/dist/classes/shared.js +15 -0
  1868. package/dist/classes/shared.js.map +1 -0
  1869. package/dist/classes/stakePool.d.ts +8 -0
  1870. package/dist/classes/stakePool.d.ts.map +1 -0
  1871. package/dist/classes/stakePool.js +18 -0
  1872. package/dist/classes/stakePool.js.map +1 -0
  1873. package/dist/classes/standardStakePool.d.ts +76 -0
  1874. package/dist/classes/standardStakePool.d.ts.map +1 -0
  1875. package/dist/classes/standardStakePool.js +400 -0
  1876. package/dist/classes/standardStakePool.js.map +1 -0
  1877. package/dist/classes/unstakingPool.d.ts +115 -0
  1878. package/dist/classes/unstakingPool.d.ts.map +1 -0
  1879. package/dist/classes/unstakingPool.js +372 -0
  1880. package/dist/classes/unstakingPool.js.map +1 -0
  1881. package/dist/classes/unstakingPoolTypes.d.ts +10 -0
  1882. package/dist/classes/unstakingPoolTypes.d.ts.map +1 -0
  1883. package/dist/classes/unstakingPoolTypes.js +3 -0
  1884. package/dist/classes/unstakingPoolTypes.js.map +1 -0
  1885. package/dist/classes/utils.d.ts +75 -0
  1886. package/dist/classes/utils.d.ts.map +1 -0
  1887. package/dist/classes/utils.js +256 -0
  1888. package/dist/classes/utils.js.map +1 -0
  1889. package/dist/classes/vault.d.ts +805 -0
  1890. package/dist/classes/vault.d.ts.map +1 -0
  1891. package/dist/classes/vault.js +3082 -0
  1892. package/dist/classes/vault.js.map +1 -0
  1893. package/dist/classes/vault_types.d.ts +75 -0
  1894. package/dist/classes/vault_types.d.ts.map +1 -0
  1895. package/dist/classes/vault_types.js +3 -0
  1896. package/dist/classes/vault_types.js.map +1 -0
  1897. package/dist/client/commands/borrow.d.ts +4 -0
  1898. package/dist/client/commands/borrow.d.ts.map +1 -0
  1899. package/dist/client/commands/borrow.js +21 -0
  1900. package/dist/client/commands/borrow.js.map +1 -0
  1901. package/dist/client/commands/deposit.d.ts +4 -0
  1902. package/dist/client/commands/deposit.d.ts.map +1 -0
  1903. package/dist/client/commands/deposit.js +21 -0
  1904. package/dist/client/commands/deposit.js.map +1 -0
  1905. package/dist/client/commands/initFarmsForReserve.d.ts +4 -0
  1906. package/dist/client/commands/initFarmsForReserve.d.ts.map +1 -0
  1907. package/dist/client/commands/initFarmsForReserve.js +48 -0
  1908. package/dist/client/commands/initFarmsForReserve.js.map +1 -0
  1909. package/dist/client/commands/printAllReserveAccounts.d.ts +3 -0
  1910. package/dist/client/commands/printAllReserveAccounts.d.ts.map +1 -0
  1911. package/dist/client/commands/printAllReserveAccounts.js +20 -0
  1912. package/dist/client/commands/printAllReserveAccounts.js.map +1 -0
  1913. package/dist/client/commands/printReserve.d.ts +3 -0
  1914. package/dist/client/commands/printReserve.d.ts.map +1 -0
  1915. package/dist/client/commands/printReserve.js +16 -0
  1916. package/dist/client/commands/printReserve.js.map +1 -0
  1917. package/dist/client/commands/repay.d.ts +4 -0
  1918. package/dist/client/commands/repay.d.ts.map +1 -0
  1919. package/dist/client/commands/repay.js +21 -0
  1920. package/dist/client/commands/repay.js.map +1 -0
  1921. package/dist/client/commands/withdraw.d.ts +4 -0
  1922. package/dist/client/commands/withdraw.d.ts.map +1 -0
  1923. package/dist/client/commands/withdraw.js +21 -0
  1924. package/dist/client/commands/withdraw.js.map +1 -0
  1925. package/dist/client/services/market.d.ts +6 -0
  1926. package/dist/client/services/market.d.ts.map +1 -0
  1927. package/dist/client/services/market.js +28 -0
  1928. package/dist/client/services/market.js.map +1 -0
  1929. package/dist/client/services/userMetadata.d.ts +4 -0
  1930. package/dist/client/services/userMetadata.d.ts.map +1 -0
  1931. package/dist/client/services/userMetadata.js +23 -0
  1932. package/dist/client/services/userMetadata.js.map +1 -0
  1933. package/dist/client/tx/CliConnectionPool.d.ts +17 -0
  1934. package/dist/client/tx/CliConnectionPool.d.ts.map +1 -0
  1935. package/dist/client/tx/CliConnectionPool.js +39 -0
  1936. package/dist/client/tx/CliConnectionPool.js.map +1 -0
  1937. package/dist/client/tx/CliEnv.d.ts +27 -0
  1938. package/dist/client/tx/CliEnv.d.ts.map +1 -0
  1939. package/dist/client/tx/CliEnv.js +114 -0
  1940. package/dist/client/tx/CliEnv.js.map +1 -0
  1941. package/dist/client/tx/keypair.d.ts +4 -0
  1942. package/dist/client/tx/keypair.d.ts.map +1 -0
  1943. package/dist/client/tx/keypair.js +20 -0
  1944. package/dist/client/tx/keypair.js.map +1 -0
  1945. package/dist/client/tx/multisig.d.ts +4 -0
  1946. package/dist/client/tx/multisig.d.ts.map +1 -0
  1947. package/dist/client/tx/multisig.js +22 -0
  1948. package/dist/client/tx/multisig.js.map +1 -0
  1949. package/dist/client/tx/priorityFee.d.ts +7 -0
  1950. package/dist/client/tx/priorityFee.d.ts.map +1 -0
  1951. package/dist/client/tx/priorityFee.js +25 -0
  1952. package/dist/client/tx/priorityFee.js.map +1 -0
  1953. package/dist/client/tx/processor.d.ts +6 -0
  1954. package/dist/client/tx/processor.d.ts.map +1 -0
  1955. package/dist/client/tx/processor.js +25 -0
  1956. package/dist/client/tx/processor.js.map +1 -0
  1957. package/dist/client/tx/rpc.d.ts +30 -0
  1958. package/dist/client/tx/rpc.d.ts.map +1 -0
  1959. package/dist/client/tx/rpc.js +89 -0
  1960. package/dist/client/tx/rpc.js.map +1 -0
  1961. package/dist/client/tx/simulate.d.ts +7 -0
  1962. package/dist/client/tx/simulate.d.ts.map +1 -0
  1963. package/dist/client/tx/simulate.js +36 -0
  1964. package/dist/client/tx/simulate.js.map +1 -0
  1965. package/dist/client/tx/tx.d.ts +16 -0
  1966. package/dist/client/tx/tx.d.ts.map +1 -0
  1967. package/dist/client/tx/tx.js +115 -0
  1968. package/dist/client/tx/tx.js.map +1 -0
  1969. package/dist/client/utils/modifiers.d.ts +7 -0
  1970. package/dist/client/utils/modifiers.d.ts.map +1 -0
  1971. package/dist/client/utils/modifiers.js +3 -0
  1972. package/dist/client/utils/modifiers.js.map +1 -0
  1973. package/dist/idl/klend.json +6284 -0
  1974. package/dist/index.d.ts +2 -590
  1975. package/dist/index.d.ts.map +1 -0
  1976. package/dist/index.js +17 -6
  1977. package/dist/index.js.map +1 -1
  1978. package/dist/lending_operations/index.d.ts +4 -0
  1979. package/dist/lending_operations/index.d.ts.map +1 -0
  1980. package/dist/lending_operations/index.js +20 -0
  1981. package/dist/lending_operations/index.js.map +1 -0
  1982. package/dist/lending_operations/repay_with_collateral_calcs.d.ts +38 -0
  1983. package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -0
  1984. package/dist/lending_operations/repay_with_collateral_calcs.js +134 -0
  1985. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -0
  1986. package/dist/lending_operations/repay_with_collateral_operations.d.ts +60 -0
  1987. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -0
  1988. package/dist/lending_operations/repay_with_collateral_operations.js +209 -0
  1989. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -0
  1990. package/dist/lending_operations/swap_collateral_operations.d.ts +108 -0
  1991. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -0
  1992. package/dist/lending_operations/swap_collateral_operations.js +321 -0
  1993. package/dist/lending_operations/swap_collateral_operations.js.map +1 -0
  1994. package/dist/leverage/calcs.d.ts +134 -0
  1995. package/dist/leverage/calcs.d.ts.map +1 -0
  1996. package/dist/leverage/calcs.js +342 -0
  1997. package/dist/leverage/calcs.js.map +1 -0
  1998. package/dist/leverage/index.d.ts +6 -0
  1999. package/dist/leverage/index.d.ts.map +1 -0
  2000. package/dist/leverage/index.js +22 -0
  2001. package/dist/leverage/index.js.map +1 -0
  2002. package/dist/leverage/instructions.d.ts +42 -0
  2003. package/dist/leverage/instructions.d.ts.map +1 -0
  2004. package/dist/leverage/instructions.js +80 -0
  2005. package/dist/leverage/instructions.js.map +1 -0
  2006. package/dist/leverage/operations.d.ts +30 -0
  2007. package/dist/leverage/operations.d.ts.map +1 -0
  2008. package/dist/leverage/operations.js +740 -0
  2009. package/dist/leverage/operations.js.map +1 -0
  2010. package/dist/leverage/types.d.ts +154 -0
  2011. package/dist/leverage/types.d.ts.map +1 -0
  2012. package/dist/leverage/types.js +3 -0
  2013. package/dist/leverage/types.js.map +1 -0
  2014. package/dist/leverage/utils.d.ts +6 -0
  2015. package/dist/leverage/utils.d.ts.map +1 -0
  2016. package/dist/leverage/utils.js +21 -0
  2017. package/dist/leverage/utils.js.map +1 -0
  2018. package/dist/lib.d.ts +17 -0
  2019. package/dist/lib.d.ts.map +1 -0
  2020. package/dist/lib.js +38 -0
  2021. package/dist/lib.js.map +1 -0
  2022. package/dist/manager/client_kamino_manager.d.ts +2 -0
  2023. package/dist/manager/client_kamino_manager.d.ts.map +1 -0
  2024. package/dist/manager/client_kamino_manager.js +1674 -0
  2025. package/dist/manager/client_kamino_manager.js.map +1 -0
  2026. package/dist/manager/tx/ManagerConnectionPool.d.ts +17 -0
  2027. package/dist/manager/tx/ManagerConnectionPool.d.ts.map +1 -0
  2028. package/dist/manager/tx/ManagerConnectionPool.js +39 -0
  2029. package/dist/manager/tx/ManagerConnectionPool.js.map +1 -0
  2030. package/dist/manager/tx/ManagerEnv.d.ts +37 -0
  2031. package/dist/manager/tx/ManagerEnv.d.ts.map +1 -0
  2032. package/dist/manager/tx/ManagerEnv.js +151 -0
  2033. package/dist/manager/tx/ManagerEnv.js.map +1 -0
  2034. package/dist/manager/tx/keypair.d.ts +4 -0
  2035. package/dist/manager/tx/keypair.d.ts.map +1 -0
  2036. package/dist/manager/tx/keypair.js +20 -0
  2037. package/dist/manager/tx/keypair.js.map +1 -0
  2038. package/dist/manager/tx/multisig.d.ts +4 -0
  2039. package/dist/manager/tx/multisig.d.ts.map +1 -0
  2040. package/dist/manager/tx/multisig.js +22 -0
  2041. package/dist/manager/tx/multisig.js.map +1 -0
  2042. package/dist/manager/tx/priorityFee.d.ts +7 -0
  2043. package/dist/manager/tx/priorityFee.d.ts.map +1 -0
  2044. package/dist/manager/tx/priorityFee.js +25 -0
  2045. package/dist/manager/tx/priorityFee.js.map +1 -0
  2046. package/dist/manager/tx/processor.d.ts +6 -0
  2047. package/dist/manager/tx/processor.d.ts.map +1 -0
  2048. package/dist/manager/tx/processor.js +22 -0
  2049. package/dist/manager/tx/processor.js.map +1 -0
  2050. package/dist/manager/tx/rpc.d.ts +30 -0
  2051. package/dist/manager/tx/rpc.d.ts.map +1 -0
  2052. package/dist/manager/tx/rpc.js +89 -0
  2053. package/dist/manager/tx/rpc.js.map +1 -0
  2054. package/dist/manager/tx/simulate.d.ts +7 -0
  2055. package/dist/manager/tx/simulate.d.ts.map +1 -0
  2056. package/dist/manager/tx/simulate.js +36 -0
  2057. package/dist/manager/tx/simulate.js.map +1 -0
  2058. package/dist/manager/tx/tx.d.ts +16 -0
  2059. package/dist/manager/tx/tx.d.ts.map +1 -0
  2060. package/dist/manager/tx/tx.js +114 -0
  2061. package/dist/manager/tx/tx.js.map +1 -0
  2062. package/dist/manager/utils/consts.d.ts +3 -0
  2063. package/dist/manager/utils/consts.d.ts.map +1 -0
  2064. package/dist/manager/utils/consts.js +6 -0
  2065. package/dist/manager/utils/consts.js.map +1 -0
  2066. package/dist/manager/utils/modifiers.d.ts +7 -0
  2067. package/dist/manager/utils/modifiers.d.ts.map +1 -0
  2068. package/dist/manager/utils/modifiers.js +3 -0
  2069. package/dist/manager/utils/modifiers.js.map +1 -0
  2070. package/dist/obligation_orders/common.d.ts +62 -0
  2071. package/dist/obligation_orders/common.d.ts.map +1 -0
  2072. package/dist/obligation_orders/common.js +20 -0
  2073. package/dist/obligation_orders/common.js.map +1 -0
  2074. package/dist/obligation_orders/index.d.ts +4 -0
  2075. package/dist/obligation_orders/index.d.ts.map +1 -0
  2076. package/dist/obligation_orders/index.js +20 -0
  2077. package/dist/obligation_orders/index.js.map +1 -0
  2078. package/dist/obligation_orders/internal.d.ts +6 -0
  2079. package/dist/obligation_orders/internal.d.ts.map +1 -0
  2080. package/dist/obligation_orders/internal.js +72 -0
  2081. package/dist/obligation_orders/internal.js.map +1 -0
  2082. package/dist/obligation_orders/ltv_based.d.ts +51 -0
  2083. package/dist/obligation_orders/ltv_based.d.ts.map +1 -0
  2084. package/dist/obligation_orders/ltv_based.js +107 -0
  2085. package/dist/obligation_orders/ltv_based.js.map +1 -0
  2086. package/dist/obligation_orders/price_based.d.ts +81 -0
  2087. package/dist/obligation_orders/price_based.d.ts.map +1 -0
  2088. package/dist/obligation_orders/price_based.js +166 -0
  2089. package/dist/obligation_orders/price_based.js.map +1 -0
  2090. package/dist/referrals/index.d.ts +3 -0
  2091. package/dist/referrals/index.d.ts.map +1 -0
  2092. package/dist/referrals/index.js +19 -0
  2093. package/dist/referrals/index.js.map +1 -0
  2094. package/dist/referrals/instructions.d.ts +18 -0
  2095. package/dist/referrals/instructions.d.ts.map +1 -0
  2096. package/dist/referrals/instructions.js +73 -0
  2097. package/dist/referrals/instructions.js.map +1 -0
  2098. package/dist/referrals/operations.d.ts +65 -0
  2099. package/dist/referrals/operations.d.ts.map +1 -0
  2100. package/dist/referrals/operations.js +186 -0
  2101. package/dist/referrals/operations.js.map +1 -0
  2102. package/dist/utils/ObligationType.d.ts +56 -0
  2103. package/dist/utils/ObligationType.d.ts.map +1 -0
  2104. package/dist/utils/ObligationType.js +183 -0
  2105. package/dist/utils/ObligationType.js.map +1 -0
  2106. package/dist/utils/accountListing.d.ts +6 -0
  2107. package/dist/utils/accountListing.d.ts.map +1 -0
  2108. package/dist/utils/accountListing.js +88 -0
  2109. package/dist/utils/accountListing.js.map +1 -0
  2110. package/dist/utils/api.d.ts +24 -0
  2111. package/dist/utils/api.d.ts.map +1 -0
  2112. package/dist/utils/api.js +65 -0
  2113. package/dist/utils/api.js.map +1 -0
  2114. package/dist/utils/ata.d.ts +54 -0
  2115. package/dist/utils/ata.d.ts.map +1 -0
  2116. package/dist/utils/ata.js +214 -0
  2117. package/dist/utils/ata.js.map +1 -0
  2118. package/dist/utils/bigint.d.ts +2 -0
  2119. package/dist/utils/bigint.d.ts.map +1 -0
  2120. package/dist/utils/bigint.js +7 -0
  2121. package/dist/utils/bigint.js.map +1 -0
  2122. package/dist/utils/compat.d.ts +6 -0
  2123. package/dist/utils/compat.d.ts.map +1 -0
  2124. package/dist/utils/compat.js +19 -0
  2125. package/dist/utils/compat.js.map +1 -0
  2126. package/dist/utils/constants.d.ts +58 -0
  2127. package/dist/utils/constants.d.ts.map +1 -0
  2128. package/dist/utils/constants.js +84 -0
  2129. package/dist/utils/constants.js.map +1 -0
  2130. package/dist/utils/consts.d.ts +4 -0
  2131. package/dist/utils/consts.d.ts.map +1 -0
  2132. package/dist/utils/consts.js +7 -0
  2133. package/dist/utils/consts.js.map +1 -0
  2134. package/dist/utils/farmUtils.d.ts +10 -0
  2135. package/dist/utils/farmUtils.d.ts.map +1 -0
  2136. package/dist/utils/farmUtils.js +38 -0
  2137. package/dist/utils/farmUtils.js.map +1 -0
  2138. package/dist/utils/fuzz.d.ts +3 -0
  2139. package/dist/utils/fuzz.d.ts.map +1 -0
  2140. package/dist/utils/fuzz.js +11 -0
  2141. package/dist/utils/fuzz.js.map +1 -0
  2142. package/dist/utils/idl.d.ts +3 -0
  2143. package/dist/utils/idl.d.ts.map +1 -0
  2144. package/dist/utils/idl.js +9 -0
  2145. package/dist/utils/idl.js.map +1 -0
  2146. package/dist/utils/index.d.ts +20 -0
  2147. package/dist/utils/index.d.ts.map +1 -0
  2148. package/dist/utils/index.js +36 -0
  2149. package/dist/utils/index.js.map +1 -0
  2150. package/dist/utils/instruction.d.ts +10 -0
  2151. package/dist/utils/instruction.d.ts.map +1 -0
  2152. package/dist/utils/instruction.js +64 -0
  2153. package/dist/utils/instruction.js.map +1 -0
  2154. package/dist/utils/kamino.d.ts +4 -0
  2155. package/dist/utils/kamino.d.ts.map +1 -0
  2156. package/dist/utils/kamino.js +16 -0
  2157. package/dist/utils/kamino.js.map +1 -0
  2158. package/dist/utils/lookupTable.d.ts +43 -0
  2159. package/dist/utils/lookupTable.d.ts.map +1 -0
  2160. package/dist/utils/lookupTable.js +139 -0
  2161. package/dist/utils/lookupTable.js.map +1 -0
  2162. package/dist/utils/managerTypes.d.ts +142 -0
  2163. package/dist/utils/managerTypes.d.ts.map +1 -0
  2164. package/dist/utils/managerTypes.js +298 -0
  2165. package/dist/utils/managerTypes.js.map +1 -0
  2166. package/dist/utils/map.d.ts +2 -0
  2167. package/dist/utils/map.d.ts.map +1 -0
  2168. package/dist/utils/map.js +13 -0
  2169. package/dist/utils/map.js.map +1 -0
  2170. package/dist/utils/metadata.d.ts +14 -0
  2171. package/dist/utils/metadata.d.ts.map +1 -0
  2172. package/dist/utils/metadata.js +79 -0
  2173. package/dist/utils/metadata.js.map +1 -0
  2174. package/dist/utils/multisig.d.ts +45 -0
  2175. package/dist/utils/multisig.d.ts.map +1 -0
  2176. package/dist/utils/multisig.js +30 -0
  2177. package/dist/utils/multisig.js.map +1 -0
  2178. package/dist/utils/obligations.d.ts +4 -0
  2179. package/dist/utils/obligations.d.ts.map +1 -0
  2180. package/dist/utils/obligations.js +54 -0
  2181. package/dist/utils/obligations.js.map +1 -0
  2182. package/dist/utils/option.d.ts +3 -0
  2183. package/dist/utils/option.d.ts.map +1 -0
  2184. package/dist/utils/option.js +12 -0
  2185. package/dist/utils/option.js.map +1 -0
  2186. package/dist/utils/oracle.d.ts +56 -0
  2187. package/dist/utils/oracle.d.ts.map +1 -0
  2188. package/dist/utils/oracle.js +280 -0
  2189. package/dist/utils/oracle.js.map +1 -0
  2190. package/dist/utils/parse.d.ts +10 -0
  2191. package/dist/utils/parse.d.ts.map +1 -0
  2192. package/dist/utils/parse.js +24 -0
  2193. package/dist/utils/parse.js.map +1 -0
  2194. package/dist/utils/pubkey.d.ts +12 -0
  2195. package/dist/utils/pubkey.d.ts.map +1 -0
  2196. package/dist/utils/pubkey.js +18 -0
  2197. package/dist/utils/pubkey.js.map +1 -0
  2198. package/dist/utils/readCdnData.d.ts +25 -0
  2199. package/dist/utils/readCdnData.d.ts.map +1 -0
  2200. package/dist/utils/readCdnData.js +29 -0
  2201. package/dist/utils/readCdnData.js.map +1 -0
  2202. package/dist/utils/rpc.d.ts +15 -0
  2203. package/dist/utils/rpc.d.ts.map +1 -0
  2204. package/dist/utils/rpc.js +51 -0
  2205. package/dist/utils/rpc.js.map +1 -0
  2206. package/dist/utils/seeds.d.ts +161 -0
  2207. package/dist/utils/seeds.d.ts.map +1 -0
  2208. package/dist/utils/seeds.js +260 -0
  2209. package/dist/utils/seeds.js.map +1 -0
  2210. package/dist/utils/signer.d.ts +4 -0
  2211. package/dist/utils/signer.d.ts.map +1 -0
  2212. package/dist/utils/signer.js +20 -0
  2213. package/dist/utils/signer.js.map +1 -0
  2214. package/dist/utils/slots.d.ts +19 -0
  2215. package/dist/utils/slots.d.ts.map +1 -0
  2216. package/dist/utils/slots.js +31 -0
  2217. package/dist/utils/slots.js.map +1 -0
  2218. package/dist/utils/switchboard.d.ts +4 -0
  2219. package/dist/utils/switchboard.d.ts.map +1 -0
  2220. package/dist/utils/switchboard.js +26 -0
  2221. package/dist/utils/switchboard.js.map +1 -0
  2222. package/dist/utils/userMetadata.d.ts +16 -0
  2223. package/dist/utils/userMetadata.d.ts.map +1 -0
  2224. package/dist/utils/userMetadata.js +250 -0
  2225. package/dist/utils/userMetadata.js.map +1 -0
  2226. package/dist/utils/validations.d.ts +5 -0
  2227. package/dist/utils/validations.d.ts.map +1 -0
  2228. package/dist/utils/validations.js +36 -0
  2229. package/dist/utils/validations.js.map +1 -0
  2230. package/dist/utils/vault.d.ts +3 -0
  2231. package/dist/utils/vault.d.ts.map +1 -0
  2232. package/dist/utils/vault.js +56 -0
  2233. package/dist/utils/vault.js.map +1 -0
  2234. package/dist/utils/vaultAllocation.d.ts +22 -0
  2235. package/dist/utils/vaultAllocation.d.ts.map +1 -0
  2236. package/dist/utils/vaultAllocation.js +74 -0
  2237. package/dist/utils/vaultAllocation.js.map +1 -0
  2238. package/package.json +6 -43
  2239. package/src/classes/farm_utils.ts +5 -1
  2240. package/src/classes/manager.ts +20 -3
  2241. package/src/classes/reserve.ts +22 -12
  2242. package/src/classes/shared.ts +2 -2
  2243. package/src/classes/unstakingPool.ts +1 -1
  2244. package/src/classes/vault.ts +11 -2
  2245. package/src/manager/client_kamino_manager.ts +71 -53
  2246. package/dist/chunk-5DIL2ZCI.js +0 -373
  2247. package/dist/chunk-5DIL2ZCI.js.map +0 -1
  2248. package/dist/chunk-5RQOM3VO.js +0 -1628
  2249. package/dist/chunk-5RQOM3VO.js.map +0 -1
  2250. package/dist/chunk-GXZYS537.cjs +0 -1630
  2251. package/dist/chunk-GXZYS537.cjs.map +0 -1
  2252. package/dist/chunk-I7IRKIKG.cjs +0 -35167
  2253. package/dist/chunk-I7IRKIKG.cjs.map +0 -1
  2254. package/dist/chunk-K2DZLHPZ.cjs +0 -4573
  2255. package/dist/chunk-K2DZLHPZ.cjs.map +0 -1
  2256. package/dist/chunk-MR7WEZXN.cjs +0 -398
  2257. package/dist/chunk-MR7WEZXN.cjs.map +0 -1
  2258. package/dist/chunk-NNIHRGXK.js +0 -34815
  2259. package/dist/chunk-NNIHRGXK.js.map +0 -1
  2260. package/dist/chunk-O7I5CWRX.cjs +0 -44
  2261. package/dist/chunk-O7I5CWRX.cjs.map +0 -1
  2262. package/dist/chunk-OCDAUWFE.js +0 -4456
  2263. package/dist/chunk-OCDAUWFE.js.map +0 -1
  2264. package/dist/chunk-PR4QN5HX.js +0 -39
  2265. package/dist/chunk-PR4QN5HX.js.map +0 -1
  2266. package/dist/core.cjs +0 -1504
  2267. package/dist/core.cjs.map +0 -1
  2268. package/dist/core.d.cts +0 -5629
  2269. package/dist/core.d.ts +0 -5629
  2270. package/dist/core.js +0 -7
  2271. package/dist/core.js.map +0 -1
  2272. package/dist/errors.cjs +0 -2523
  2273. package/dist/errors.cjs.map +0 -1
  2274. package/dist/errors.d.cts +0 -1888
  2275. package/dist/errors.d.ts +0 -1888
  2276. package/dist/errors.js +0 -2520
  2277. package/dist/errors.js.map +0 -1
  2278. package/dist/fraction-BeFnhBaY.d.cts +0 -5830
  2279. package/dist/fraction-BeFnhBaY.d.ts +0 -5830
  2280. package/dist/index.cjs +0 -1564
  2281. package/dist/index.cjs.map +0 -1
  2282. package/dist/index.d.cts +0 -590
  2283. package/dist/jupiter-perps.cjs +0 -14
  2284. package/dist/jupiter-perps.cjs.map +0 -1
  2285. package/dist/jupiter-perps.d.cts +0 -5
  2286. package/dist/jupiter-perps.d.ts +0 -5
  2287. package/dist/jupiter-perps.js +0 -5
  2288. package/dist/jupiter-perps.js.map +0 -1
  2289. package/dist/oracle.cjs +0 -130
  2290. package/dist/oracle.cjs.map +0 -1
  2291. package/dist/oracle.d.cts +0 -2478
  2292. package/dist/oracle.d.ts +0 -2478
  2293. package/dist/oracle.js +0 -5
  2294. package/dist/oracle.js.map +0 -1
  2295. package/dist/standardStakePool-BXdhOcOo.d.cts +0 -78
  2296. package/dist/standardStakePool-BXdhOcOo.d.ts +0 -78
  2297. package/dist/unstaking-pool.cjs +0 -56
  2298. package/dist/unstaking-pool.cjs.map +0 -1
  2299. package/dist/unstaking-pool.d.cts +0 -221
  2300. package/dist/unstaking-pool.d.ts +0 -221
  2301. package/dist/unstaking-pool.js +0 -7
  2302. package/dist/unstaking-pool.js.map +0 -1
  2303. package/src/core.ts +0 -97
  2304. package/src/errors.ts +0 -11
  2305. package/src/jupiter-perps.ts +0 -7
  2306. package/src/oracle.ts +0 -18
  2307. package/src/unstaking-pool.ts +0 -9
@@ -0,0 +1,3082 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.VaultHoldings = exports.ReserveAllocationConfig = exports.KaminoVaultConfig = exports.KaminoVault = exports.KaminoVaultClient = exports.INITIAL_DEPOSIT_LAMPORTS = exports.METADATA_PROGRAM_ID = exports.METADATA_SEED = exports.kaminoVaultStagingId = exports.kaminoVaultId = void 0;
7
+ exports.getCTokenVaultPda = getCTokenVaultPda;
8
+ exports.getEventAuthorityPda = getEventAuthorityPda;
9
+ exports.getKvaultGlobalConfigPda = getKvaultGlobalConfigPda;
10
+ exports.getReserveWhitelistEntryPda = getReserveWhitelistEntryPda;
11
+ const bn_js_1 = __importDefault(require("bn.js"));
12
+ const kit_1 = require("@solana/kit");
13
+ const lib_1 = require("../lib");
14
+ const instructions_1 = require("../@codegen/kvault/instructions");
15
+ const types_1 = require("../@codegen/kvault/types");
16
+ const accounts_1 = require("../@codegen/kvault/accounts");
17
+ const decimal_js_1 = __importDefault(require("decimal.js"));
18
+ const utils_1 = require("./utils");
19
+ const programId_1 = require("../@codegen/klend/programId");
20
+ const fraction_1 = require("./fraction");
21
+ const utils_2 = require("../utils");
22
+ const rpc_1 = require("../utils/rpc");
23
+ const kliquidity_sdk_1 = require("@kamino-finance/kliquidity-sdk");
24
+ const CreationParameters_1 = require("@kamino-finance/kliquidity-sdk/dist/utils/CreationParameters");
25
+ const dist_1 = require("@kamino-finance/farms-sdk/dist");
26
+ const lookupTable_1 = require("../utils/lookupTable");
27
+ const farm_utils_1 = require("./farm_utils");
28
+ const system_1 = require("@solana-program/system");
29
+ const metadata_1 = require("../utils/metadata");
30
+ const vault_1 = require("../utils/vault");
31
+ const token_2022_1 = require("@solana-program/token-2022");
32
+ const token_1 = require("@solana-program/token");
33
+ const sysvars_1 = require("@solana/sysvars");
34
+ const signer_1 = require("../utils/signer");
35
+ const farms_sdk_1 = require("@kamino-finance/farms-sdk");
36
+ const apy_1 = require("@kamino-finance/farms-sdk/dist/utils/apy");
37
+ const vaultAllocation_1 = require("../utils/vaultAllocation");
38
+ const farmUtils_1 = require("../utils/farmUtils");
39
+ const readCdnData_1 = require("../utils/readCdnData");
40
+ exports.kaminoVaultId = (0, kit_1.address)('KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd');
41
+ exports.kaminoVaultStagingId = (0, kit_1.address)('stKvQfwRsQiKnLtMNVLHKS3exFJmZFsgfzBPWHECUYK');
42
+ const TOKEN_VAULT_SEED = 'token_vault';
43
+ const CTOKEN_VAULT_SEED = 'ctoken_vault';
44
+ const BASE_VAULT_AUTHORITY_SEED = 'authority';
45
+ const SHARES_SEED = 'shares';
46
+ const EVENT_AUTHORITY_SEED = '__event_authority';
47
+ exports.METADATA_SEED = 'metadata';
48
+ const GLOBAL_CONFIG_STATE_SEED = 'global_config';
49
+ const WHITELISTED_RESERVES_SEED = 'whitelisted_reserves';
50
+ exports.METADATA_PROGRAM_ID = (0, kit_1.address)('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s');
51
+ exports.INITIAL_DEPOSIT_LAMPORTS = 1000;
52
+ const addressEncoder = (0, kit_1.getAddressEncoder)();
53
+ const base58Decoder = (0, kit_1.getBase58Decoder)();
54
+ /**
55
+ * KaminoVaultClient is a class that provides a high-level interface to interact with the Kamino Vault program.
56
+ */
57
+ class KaminoVaultClient {
58
+ _rpc;
59
+ _kaminoVaultProgramId;
60
+ _kaminoLendProgramId;
61
+ recentSlotDurationMs;
62
+ constructor(rpc, recentSlotDurationMs, kaminoVaultprogramId, kaminoLendProgramId) {
63
+ this._rpc = rpc;
64
+ this.recentSlotDurationMs = recentSlotDurationMs;
65
+ this._kaminoVaultProgramId = kaminoVaultprogramId ? kaminoVaultprogramId : exports.kaminoVaultId;
66
+ this._kaminoLendProgramId = kaminoLendProgramId ? kaminoLendProgramId : programId_1.PROGRAM_ID;
67
+ }
68
+ getConnection() {
69
+ return this._rpc;
70
+ }
71
+ getProgramID() {
72
+ return this._kaminoVaultProgramId;
73
+ }
74
+ getRpc() {
75
+ return this._rpc;
76
+ }
77
+ hasFarm() {
78
+ return;
79
+ }
80
+ /**
81
+ * Prints a vault in a human readable form
82
+ * @param vaultPubkey - the address of the vault
83
+ * @param [vaultState] - optional parameter to pass the vault state directly; this will save a network call
84
+ * @returns - void; prints the vault to the console
85
+ */
86
+ async printVault(vaultPubkey, vaultState) {
87
+ const vault = vaultState ? vaultState : await accounts_1.VaultState.fetch(this.getConnection(), vaultPubkey);
88
+ if (!vault) {
89
+ console.log(`Vault ${vaultPubkey.toString()} not found`);
90
+ return;
91
+ }
92
+ const kaminoVault = KaminoVault.loadWithClientAndState(this, vaultPubkey, vault);
93
+ const vaultName = this.decodeVaultName(vault.name);
94
+ const slot = await this.getConnection().getSlot({ commitment: 'confirmed' }).send();
95
+ const tokensPerShare = await this.getTokensPerShareSingleVault(kaminoVault, slot);
96
+ const holdings = await this.getVaultHoldings(vault, slot);
97
+ const sharesIssued = new decimal_js_1.default(vault.sharesIssued.toString()).div(new decimal_js_1.default(vault.sharesMintDecimals.toString()));
98
+ console.log('Name: ', vaultName);
99
+ console.log('Shares issued: ', sharesIssued);
100
+ holdings.print();
101
+ console.log('Tokens per share: ', tokensPerShare);
102
+ }
103
+ /**
104
+ * This method initializes the kvault global config (one off, needs to be signed by program owner)
105
+ * @param admin - the admin of the kvault program
106
+ * @returns - an instruction to initialize the kvault global config
107
+ */
108
+ async initKvaultGlobalConfigIx(admin) {
109
+ const globalConfigAddress = await getKvaultGlobalConfigPda(this.getProgramID());
110
+ const programData = await (0, utils_2.programDataPda)(this.getProgramID());
111
+ const ix = (0, instructions_1.initKVaultGlobalConfig)({
112
+ payer: admin,
113
+ globalConfig: globalConfigAddress,
114
+ programData: programData,
115
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
116
+ rent: sysvars_1.SYSVAR_RENT_ADDRESS,
117
+ }, undefined, this.getProgramID());
118
+ return ix;
119
+ }
120
+ /**
121
+ * This method will create a vault with a given config. The config can be changed later on, but it is recommended to set it up correctly from the start
122
+ * @param vaultConfig - the config object used to create a vault
123
+ * @returns vault: the keypair of the vault, used to sign the initialization transaction; initVaultIxs: a struct with ixs to initialize the vault and its lookup table + populateLUTIxs, a list to populate the lookup table which has to be executed in a separate transaction
124
+ */
125
+ async createVaultIxs(vaultConfig) {
126
+ const vaultState = await (0, kit_1.generateKeyPairSigner)();
127
+ const size = BigInt(accounts_1.VaultState.layout.span + 8);
128
+ const createVaultIx = (0, system_1.getCreateAccountInstruction)({
129
+ payer: vaultConfig.admin,
130
+ space: size,
131
+ lamports: await this.getConnection().getMinimumBalanceForRentExemption(size).send(),
132
+ programAddress: this._kaminoVaultProgramId,
133
+ newAccount: vaultState,
134
+ });
135
+ const [slot, [tokenVault], [baseVaultAuthority], [sharesMint]] = await Promise.all([
136
+ this.getConnection().getSlot({ commitment: 'finalized' }).send(),
137
+ (0, kit_1.getProgramDerivedAddress)({
138
+ seeds: [Buffer.from(TOKEN_VAULT_SEED), addressEncoder.encode(vaultState.address)],
139
+ programAddress: this._kaminoVaultProgramId,
140
+ }),
141
+ (0, kit_1.getProgramDerivedAddress)({
142
+ seeds: [Buffer.from(BASE_VAULT_AUTHORITY_SEED), addressEncoder.encode(vaultState.address)],
143
+ programAddress: this._kaminoVaultProgramId,
144
+ }),
145
+ (0, kit_1.getProgramDerivedAddress)({
146
+ seeds: [Buffer.from(SHARES_SEED), addressEncoder.encode(vaultState.address)],
147
+ programAddress: this._kaminoVaultProgramId,
148
+ }),
149
+ ]);
150
+ let adminTokenAccount;
151
+ const prerequisiteIxs = [];
152
+ const cleanupIxs = [];
153
+ if (vaultConfig.tokenMint === lib_1.WRAPPED_SOL_MINT) {
154
+ const { wsolAta, createAtaIxs, closeAtaIxs } = await (0, utils_2.createWsolAtaIfMissing)(this.getConnection(), new decimal_js_1.default(utils_2.VAULT_INITIAL_DEPOSIT), vaultConfig.admin);
155
+ adminTokenAccount = wsolAta;
156
+ prerequisiteIxs.push(...createAtaIxs);
157
+ cleanupIxs.push(...closeAtaIxs);
158
+ }
159
+ else {
160
+ adminTokenAccount = (await (0, token_2022_1.findAssociatedTokenPda)({
161
+ mint: vaultConfig.tokenMint,
162
+ tokenProgram: vaultConfig.tokenMintProgramId,
163
+ owner: vaultConfig.admin.address,
164
+ }))[0];
165
+ }
166
+ const initVaultAccounts = {
167
+ adminAuthority: vaultConfig.admin,
168
+ vaultState: vaultState.address,
169
+ baseTokenMint: vaultConfig.tokenMint,
170
+ tokenVault,
171
+ baseVaultAuthority,
172
+ sharesMint,
173
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
174
+ rent: sysvars_1.SYSVAR_RENT_ADDRESS,
175
+ tokenProgram: vaultConfig.tokenMintProgramId,
176
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
177
+ adminTokenAccount,
178
+ };
179
+ const initVaultIx = (0, instructions_1.initVault)(initVaultAccounts, undefined, this._kaminoVaultProgramId);
180
+ const createVaultFarm = await this.createVaultFarm(vaultConfig.admin, vaultState.address, sharesMint);
181
+ // create and set up the vault lookup table
182
+ const [createLUTIx, lut] = await (0, lookupTable_1.initLookupTableIx)(vaultConfig.admin, slot);
183
+ const accountsToBeInserted = [
184
+ vaultConfig.admin.address,
185
+ vaultState.address,
186
+ vaultConfig.tokenMint,
187
+ vaultConfig.tokenMintProgramId,
188
+ baseVaultAuthority,
189
+ sharesMint,
190
+ system_1.SYSTEM_PROGRAM_ADDRESS,
191
+ sysvars_1.SYSVAR_RENT_ADDRESS,
192
+ token_1.TOKEN_PROGRAM_ADDRESS,
193
+ this._kaminoLendProgramId,
194
+ sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
195
+ createVaultFarm.farm.address,
196
+ farm_utils_1.FARMS_GLOBAL_CONFIG_MAINNET,
197
+ ];
198
+ const insertIntoLUTIxs = await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), vaultConfig.admin, lut, accountsToBeInserted, []);
199
+ const setLUTIx = await this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.address, new types_1.VaultConfigField.LookupTable(), lut.toString());
200
+ const ixs = [createVaultIx, initVaultIx, setLUTIx];
201
+ if (vaultConfig.getPerformanceFeeBps() > 0) {
202
+ const setPerformanceFeeIx = await this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.address, new types_1.VaultConfigField.PerformanceFeeBps(), vaultConfig.getPerformanceFeeBps().toString());
203
+ ixs.push(setPerformanceFeeIx);
204
+ }
205
+ if (vaultConfig.getManagementFeeBps() > 0) {
206
+ const setManagementFeeIx = await this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.address, new types_1.VaultConfigField.ManagementFeeBps(), vaultConfig.getManagementFeeBps().toString());
207
+ ixs.push(setManagementFeeIx);
208
+ }
209
+ if (vaultConfig.name && vaultConfig.name.length > 0) {
210
+ const setNameIx = await this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.address, new types_1.VaultConfigField.Name(), vaultConfig.name);
211
+ ixs.push(setNameIx);
212
+ }
213
+ const setFarmIx = await this.updateUninitialisedVaultConfigIx(vaultConfig.admin, vaultState.address, new types_1.VaultConfigField.Farm(), createVaultFarm.farm.address);
214
+ const metadataIx = await this.getSetSharesMetadataIx(this.getConnection(), vaultConfig.admin, vaultState.address, sharesMint, baseVaultAuthority, vaultConfig.vaultTokenSymbol, vaultConfig.vaultTokenName);
215
+ return {
216
+ vault: vaultState,
217
+ lut,
218
+ initVaultIxs: {
219
+ createAtaIfNeededIxs: prerequisiteIxs,
220
+ initVaultIxs: ixs,
221
+ createLUTIx,
222
+ populateLUTIxs: insertIntoLUTIxs,
223
+ cleanupIxs,
224
+ initSharesMetadataIx: metadataIx,
225
+ createVaultFarm,
226
+ setFarmToVaultIx: setFarmIx,
227
+ },
228
+ };
229
+ }
230
+ /**
231
+ * This method creates a farm for a vault
232
+ * @param signer - the signer of the transaction
233
+ * @param vaultSharesMint - the mint of the vault shares
234
+ * @param vaultAddress - the address of the vault (it doesn't need to be already initialized)
235
+ * @returns a struct with the farm, the setup farm ixs and the update farm ixs
236
+ */
237
+ async createVaultFarm(signer, vaultAddress, vaultSharesMint) {
238
+ const farmsSDK = new farms_sdk_1.Farms(this._rpc);
239
+ const farm = await (0, kit_1.generateKeyPairSigner)();
240
+ const ixs = await farmsSDK.createFarmIxs(signer, farm, farm_utils_1.FARMS_GLOBAL_CONFIG_MAINNET, vaultSharesMint);
241
+ const updatePendingFarmAdminIx = await farmsSDK.updateFarmConfigIx(signer, farm.address, lib_1.DEFAULT_PUBLIC_KEY, new dist_1.FarmConfigOption.UpdatePendingFarmAdmin(), farm_utils_1.FARMS_ADMIN_MAINNET, undefined, undefined, true);
242
+ const updateFarmVaultIdIx = await farmsSDK.updateFarmConfigIx(signer, farm.address, lib_1.DEFAULT_PUBLIC_KEY, new dist_1.FarmConfigOption.UpdateVaultId(), vaultAddress, undefined, undefined, true);
243
+ return {
244
+ farm,
245
+ setupFarmIxs: ixs,
246
+ updateFarmIxs: [updatePendingFarmAdminIx, updateFarmVaultIdIx],
247
+ };
248
+ }
249
+ /**
250
+ * This method creates an instruction to set the shares metadata for a vault
251
+ * @param rpc
252
+ * @param vaultAdmin
253
+ * @param vault - the vault to set the shares metadata for
254
+ * @param sharesMint
255
+ * @param baseVaultAuthority
256
+ * @param tokenName - the name of the token in the vault (symbol; e.g. "USDC" which becomes "kVUSDC")
257
+ * @param extraName - the extra string appended to the prefix("Kamino Vault USDC <extraName>")
258
+ * @returns - an instruction to set the shares metadata for the vault
259
+ */
260
+ async getSetSharesMetadataIx(rpc, vaultAdmin, vault, sharesMint, baseVaultAuthority, tokenName, extraName) {
261
+ const [sharesMintMetadata] = await (0, utils_2.getKVaultSharesMetadataPda)(sharesMint);
262
+ const { name, symbol, uri } = (0, metadata_1.resolveMetadata)(sharesMint, extraName, tokenName);
263
+ const ix = !(await (0, kit_1.fetchEncodedAccount)(rpc, sharesMintMetadata, { commitment: 'processed' })).exists
264
+ ? await (0, metadata_1.getInitializeKVaultSharesMetadataIx)(vaultAdmin, vault, sharesMint, baseVaultAuthority, name, symbol, uri)
265
+ : await (0, metadata_1.getUpdateSharesMetadataIx)(vaultAdmin, vault, sharesMint, baseVaultAuthority, name, symbol, uri);
266
+ return ix;
267
+ }
268
+ /**
269
+ * This method updates the vault reserve allocation config for an exiting vault reserve, or adds a new reserve to the vault if it does not exist.
270
+ * @param vault - vault to be updated
271
+ * @param reserveAllocationConfig - new reserve allocation config
272
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
273
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
274
+ */
275
+ async updateReserveAllocationIxs(vault, reserveAllocationConfig, vaultAdminAuthority) {
276
+ const vaultState = await vault.getState();
277
+ const reserveState = reserveAllocationConfig.getReserveState();
278
+ const cTokenVault = await getCTokenVaultPda(vault.address, reserveAllocationConfig.getReserveAddress(), this._kaminoVaultProgramId);
279
+ const reserveWhitelistEntryOption = await getReserveWhitelistEntryIfExists(reserveAllocationConfig.getReserveAddress(), this.getConnection(), this._kaminoVaultProgramId);
280
+ const vaultAdmin = parseVaultAdmin(vaultState, vaultAdminAuthority);
281
+ const updateReserveAllocationAccounts = {
282
+ signer: vaultAdmin,
283
+ vaultState: vault.address,
284
+ baseVaultAuthority: vaultState.baseVaultAuthority,
285
+ reserveCollateralMint: reserveState.collateral.mintPubkey,
286
+ reserve: reserveAllocationConfig.getReserveAddress(),
287
+ ctokenVault: cTokenVault,
288
+ reserveWhitelistEntry: reserveWhitelistEntryOption,
289
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
290
+ rent: sysvars_1.SYSVAR_RENT_ADDRESS,
291
+ reserveCollateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
292
+ };
293
+ const updateReserveAllocationArgs = {
294
+ weight: new bn_js_1.default(reserveAllocationConfig.targetAllocationWeight),
295
+ cap: new bn_js_1.default(reserveAllocationConfig.getAllocationCapLamports().floor().toString()),
296
+ };
297
+ const updateReserveAllocationIx = (0, instructions_1.updateReserveAllocation)(updateReserveAllocationArgs, updateReserveAllocationAccounts, undefined, this._kaminoVaultProgramId);
298
+ const accountsToAddToLut = [
299
+ reserveAllocationConfig.getReserveAddress(),
300
+ cTokenVault,
301
+ ...this.getReserveAccountsToInsertInLut(reserveState),
302
+ ];
303
+ const [lendingMarketAuth] = await (0, utils_2.lendingMarketAuthPda)(reserveState.lendingMarket, this._kaminoLendProgramId);
304
+ accountsToAddToLut.push(lendingMarketAuth);
305
+ const insertIntoLutIxs = await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), vaultAdmin, vaultState.vaultLookupTable, accountsToAddToLut);
306
+ const updateReserveAllocationIxs = {
307
+ updateReserveAllocationIx,
308
+ updateLUTIxs: insertIntoLutIxs,
309
+ };
310
+ return updateReserveAllocationIxs;
311
+ }
312
+ /**
313
+ * This method updates the unallocated weight and cap of a vault (both are optional, if not provided the current values will be used)
314
+ * @param vault - the vault to update the unallocated weight and cap for
315
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
316
+ * @param [unallocatedWeight] - the new unallocated weight to set. If not provided, the current unallocated weight will be used
317
+ * @param [unallocatedCap] - the new unallocated cap to set. If not provided, the current unallocated cap will be used
318
+ * @returns - a list of instructions to update the unallocated weight and cap
319
+ */
320
+ async updateVaultUnallocatedWeightAndCapIxs(vault, vaultAdminAuthority, unallocatedWeight, unallocatedCap) {
321
+ const vaultState = await vault.getState();
322
+ const unallocatedWeightToUse = unallocatedWeight ? unallocatedWeight : vaultState.unallocatedWeight;
323
+ const unallocatedCapToUse = unallocatedCap ? unallocatedCap : vaultState.unallocatedTokensCap;
324
+ const ixs = [];
325
+ if (!unallocatedWeightToUse.eq(vaultState.unallocatedWeight)) {
326
+ const updateVaultUnallocatedWeightIx = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.UnallocatedWeight(), unallocatedWeightToUse.toString(), vaultAdminAuthority);
327
+ ixs.push(updateVaultUnallocatedWeightIx.updateVaultConfigIx);
328
+ }
329
+ if (!unallocatedCapToUse.eq(vaultState.unallocatedTokensCap)) {
330
+ const updateVaultUnallocatedCapIx = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.UnallocatedTokensCap(), unallocatedCapToUse.toString(), vaultAdminAuthority);
331
+ ixs.push(updateVaultUnallocatedCapIx.updateVaultConfigIx);
332
+ }
333
+ return ixs;
334
+ }
335
+ /**
336
+ * This method withdraws all the funds from a reserve and blocks it from being invested by setting its weight and ctoken allocation to 0
337
+ * @param vault - the vault to withdraw the funds from
338
+ * @param reserve - the reserve to withdraw the funds from
339
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
340
+ * @returns - a struct with an instruction to update the reserve allocation and an optional list of instructions to update the lookup table for the allocation changes
341
+ */
342
+ async withdrawEverythingAndBlockInvestReserve(vault, reserve, vaultAdminAuthority) {
343
+ const vaultState = await vault.getState();
344
+ const reserveIsPartOfAllocation = vaultState.vaultAllocationStrategy.some((allocation) => allocation.reserve === reserve);
345
+ const withdrawAndBlockReserveIxs = {
346
+ updateReserveAllocationIxs: [],
347
+ investIxs: [],
348
+ };
349
+ if (!reserveIsPartOfAllocation) {
350
+ return withdrawAndBlockReserveIxs;
351
+ }
352
+ const reserveState = await lib_1.Reserve.fetch(this.getConnection(), reserve);
353
+ if (reserveState === null) {
354
+ return withdrawAndBlockReserveIxs;
355
+ }
356
+ const reserveWithAddress = {
357
+ address: reserve,
358
+ state: reserveState,
359
+ };
360
+ const reserveAllocationConfig = new ReserveAllocationConfig(reserveWithAddress, 0, new decimal_js_1.default(0));
361
+ const admin = vaultAdminAuthority ? vaultAdminAuthority : (0, signer_1.noopSigner)(vaultState.vaultAdminAuthority);
362
+ // update allocation to have 0 weight and 0 cap
363
+ const updateAllocIxs = await this.updateReserveAllocationIxs(vault, reserveAllocationConfig, admin);
364
+ const investIx = await this.investSingleReserveIxs(admin, vault, reserveWithAddress);
365
+ withdrawAndBlockReserveIxs.updateReserveAllocationIxs = [updateAllocIxs.updateReserveAllocationIx];
366
+ withdrawAndBlockReserveIxs.investIxs = investIx;
367
+ return withdrawAndBlockReserveIxs;
368
+ }
369
+ /**
370
+ * This method withdraws all the funds from all the reserves and blocks them from being invested by setting their weight and ctoken allocation to 0
371
+ * @param vault - the vault to withdraw the invested funds from
372
+ * @param [vaultReservesMap] - optional parameter to pass a map of the vault reserves. If not provided, the reserves will be loaded from the vault
373
+ * @param [payer] - optional parameter to pass a different payer for the transaction. If not provided, the admin of the vault will be used; this is the payer for the invest ixs and it should have an ATA and some lamports (2x no_of_reserves) of the token vault
374
+ * @returns - a struct with an instruction to update the reserve allocations (set weight and ctoken allocation to 0) and an a list of instructions to disinvest the funds in the reserves
375
+ */
376
+ async withdrawEverythingFromAllReservesAndBlockInvest(vault, vaultReservesMap, payer) {
377
+ const vaultState = await vault.getState();
378
+ const reserves = this.getVaultReserves(vaultState);
379
+ const withdrawAndBlockReserveIxs = {
380
+ updateReserveAllocationIxs: [],
381
+ investIxs: [],
382
+ };
383
+ if (!vaultReservesMap) {
384
+ vaultReservesMap = await this.loadVaultReserves(vaultState);
385
+ }
386
+ for (const reserve of reserves) {
387
+ const reserveWithAddress = {
388
+ address: reserve,
389
+ state: vaultReservesMap.get(reserve).state,
390
+ };
391
+ const reserveAllocationConfig = new ReserveAllocationConfig(reserveWithAddress, 0, new decimal_js_1.default(0));
392
+ // update allocation to have 0 weight and 0 cap
393
+ const updateAllocIxs = await this.updateReserveAllocationIxs(vault, reserveAllocationConfig, payer);
394
+ withdrawAndBlockReserveIxs.updateReserveAllocationIxs.push(updateAllocIxs.updateReserveAllocationIx);
395
+ }
396
+ const investPayer = payer ? payer : (0, signer_1.noopSigner)(vaultState.vaultAdminAuthority);
397
+ const investIxs = await this.investAllReservesIxs(investPayer, vault, true);
398
+ withdrawAndBlockReserveIxs.investIxs = investIxs;
399
+ return withdrawAndBlockReserveIxs;
400
+ }
401
+ /**
402
+ * This method disinvests all the funds from all the reserves and set their weight to 0; for vaults that are managed by external bot/crank, the bot can change the weight and invest in the reserves again
403
+ * @param vault - the vault to disinvest the invested funds from
404
+ * @param [vaultReservesMap] - optional parameter to pass a map of the vault reserves. If not provided, the reserves will be loaded from the vault
405
+ * @param [payer] - optional parameter to pass a different payer for the transaction. If not provided, the admin of the vault will be used; this is the payer for the invest ixs and it should have an ATA and some lamports (2x no_of_reserves) of the token vault
406
+ * @returns - a struct with an instruction to update the reserve allocations to 0 weight and a list of instructions to disinvest the funds in the reserves
407
+ */
408
+ async disinvestAllReservesIxs(vault, vaultReservesMap, payer) {
409
+ const vaultState = await vault.getState();
410
+ const reserves = this.getVaultReserves(vaultState);
411
+ const disinvestAllReservesIxs = {
412
+ updateReserveAllocationIxs: [],
413
+ investIxs: [],
414
+ };
415
+ if (!vaultReservesMap) {
416
+ vaultReservesMap = await this.loadVaultReserves(vaultState);
417
+ }
418
+ for (const reserve of reserves) {
419
+ const reserveWithAddress = {
420
+ address: reserve,
421
+ state: vaultReservesMap.get(reserve).state,
422
+ };
423
+ const existingReserveAllocation = vaultState.vaultAllocationStrategy.find((allocation) => allocation.reserve === reserve);
424
+ if (!existingReserveAllocation) {
425
+ continue;
426
+ }
427
+ const reserveAllocationConfig = new ReserveAllocationConfig(reserveWithAddress, 0, new decimal_js_1.default(existingReserveAllocation.tokenAllocationCap.toString()));
428
+ // update allocation to have 0 weight and 0 cap
429
+ const updateAllocIxs = await this.updateReserveAllocationIxs(vault, reserveAllocationConfig, payer);
430
+ disinvestAllReservesIxs.updateReserveAllocationIxs.push(updateAllocIxs.updateReserveAllocationIx);
431
+ }
432
+ const investPayer = payer ? payer : (0, signer_1.noopSigner)(vaultState.vaultAdminAuthority);
433
+ const investIxs = await this.investAllReservesIxs(investPayer, vault, true);
434
+ disinvestAllReservesIxs.investIxs = investIxs;
435
+ return disinvestAllReservesIxs;
436
+ }
437
+ /**
438
+ * This method removes a reserve from the vault allocation strategy if already part of the allocation strategy
439
+ * @param vault - vault to remove the reserve from
440
+ * @param reserve - reserve to remove from the vault allocation strategy
441
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
442
+ * @returns - an instruction to remove the reserve from the vault allocation strategy or undefined if the reserve is not part of the allocation strategy
443
+ */
444
+ async removeReserveFromAllocationIx(vault, reserve, vaultAdminAuthority) {
445
+ const vaultState = await vault.getState();
446
+ const vaultAdmin = parseVaultAdmin(vaultState, vaultAdminAuthority);
447
+ const reserveIsPartOfAllocation = vaultState.vaultAllocationStrategy.some((allocation) => allocation.reserve === reserve);
448
+ if (!reserveIsPartOfAllocation) {
449
+ return undefined;
450
+ }
451
+ const accounts = {
452
+ vaultAdminAuthority: vaultAdmin,
453
+ vaultState: vault.address,
454
+ reserve,
455
+ };
456
+ return (0, instructions_1.removeAllocation)(accounts);
457
+ }
458
+ /**
459
+ * Update a field of the vault. If the field is a pubkey it will return an extra instruction to add that account into the lookup table
460
+ * @param vault the vault to update
461
+ * @param mode the field to update (based on VaultConfigFieldKind enum)
462
+ * @param value the value to update the field with
463
+ * @param [adminAuthority] the signer of the transaction. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to build or batch multiple ixs in the same tx.
464
+ * The global admin should be passed in when wanting to change the AllowAllocationsInWhitelistedReservesOnly or AllowInvestInWhitelistedReservesOnly fields to false
465
+ * @param [lutIxsSigner] the signer of the transaction to be used for the lookup table instructions. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to build or batch multiple ixs in the same tx
466
+ * @param [skipLutUpdate] if true, the lookup table instructions will not be included in the returned instructions
467
+ * @returns a struct that contains the instruction to update the field and an optional list of instructions to update the lookup table
468
+ */
469
+ async updateVaultConfigIxs(vault, mode, value, adminAuthority, lutIxsSigner, skipLutUpdate = false, errorOnOverride = true) {
470
+ const vaultState = await vault.getState();
471
+ const admin = parseVaultAdmin(vaultState, adminAuthority);
472
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
473
+ const updateVaultConfigAccs = {
474
+ signer: admin,
475
+ globalConfig: globalConfig,
476
+ vaultState: vault.address,
477
+ klendProgram: this._kaminoLendProgramId,
478
+ };
479
+ if (mode.kind === new types_1.VaultConfigField.Farm().kind) {
480
+ if (value != lib_1.DEFAULT_PUBLIC_KEY && vaultState.vaultFarm != lib_1.DEFAULT_PUBLIC_KEY) {
481
+ if (errorOnOverride) {
482
+ throw new Error('Vault already has a farm, if you want to override it set errorOnOverride to false');
483
+ }
484
+ }
485
+ }
486
+ const updateVaultConfigArgs = {
487
+ entry: mode,
488
+ data: this.getValueForModeAsBuffer(mode, value),
489
+ };
490
+ const vaultReserves = this.getVaultReserves(vaultState);
491
+ const vaultReservesState = await this.loadVaultReserves(vaultState);
492
+ let updateVaultConfigIx = (0, instructions_1.updateVaultConfig)(updateVaultConfigArgs, updateVaultConfigAccs, undefined, this._kaminoVaultProgramId);
493
+ updateVaultConfigIx = this.appendRemainingAccountsForVaultReserves(updateVaultConfigIx, vaultReserves, vaultReservesState);
494
+ const updateLUTIxs = [];
495
+ if (!skipLutUpdate) {
496
+ const lutIxsSignerAccount = lutIxsSigner ? lutIxsSigner : admin;
497
+ if (mode.kind === new types_1.VaultConfigField.PendingVaultAdmin().kind) {
498
+ const newPubkey = (0, kit_1.address)(value);
499
+ const insertIntoLutIxs = await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), lutIxsSignerAccount, vaultState.vaultLookupTable, [newPubkey]);
500
+ updateLUTIxs.push(...insertIntoLutIxs);
501
+ }
502
+ else if (mode.kind === new types_1.VaultConfigField.Farm().kind) {
503
+ const keysToAddToLUT = [(0, kit_1.address)(value)];
504
+ // if the farm already exist we want to read its state to add it to the LUT
505
+ try {
506
+ const farmState = await dist_1.FarmState.fetch(this.getConnection(), keysToAddToLUT[0]);
507
+ keysToAddToLUT.push(farmState.farmVault, farmState.farmVaultsAuthority, farmState.token.mint, farmState.scopePrices, farmState.globalConfig);
508
+ const insertIntoLutIxs = await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), lutIxsSignerAccount, vaultState.vaultLookupTable, keysToAddToLUT);
509
+ updateLUTIxs.push(...insertIntoLutIxs);
510
+ }
511
+ catch (error) {
512
+ console.log(`Error fetching farm ${keysToAddToLUT[0].toString()} state`, error);
513
+ }
514
+ }
515
+ }
516
+ const updateVaultConfigIxs = {
517
+ updateVaultConfigIx,
518
+ updateLUTIxs,
519
+ };
520
+ return updateVaultConfigIxs;
521
+ }
522
+ /**
523
+ * Add or update a reserve whitelist entry. This controls whether the reserve is whitelisted for adding/updating
524
+ * allocations or for invest, depending on the mode parameter.
525
+ *
526
+ * @param reserve - Address of the reserve to whitelist
527
+ * @param mode - The whitelist mode: either 'Invest' or 'AddAllocation' with a value (1 = allow, 0 = deny)
528
+ * @param globalAdmin - The global admin that signs the transaction
529
+ * @returns - An instruction to add/update the whitelisted reserve
530
+ */
531
+ async addUpdateWhitelistedReserveIx(reserve, mode, globalAdmin) {
532
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
533
+ const reserveWhitelistEntry = await getReserveWhitelistEntryPda(reserve, this._kaminoVaultProgramId);
534
+ const accounts = {
535
+ globalAdmin,
536
+ globalConfig,
537
+ reserve,
538
+ reserveWhitelistEntry,
539
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
540
+ };
541
+ const args = {
542
+ update: mode,
543
+ };
544
+ return (0, instructions_1.addUpdateWhitelistedReserve)(args, accounts, undefined, this._kaminoVaultProgramId);
545
+ }
546
+ /** Sets the farm where the shares can be staked. This is store in vault state and a vault can only have one farm, so the new farm will ovveride the old farm
547
+ * @param vault - vault to set the farm for
548
+ * @param farm - the farm where the vault shares can be staked
549
+ * @param [errorOnOverride] - if true, the function will throw an error if the vault already has a farm. If false, it will override the farm
550
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
551
+ * @param [lutIxsSigner] - the signer of the transaction to be used for the lookup table instructions. Optional. If not provided the admin of the vault will be used. It should be used when changing the admin of the vault if we want to build or batch multiple ixs in the same tx
552
+ * @param [skipLutUpdate] - if true, the lookup table instructions will not be included in the returned instructions
553
+ * @returns - a struct that contains the instruction to update the farm and an optional list of instructions to update the lookup table
554
+ */
555
+ async setVaultFarmIxs(vault, farm, errorOnOverride = true, vaultAdminAuthority, lutIxsSigner, skipLutUpdate = false) {
556
+ const vaultHasFarm = await vault.hasFarm();
557
+ if (vaultHasFarm && errorOnOverride) {
558
+ throw new Error('Vault already has a farm, if you want to override it set errorOnOverride to false');
559
+ }
560
+ return this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.Farm(), farm, vaultAdminAuthority, lutIxsSigner, skipLutUpdate);
561
+ }
562
+ /**
563
+ * This method updates the vault config during vault initialization, within the same transaction
564
+ * where the vault is created. Use this when the vault state is not yet committed to the chain
565
+ * and cannot be fetched via RPC. For updates to existing vaults, use updateVaultConfigIxs instead.
566
+ *
567
+ * @param admin - the admin that signs the transaction
568
+ * @param vault - address of vault to be updated
569
+ * @param mode - the field to be updated
570
+ * @param value - the new value for the field to be updated (number or pubkey)
571
+ * @returns - an instruction to update the vault config
572
+ */
573
+ async updateUninitialisedVaultConfigIx(admin, vault, mode, value) {
574
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
575
+ const updateVaultConfigAccs = {
576
+ signer: admin,
577
+ globalConfig: globalConfig,
578
+ vaultState: vault,
579
+ klendProgram: this._kaminoLendProgramId,
580
+ };
581
+ const updateVaultConfigArgs = {
582
+ entry: mode,
583
+ data: this.getValueForModeAsBuffer(mode, value),
584
+ };
585
+ const updateVaultConfigIx = (0, instructions_1.updateVaultConfig)(updateVaultConfigArgs, updateVaultConfigAccs, undefined, this._kaminoVaultProgramId);
586
+ return updateVaultConfigIx;
587
+ }
588
+ /**
589
+ * This function creates the instruction for the `pendingAdmin` of the vault to accept to become the owner of the vault (step 2/2 of the ownership transfer)
590
+ * @param vault - vault to change the ownership for
591
+ * @param [pendingAdmin] - pending vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
592
+ * @returns - an instruction to accept the ownership of the vault and a list of instructions to update the lookup table
593
+ */
594
+ async acceptVaultOwnershipIxs(vault, pendingAdmin) {
595
+ const vaultState = await vault.getState();
596
+ const signer = parseVaultPendingAdmin(vaultState, pendingAdmin);
597
+ const acceptOwneshipAccounts = {
598
+ pendingAdmin: signer,
599
+ vaultState: vault.address,
600
+ };
601
+ const acceptVaultOwnershipIx = (0, instructions_1.updateAdmin)(acceptOwneshipAccounts, undefined, this._kaminoVaultProgramId);
602
+ // read the current LUT and create a new one for the new admin and backfill it
603
+ const accountsInExistentLUT = (await (0, lookupTable_1.getAccountsInLut)(this.getConnection(), vaultState.vaultLookupTable)).filter((account) => account !== vaultState.vaultAdminAuthority);
604
+ const lutIxs = [];
605
+ const [initNewLutIx, newLut] = await (0, lookupTable_1.initLookupTableIx)(signer, await this.getConnection().getSlot({ commitment: 'finalized' }).send());
606
+ const insertIntoLUTIxs = await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), signer, newLut, accountsInExistentLUT, []);
607
+ lutIxs.push(...insertIntoLUTIxs);
608
+ const updateVaultConfigIxs = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.LookupTable(), newLut.toString(), signer);
609
+ lutIxs.push(updateVaultConfigIxs.updateVaultConfigIx);
610
+ lutIxs.push(...updateVaultConfigIxs.updateLUTIxs);
611
+ const acceptVaultOwnershipIxs = {
612
+ acceptVaultOwnershipIx,
613
+ initNewLUTIx: initNewLutIx,
614
+ updateLUTIxs: lutIxs,
615
+ };
616
+ return acceptVaultOwnershipIxs;
617
+ }
618
+ /**
619
+ * This function creates the instruction for the admin to give up a part of the pending fees (which will be accounted as part of the vault)
620
+ * @param vault - vault to give up pending fees for
621
+ * @param maxAmountToGiveUp - the maximum amount of fees to give up, in tokens
622
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
623
+ * @returns - an instruction to give up the specified pending fees
624
+ */
625
+ async giveUpPendingFeesIx(vault, maxAmountToGiveUp, vaultAdminAuthority) {
626
+ const vaultState = await vault.getState();
627
+ const vaultAdmin = parseVaultAdmin(vaultState, vaultAdminAuthority);
628
+ const giveUpPendingFeesAccounts = {
629
+ vaultAdminAuthority: vaultAdmin,
630
+ vaultState: vault.address,
631
+ klendProgram: this._kaminoLendProgramId,
632
+ };
633
+ const maxAmountToGiveUpLamports = (0, utils_1.numberToLamportsDecimal)(maxAmountToGiveUp, vaultState.tokenMintDecimals.toNumber());
634
+ const giveUpPendingFeesArgs = {
635
+ maxAmountToGiveUp: new bn_js_1.default(maxAmountToGiveUpLamports.toString()),
636
+ };
637
+ return (0, instructions_1.giveUpPendingFees)(giveUpPendingFeesArgs, giveUpPendingFeesAccounts, undefined, this._kaminoVaultProgramId);
638
+ }
639
+ /**
640
+ * This method withdraws all the pending fees from the vault to the owner's token ATA
641
+ * @param authority - vault admin
642
+ * @param vault - vault for which the admin withdraws the pending fees
643
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
644
+ * @param [vaultReservesMap] - a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
645
+ * @param [vaultAdminAuthority] - vault admin - a noop vaultAdminAuthority is provided when absent for multisigs
646
+ * @returns - list of instructions to withdraw all pending fees, including the ATA creation instructions if needed
647
+ */
648
+ async withdrawPendingFeesIxs(vault, slot, vaultReservesMap, vaultAdminAuthority) {
649
+ const vaultState = await vault.getState();
650
+ const vaultAdmin = parseVaultAdmin(vaultState, vaultAdminAuthority);
651
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
652
+ const [{ ata: adminTokenAta, createAtaIx }] = await (0, utils_2.createAtasIdempotent)(vaultAdmin, [
653
+ {
654
+ mint: vaultState.tokenMint,
655
+ tokenProgram: vaultState.tokenProgram,
656
+ },
657
+ ]);
658
+ const tokensToWithdraw = new fraction_1.Fraction(vaultState.pendingFeesSf).toDecimal();
659
+ let tokenLeftToWithdraw = tokensToWithdraw;
660
+ tokenLeftToWithdraw = tokenLeftToWithdraw.sub(new decimal_js_1.default(vaultState.tokenAvailable.toString()));
661
+ const reservesToWithdraw = [];
662
+ if (tokenLeftToWithdraw.lte(0)) {
663
+ // Availabe enough to withdraw all - using first reserve as it does not matter
664
+ reservesToWithdraw.push(vaultState.vaultAllocationStrategy[0].reserve);
665
+ }
666
+ else {
667
+ // Get decreasing order sorted available liquidity to withdraw from each reserve allocated to
668
+ const reserveAllocationAvailableLiquidityToWithdraw = await this.getReserveAllocationAvailableLiquidityToWithdraw(vault, slot, vaultReservesState);
669
+ // sort
670
+ const reserveAllocationAvailableLiquidityToWithdrawSorted = new Map([...reserveAllocationAvailableLiquidityToWithdraw.entries()].sort((a, b) => b[1].sub(a[1]).toNumber()));
671
+ reserveAllocationAvailableLiquidityToWithdrawSorted.forEach((availableLiquidityToWithdraw, key) => {
672
+ if (tokenLeftToWithdraw.gt(0)) {
673
+ reservesToWithdraw.push(key);
674
+ tokenLeftToWithdraw = tokenLeftToWithdraw.sub(availableLiquidityToWithdraw);
675
+ }
676
+ });
677
+ }
678
+ const reserveStates = await lib_1.Reserve.fetchMultiple(this.getConnection(), reservesToWithdraw, this._kaminoLendProgramId);
679
+ const withdrawIxs = await Promise.all(reservesToWithdraw.map(async (reserve, index) => {
680
+ if (reserveStates[index] === null) {
681
+ throw new Error(`Reserve ${reserve} not found`);
682
+ }
683
+ const reserveState = reserveStates[index];
684
+ const marketAddress = reserveState.lendingMarket;
685
+ return this.withdrawPendingFeesIx(vaultAdmin, vault, vaultState, marketAddress, { address: reserve, state: reserveState }, adminTokenAta);
686
+ }));
687
+ return [createAtaIx, ...withdrawIxs];
688
+ }
689
+ // async closeVaultIx(vault: KaminoVault): Promise<Instruction> {
690
+ // const vaultState: VaultState = await vault.getState(this.getConnection());
691
+ // const closeVaultAccounts: CloseVaultAccounts = {
692
+ // adminAuthority: vaultState.adminAuthority,
693
+ // vaultState: vault.address,
694
+ // };
695
+ // return closeVault(closeVaultAccounts, this._kaminoVaultProgramId);
696
+ // }
697
+ /**
698
+ * This function creates instructions to deposit into a vault. It will also create ATA creation instructions for the vault shares that the user receives in return
699
+ * @param user - user to deposit
700
+ * @param vault - vault to deposit into (if the state is not provided, it will be fetched)
701
+ * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
702
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
703
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
704
+ * @returns - an instance of DepositIxs which contains the instructions to deposit in vault and the instructions to stake the shares in the farm if the vault has a farm
705
+ */
706
+ async depositIxs(user, vault, tokenAmount, vaultReservesMap, farmState) {
707
+ return this.buildShareEntryIxs('deposit', user, vault, tokenAmount, vaultReservesMap, farmState);
708
+ }
709
+ async buySharesIxs(user, vault, tokenAmount, vaultReservesMap, farmState) {
710
+ return this.buildShareEntryIxs('buy', user, vault, tokenAmount, vaultReservesMap, farmState);
711
+ }
712
+ async buildShareEntryIxs(mode, user, vault, tokenAmount, vaultReservesMap, farmState) {
713
+ const vaultState = await vault.getState();
714
+ const tokenProgramID = vaultState.tokenProgram;
715
+ const userTokenAta = await (0, lib_1.getAssociatedTokenAddress)(vaultState.tokenMint, user.address, tokenProgramID);
716
+ const createAtasIxs = [];
717
+ const closeAtasIxs = [];
718
+ if (vaultState.tokenMint === lib_1.WRAPPED_SOL_MINT) {
719
+ const [{ ata: wsolAta, createAtaIx: createWsolAtaIxn }] = await (0, utils_2.createAtasIdempotent)(user, [
720
+ {
721
+ mint: lib_1.WRAPPED_SOL_MINT,
722
+ tokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
723
+ },
724
+ ]);
725
+ createAtasIxs.push(createWsolAtaIxn);
726
+ const transferWsolIxs = (0, lib_1.getTransferWsolIxs)(user, wsolAta, (0, kit_1.lamports)(BigInt((0, utils_1.numberToLamportsDecimal)(tokenAmount, vaultState.tokenMintDecimals.toNumber()).ceil().toString())));
727
+ createAtasIxs.push(...transferWsolIxs);
728
+ }
729
+ const [{ ata: userSharesAta, createAtaIx: createSharesAtaIxs }] = await (0, utils_2.createAtasIdempotent)(user, [
730
+ {
731
+ mint: vaultState.sharesMint,
732
+ tokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
733
+ },
734
+ ]);
735
+ createAtasIxs.push(createSharesAtaIxs);
736
+ const eventAuthority = await getEventAuthorityPda(this._kaminoVaultProgramId);
737
+ const tokenAmountLamports = (0, utils_1.numberToLamportsDecimal)(tokenAmount, vaultState.tokenMintDecimals.toNumber()).floor();
738
+ let entryIx;
739
+ if (mode === 'deposit') {
740
+ const depositAccounts = {
741
+ user,
742
+ vaultState: vault.address,
743
+ tokenVault: vaultState.tokenVault,
744
+ tokenMint: vaultState.tokenMint,
745
+ baseVaultAuthority: vaultState.baseVaultAuthority,
746
+ sharesMint: vaultState.sharesMint,
747
+ userTokenAta,
748
+ userSharesAta,
749
+ tokenProgram: tokenProgramID,
750
+ klendProgram: this._kaminoLendProgramId,
751
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
752
+ eventAuthority,
753
+ program: this._kaminoVaultProgramId,
754
+ };
755
+ const depositArgs = {
756
+ maxAmount: new bn_js_1.default(tokenAmountLamports.toString()),
757
+ };
758
+ entryIx = (0, instructions_1.deposit)(depositArgs, depositAccounts, undefined, this._kaminoVaultProgramId);
759
+ }
760
+ else {
761
+ const buyAccounts = {
762
+ user,
763
+ vaultState: vault.address,
764
+ tokenVault: vaultState.tokenVault,
765
+ tokenMint: vaultState.tokenMint,
766
+ baseVaultAuthority: vaultState.baseVaultAuthority,
767
+ sharesMint: vaultState.sharesMint,
768
+ userTokenAta,
769
+ userSharesAta,
770
+ tokenProgram: tokenProgramID,
771
+ klendProgram: this._kaminoLendProgramId,
772
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
773
+ eventAuthority,
774
+ program: this._kaminoVaultProgramId,
775
+ };
776
+ const buyArgs = {
777
+ maxAmount: new bn_js_1.default(tokenAmountLamports.toString()),
778
+ };
779
+ entryIx = (0, instructions_1.buy)(buyArgs, buyAccounts, undefined, this._kaminoVaultProgramId);
780
+ }
781
+ const vaultReserves = this.getVaultReserves(vaultState);
782
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
783
+ entryIx = this.appendRemainingAccountsForVaultReserves(entryIx, vaultReserves, vaultReservesState);
784
+ const result = {
785
+ depositIxs: [...createAtasIxs, entryIx, ...closeAtasIxs],
786
+ stakeInFarmIfNeededIxs: [],
787
+ };
788
+ if (!(await vault.hasFarm())) {
789
+ return result;
790
+ }
791
+ const stakeSharesIxs = await this.stakeSharesIxs(user, vault, undefined, farmState);
792
+ result.stakeInFarmIfNeededIxs = stakeSharesIxs;
793
+ return result;
794
+ }
795
+ /**
796
+ * This function creates instructions to stake the shares in the vault farm if the vault has a farm
797
+ * @param user - user to stake
798
+ * @param vault - vault to deposit into its farm (if the state is not provided, it will be fetched)
799
+ * @param [sharesAmount] - token amount to be deposited, in decimals (will be converted in lamports). Optional. If not provided, the user's share balance will be used
800
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
801
+ * @returns - a list of instructions for the user to stake shares into the vault's farm, including the creation of prerequisite accounts if needed
802
+ */
803
+ async stakeSharesIxs(user, vault, sharesAmount, farmState) {
804
+ const vaultState = await vault.getState();
805
+ let sharesToStakeLamports = new decimal_js_1.default(utils_2.U64_MAX);
806
+ if (sharesAmount) {
807
+ sharesToStakeLamports = (0, utils_1.numberToLamportsDecimal)(sharesAmount, vaultState.sharesMintDecimals.toNumber());
808
+ }
809
+ // if tokens to be staked are 0 or vault has no farm there is no stake needed
810
+ if (sharesToStakeLamports.lte(0) || !(await vault.hasFarm())) {
811
+ return [];
812
+ }
813
+ // returns the ix to create the farm state account if needed and the ix to stake the shares
814
+ return (0, farm_utils_1.getFarmStakeIxs)(this.getConnection(), user, sharesToStakeLamports, vaultState.vaultFarm, farmState);
815
+ }
816
+ /**
817
+ * This function will return a struct with the instructions to unstake from the farm if necessary and the instructions for the missing ATA creation instructions, as well as one or multiple withdraw instructions, based on how many reserves it's needed to withdraw from. This might have to be split in multiple transactions
818
+ * @param user - user to withdraw
819
+ * @param vault - vault to withdraw from
820
+ * @param shareAmount - share amount to withdraw (in tokens, not lamports), in order to withdraw everything, any value > user share amount
821
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
822
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
823
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
824
+ * @returns an array of instructions to create missing ATAs if needed and the withdraw instructions
825
+ */
826
+ async withdrawIxs(user, vault, shareAmountToWithdraw, slot, vaultReservesMap, farmState) {
827
+ return this.buildShareExitIxs('withdraw', user, vault, shareAmountToWithdraw, slot, vaultReservesMap, farmState);
828
+ }
829
+ /**
830
+ * This function will return the missing ATA creation instructions, as well as one or multiple withdraw instructions, based on how many reserves it's needed to withdraw from. This might have to be split in multiple transactions
831
+ * @param user - user to sell shares for vault tokens
832
+ * @param vault - vault to sell shares from
833
+ * @param shareAmount - share amount to sell (in tokens, not lamports), in order to withdraw everything, any value > user share amount
834
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
835
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
836
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
837
+ * @returns an array of instructions to create missing ATAs if needed and the withdraw instructions
838
+ */
839
+ async sellSharesIxs(user, vault, shareAmountToWithdraw, slot, vaultReservesMap, farmState) {
840
+ return this.buildShareExitIxs('sell', user, vault, shareAmountToWithdraw, slot, vaultReservesMap, farmState);
841
+ }
842
+ async buildShareExitIxs(mode, user, vault, shareAmountToWithdraw, slot, vaultReservesMap, farmState) {
843
+ const vaultState = await vault.getState();
844
+ const hasFarm = await vault.hasFarm();
845
+ const withdrawIxs = {
846
+ unstakeFromFarmIfNeededIxs: [],
847
+ withdrawIxs: [],
848
+ postWithdrawIxs: [],
849
+ };
850
+ // compute the total shares the user has (in ATA + in farm) and check if they want to withdraw everything or just a part
851
+ let userSharesAtaBalance = new decimal_js_1.default(0);
852
+ const userSharesAta = await (0, lib_1.getAssociatedTokenAddress)(vaultState.sharesMint, user.address);
853
+ const userSharesAtaState = await (0, token_2022_1.fetchMaybeToken)(this.getConnection(), userSharesAta);
854
+ if (userSharesAtaState.exists) {
855
+ const userSharesAtaBalanceInLamports = (0, lib_1.getTokenBalanceFromAccountInfoLamports)(userSharesAtaState);
856
+ userSharesAtaBalance = userSharesAtaBalanceInLamports.div(new decimal_js_1.default(10).pow(vaultState.sharesMintDecimals.toString()));
857
+ }
858
+ let userSharesInFarm = new decimal_js_1.default(0);
859
+ if (hasFarm) {
860
+ userSharesInFarm = await (0, farm_utils_1.getUserSharesInTokensStakedInFarm)(this.getConnection(), user.address, vaultState.vaultFarm, vaultState.sharesMintDecimals.toNumber());
861
+ }
862
+ let sharesToWithdraw = shareAmountToWithdraw;
863
+ const totalUserShares = userSharesAtaBalance.add(userSharesInFarm);
864
+ let withdrawAllShares = false;
865
+ if (sharesToWithdraw.gt(totalUserShares)) {
866
+ sharesToWithdraw = new decimal_js_1.default(utils_2.U64_MAX.toString()).div(new decimal_js_1.default(10).pow(vaultState.sharesMintDecimals.toString()));
867
+ withdrawAllShares = true;
868
+ }
869
+ // if not enough shares in ATA unstake from farm
870
+ const sharesInAtaAreEnoughForWithdraw = sharesToWithdraw.lte(userSharesAtaBalance);
871
+ if (hasFarm && !sharesInAtaAreEnoughForWithdraw && userSharesInFarm.gt(0)) {
872
+ // if we need to unstake we need to make sure share ata is created
873
+ const [{ createAtaIx }] = await (0, utils_2.createAtasIdempotent)(user, [
874
+ {
875
+ mint: vaultState.sharesMint,
876
+ tokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
877
+ },
878
+ ]);
879
+ withdrawIxs.unstakeFromFarmIfNeededIxs.push(createAtaIx);
880
+ let shareLamportsToWithdraw = new decimal_js_1.default(utils_2.U64_MAX.toString());
881
+ if (!withdrawAllShares) {
882
+ const sharesToWithdrawFromFarm = sharesToWithdraw.sub(userSharesAtaBalance);
883
+ shareLamportsToWithdraw = (0, kliquidity_sdk_1.collToLamportsDecimal)(sharesToWithdrawFromFarm, vaultState.sharesMintDecimals.toNumber());
884
+ }
885
+ const unstakeAndWithdrawFromFarmIxs = await (0, farm_utils_1.getFarmUnstakeAndWithdrawIxs)(this.getConnection(), user, shareLamportsToWithdraw, vaultState.vaultFarm, farmState);
886
+ withdrawIxs.unstakeFromFarmIfNeededIxs.push(unstakeAndWithdrawFromFarmIxs.unstakeIx);
887
+ withdrawIxs.unstakeFromFarmIfNeededIxs.push(unstakeAndWithdrawFromFarmIxs.withdrawIx);
888
+ }
889
+ const hasAllocatedReserves = vaultState.vaultAllocationStrategy.some((allocation) => allocation.reserve !== lib_1.DEFAULT_PUBLIC_KEY);
890
+ if (hasAllocatedReserves) {
891
+ const reserveExitBuilder = mode === 'withdraw'
892
+ ? (params) => this.withdrawIx(params.user, params.vault, params.vaultState, params.marketAddress, params.reserve, params.userSharesAta, params.userTokenAta, params.shareAmountLamports, params.vaultReservesState)
893
+ : (params) => this.sellIx(params.user, params.vault, params.vaultState, params.marketAddress, params.reserve, params.userSharesAta, params.userTokenAta, params.shareAmountLamports, params.vaultReservesState);
894
+ const withdrawFromVaultIxs = await this.buildReserveExitIxs({
895
+ user,
896
+ vault,
897
+ vaultState,
898
+ shareAmount: sharesToWithdraw,
899
+ allUserShares: totalUserShares,
900
+ slot,
901
+ vaultReservesMap,
902
+ builder: reserveExitBuilder,
903
+ });
904
+ withdrawIxs.withdrawIxs = withdrawFromVaultIxs;
905
+ }
906
+ else {
907
+ const withdrawFromVaultIxs = await this.withdrawFromAvailableIxs(user, vault, sharesToWithdraw);
908
+ withdrawIxs.withdrawIxs = withdrawFromVaultIxs;
909
+ }
910
+ // if the vault is for SOL return the ix to unwrap the SOL
911
+ if (vaultState.tokenMint === lib_1.WRAPPED_SOL_MINT) {
912
+ const userWsolAta = await (0, lib_1.getAssociatedTokenAddress)(lib_1.WRAPPED_SOL_MINT, user.address);
913
+ const unwrapIx = (0, token_2022_1.getCloseAccountInstruction)({
914
+ account: userWsolAta,
915
+ owner: user,
916
+ destination: user.address,
917
+ }, { programAddress: token_1.TOKEN_PROGRAM_ADDRESS });
918
+ withdrawIxs.postWithdrawIxs.push(unwrapIx);
919
+ }
920
+ // if we burn all of user's shares close its shares ATA
921
+ const burnAllUserShares = sharesToWithdraw.gt(totalUserShares);
922
+ if (burnAllUserShares) {
923
+ const closeAtaIx = (0, token_2022_1.getCloseAccountInstruction)({
924
+ account: userSharesAta,
925
+ owner: user,
926
+ destination: user.address,
927
+ }, { programAddress: token_1.TOKEN_PROGRAM_ADDRESS });
928
+ withdrawIxs.postWithdrawIxs.push(closeAtaIx);
929
+ }
930
+ return withdrawIxs;
931
+ }
932
+ async withdrawFromAvailableIxs(user, vault, shareAmount) {
933
+ const vaultState = await vault.getState();
934
+ const userSharesAta = await (0, lib_1.getAssociatedTokenAddress)(vaultState.sharesMint, user.address);
935
+ const [{ ata: userTokenAta, createAtaIx }] = await (0, utils_2.createAtasIdempotent)(user, [
936
+ {
937
+ mint: vaultState.tokenMint,
938
+ tokenProgram: vaultState.tokenProgram,
939
+ },
940
+ ]);
941
+ const shareLamportsToWithdraw = (0, kliquidity_sdk_1.collToLamportsDecimal)(shareAmount, vaultState.sharesMintDecimals.toNumber());
942
+ const withdrawFromAvailableIxn = await this.withdrawFromAvailableIx(user, vault, vaultState, userSharesAta, userTokenAta, shareLamportsToWithdraw);
943
+ return [createAtaIx, withdrawFromAvailableIxn];
944
+ }
945
+ async buildReserveExitIxs({ user, vault, vaultState, shareAmount, allUserShares, slot, vaultReservesMap, builder, }) {
946
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
947
+ const userSharesAta = await (0, lib_1.getAssociatedTokenAddress)(vaultState.sharesMint, user.address);
948
+ const [{ ata: userTokenAta, createAtaIx }] = await (0, utils_2.createAtasIdempotent)(user, [
949
+ {
950
+ mint: vaultState.tokenMint,
951
+ tokenProgram: vaultState.tokenProgram,
952
+ },
953
+ ]);
954
+ const withdrawAllShares = shareAmount.gte(allUserShares);
955
+ const actualSharesToWithdraw = shareAmount.lte(allUserShares) ? shareAmount : allUserShares;
956
+ const shareLamportsToWithdraw = (0, kliquidity_sdk_1.collToLamportsDecimal)(actualSharesToWithdraw, vaultState.sharesMintDecimals.toNumber());
957
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vault, slot);
958
+ const sharesPerToken = new decimal_js_1.default(1).div(tokensPerShare);
959
+ const tokensToWithdraw = shareLamportsToWithdraw.mul(tokensPerShare);
960
+ let tokenLeftToWithdraw = tokensToWithdraw;
961
+ const availableTokens = new decimal_js_1.default(vaultState.tokenAvailable.toString());
962
+ tokenLeftToWithdraw = tokenLeftToWithdraw.sub(availableTokens);
963
+ const reserveWithSharesAmountToWithdraw = [];
964
+ let isFirstWithdraw = true;
965
+ if (tokenLeftToWithdraw.lte(0)) {
966
+ const firstReserve = vaultState.vaultAllocationStrategy.find((reserve) => reserve.reserve !== lib_1.DEFAULT_PUBLIC_KEY);
967
+ if (!firstReserve) {
968
+ throw new Error('No reserve available to satisfy withdraw request');
969
+ }
970
+ if (withdrawAllShares) {
971
+ reserveWithSharesAmountToWithdraw.push({
972
+ reserve: firstReserve.reserve,
973
+ shares: new decimal_js_1.default(utils_2.U64_MAX.toString()),
974
+ });
975
+ }
976
+ else {
977
+ reserveWithSharesAmountToWithdraw.push({
978
+ reserve: firstReserve.reserve,
979
+ shares: shareLamportsToWithdraw,
980
+ });
981
+ }
982
+ }
983
+ else {
984
+ const reserveAllocationAvailableLiquidityToWithdraw = await this.getReserveAllocationAvailableLiquidityToWithdraw(vault, slot, vaultReservesState);
985
+ const reserveAllocationAvailableLiquidityToWithdrawSorted = [
986
+ ...reserveAllocationAvailableLiquidityToWithdraw.entries(),
987
+ ].sort((a, b) => b[1].sub(a[1]).toNumber());
988
+ reserveAllocationAvailableLiquidityToWithdrawSorted.forEach(([key, availableLiquidityToWithdraw]) => {
989
+ if (tokenLeftToWithdraw.gt(0)) {
990
+ let tokensToWithdrawFromReserve = decimal_js_1.default.min(tokenLeftToWithdraw, availableLiquidityToWithdraw);
991
+ if (isFirstWithdraw) {
992
+ tokensToWithdrawFromReserve = tokensToWithdrawFromReserve.add(availableTokens);
993
+ isFirstWithdraw = false;
994
+ }
995
+ if (withdrawAllShares) {
996
+ reserveWithSharesAmountToWithdraw.push({ reserve: key, shares: new decimal_js_1.default(utils_2.U64_MAX.toString()) });
997
+ }
998
+ else {
999
+ const sharesToWithdrawFromReserve = tokensToWithdrawFromReserve.mul(sharesPerToken).floor();
1000
+ reserveWithSharesAmountToWithdraw.push({ reserve: key, shares: sharesToWithdrawFromReserve });
1001
+ }
1002
+ tokenLeftToWithdraw = tokenLeftToWithdraw.sub(tokensToWithdrawFromReserve);
1003
+ }
1004
+ });
1005
+ }
1006
+ const withdrawIxs = [];
1007
+ withdrawIxs.push(createAtaIx);
1008
+ for (const reserveWithTokens of reserveWithSharesAmountToWithdraw) {
1009
+ const reserveState = vaultReservesState.get(reserveWithTokens.reserve);
1010
+ if (reserveState === undefined) {
1011
+ throw new Error(`Reserve ${reserveWithTokens.reserve} not found in vault reserves map`);
1012
+ }
1013
+ const marketAddress = reserveState.state.lendingMarket;
1014
+ const exitIx = await builder({
1015
+ user,
1016
+ vault,
1017
+ vaultState,
1018
+ marketAddress,
1019
+ reserve: { address: reserveWithTokens.reserve, state: reserveState.state },
1020
+ userSharesAta,
1021
+ userTokenAta,
1022
+ shareAmountLamports: reserveWithTokens.shares,
1023
+ vaultReservesState,
1024
+ });
1025
+ withdrawIxs.push(exitIx);
1026
+ }
1027
+ return withdrawIxs;
1028
+ }
1029
+ /**
1030
+ * This will trigger invest by balancing, based on weights, the reserve allocations of the vault. It can either withdraw or deposit into reserves to balance them. This is a function that should be cranked
1031
+ * @param payer wallet that pays the tx
1032
+ * @param vault - vault to invest from
1033
+ * @param skipComputationChecks - if true, the function will skip the computation checks and will invest all the reserves; it is useful for txs where we update reserve allocations and invest atomically
1034
+ * @returns - an array of invest instructions for each invest action required for the vault reserves
1035
+ */
1036
+ async investAllReservesIxs(payer, vault, skipComputationChecks = false) {
1037
+ const vaultState = await vault.reloadState();
1038
+ const minInvestAmount = vaultState.minInvestAmount;
1039
+ const allReserves = this.getVaultReserves(vaultState);
1040
+ if (allReserves.length === 0) {
1041
+ throw new Error('No reserves found for the vault, please select at least one reserve for the vault');
1042
+ }
1043
+ const [allReservesStateMap, computedReservesAllocation] = await Promise.all([
1044
+ this.loadVaultReserves(vaultState),
1045
+ this.getVaultComputedReservesAllocation(vaultState),
1046
+ ]);
1047
+ const tokenProgram = await (0, rpc_1.getAccountOwner)(this.getConnection(), vaultState.tokenMint);
1048
+ const [{ createAtaIx }] = await (0, utils_2.createAtasIdempotent)(payer, [{ mint: vaultState.tokenMint, tokenProgram }]);
1049
+ // compute total vault holdings and expected distribution based on weights
1050
+ const curentVaultAllocations = this.getVaultAllocations(vaultState);
1051
+ const reservesToDisinvestFrom = [];
1052
+ const reservesToInvestInto = [];
1053
+ for (let index = 0; index < allReserves.length; index++) {
1054
+ const reservePubkey = allReserves[index];
1055
+ const reserveState = allReservesStateMap.get(reservePubkey);
1056
+ const computedAllocation = computedReservesAllocation.targetReservesAllocation.get(reservePubkey);
1057
+ const currentCTokenAllocation = curentVaultAllocations.get(reservePubkey).ctokenAllocation;
1058
+ const currentAllocationCap = curentVaultAllocations.get(reservePubkey).tokenAllocationCap;
1059
+ const reserveCollExchangeRate = reserveState.getCollateralExchangeRate();
1060
+ const reserveAllocationLiquidityAmount = (0, lib_1.lamportsToDecimal)(currentCTokenAllocation.div(reserveCollExchangeRate), vaultState.tokenMintDecimals.toNumber());
1061
+ const diffInReserveTokens = computedAllocation.sub(reserveAllocationLiquidityAmount);
1062
+ const diffInReserveLamports = (0, kliquidity_sdk_1.collToLamportsDecimal)(diffInReserveTokens, vaultState.tokenMintDecimals.toNumber());
1063
+ // it is possible that the tokens to invest are > minInvestAmountLamports but the ctokens it represent are 0, which will make an invest move 0 tokens
1064
+ const diffInCtokenLamports = reserveCollExchangeRate.mul(diffInReserveLamports.abs());
1065
+ const actualDiffInLamports = diffInCtokenLamports.floor().div(reserveCollExchangeRate).floor();
1066
+ // if the diff for the reserve is smaller than the min invest amount, we do not need to invest or disinvest
1067
+ const minInvestAmountLamports = new decimal_js_1.default(minInvestAmount.toString());
1068
+ if (actualDiffInLamports.gt(minInvestAmountLamports) || skipComputationChecks) {
1069
+ if (computedAllocation.lt(reserveAllocationLiquidityAmount)) {
1070
+ reservesToDisinvestFrom.push(reservePubkey);
1071
+ }
1072
+ else {
1073
+ const actualTarget = currentAllocationCap.gt(computedAllocation) ? computedAllocation : currentAllocationCap;
1074
+ const lamportsToAddToReserve = actualTarget.sub(reserveAllocationLiquidityAmount);
1075
+ if (lamportsToAddToReserve.gt(minInvestAmountLamports)) {
1076
+ reservesToInvestInto.push(reservePubkey);
1077
+ }
1078
+ }
1079
+ }
1080
+ }
1081
+ const investIxsPromises = [];
1082
+ // invest first the reserves from which we disinvest, then the other ones
1083
+ for (const reserve of reservesToDisinvestFrom) {
1084
+ const reserveState = allReservesStateMap.get(reserve);
1085
+ if (reserveState === null) {
1086
+ throw new Error(`Reserve ${reserve} not found`);
1087
+ }
1088
+ const investIxsPromise = this.investSingleReserveIxs(payer, vault, {
1089
+ address: reserve,
1090
+ state: reserveState.state,
1091
+ }, allReservesStateMap, false);
1092
+ investIxsPromises.push(investIxsPromise);
1093
+ }
1094
+ for (const reserve of reservesToInvestInto) {
1095
+ const reserveState = allReservesStateMap.get(reserve);
1096
+ if (reserveState === null) {
1097
+ throw new Error(`Reserve ${reserve} not found`);
1098
+ }
1099
+ const investIxsPromise = this.investSingleReserveIxs(payer, vault, {
1100
+ address: reserve,
1101
+ state: reserveState.state,
1102
+ }, allReservesStateMap, false);
1103
+ investIxsPromises.push(investIxsPromise);
1104
+ }
1105
+ let investIxs = [];
1106
+ investIxs.push(createAtaIx);
1107
+ investIxs = await Promise.all(investIxsPromises).then((ixs) => ixs.flat());
1108
+ return investIxs;
1109
+ }
1110
+ // todo: make sure we also check the ata of the investor for the vault token exists
1111
+ /**
1112
+ * This will trigger invest by balancing, based on weights, the reserve allocation of the vault. It can either withdraw or deposit into the given reserve to balance it
1113
+ * @param payer wallet pubkey - the instruction is permissionless and does not require the vault admin, due to rounding between cTokens and the underlying, the payer may have to contribute 1 or more lamports of the underlying from their token account
1114
+ * @param vault - vault to invest from
1115
+ * @param reserve - reserve to invest into or disinvest from
1116
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
1117
+ * @param [createAtaIfNeeded]
1118
+ * @returns - an array of invest instructions for each invest action required for the vault reserves
1119
+ */
1120
+ async investSingleReserveIxs(payer, vault, reserve, vaultReservesMap, createAtaIfNeeded = true) {
1121
+ const vaultState = await vault.getState();
1122
+ const cTokenVault = await getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId);
1123
+ const [lendingMarketAuth] = await (0, utils_2.lendingMarketAuthPda)(reserve.state.lendingMarket, this._kaminoLendProgramId);
1124
+ const ixs = [];
1125
+ const tokenProgram = await (0, rpc_1.getAccountOwner)(this.getConnection(), vaultState.tokenMint);
1126
+ const [{ ata: payerTokenAta, createAtaIx }] = await (0, utils_2.createAtasIdempotent)(payer, [
1127
+ { mint: vaultState.tokenMint, tokenProgram },
1128
+ ]);
1129
+ if (createAtaIfNeeded) {
1130
+ ixs.push(createAtaIx);
1131
+ }
1132
+ const reserveWhitelistEntryOption = await getReserveWhitelistEntryIfExists(reserve.address, this.getConnection(), this._kaminoVaultProgramId);
1133
+ const investAccounts = {
1134
+ payer,
1135
+ vaultState: vault.address,
1136
+ tokenVault: vaultState.tokenVault,
1137
+ baseVaultAuthority: vaultState.baseVaultAuthority,
1138
+ ctokenVault: cTokenVault,
1139
+ reserve: reserve.address,
1140
+ /** CPI accounts */
1141
+ lendingMarket: reserve.state.lendingMarket,
1142
+ lendingMarketAuthority: lendingMarketAuth,
1143
+ reserveLiquiditySupply: reserve.state.liquidity.supplyVault,
1144
+ reserveCollateralMint: reserve.state.collateral.mintPubkey,
1145
+ reserveWhitelistEntry: reserveWhitelistEntryOption,
1146
+ klendProgram: this._kaminoLendProgramId,
1147
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
1148
+ tokenProgram: tokenProgram,
1149
+ payerTokenAccount: payerTokenAta,
1150
+ tokenMint: vaultState.tokenMint,
1151
+ reserveCollateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1152
+ };
1153
+ let investIx = (0, instructions_1.invest)(investAccounts, undefined, this._kaminoVaultProgramId);
1154
+ const vaultReserves = this.getVaultReserves(vaultState);
1155
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
1156
+ investIx = this.appendRemainingAccountsForVaultReserves(investIx, vaultReserves, vaultReservesState);
1157
+ return [createAtaIx, investIx];
1158
+ }
1159
+ /** Convert a string to a u8 representation to be stored on chain */
1160
+ encodeVaultName(token) {
1161
+ const maxArray = new Uint8Array(40);
1162
+ const s = new TextEncoder().encode(token);
1163
+ maxArray.set(s);
1164
+ return maxArray;
1165
+ }
1166
+ /**Convert an u8 array to a string */
1167
+ decodeVaultName(token) {
1168
+ return (0, utils_1.decodeVaultName)(token);
1169
+ }
1170
+ /** Helper to serialize value as Buffer for updateVaultConfig instruction */
1171
+ getValueForModeAsBuffer(mode, value) {
1172
+ const isWhitelistOnlyFlag = mode.kind === new types_1.VaultConfigField.AllowInvestInWhitelistedReservesOnly().kind ||
1173
+ mode.kind === new types_1.VaultConfigField.AllowAllocationsInWhitelistedReservesOnly().kind;
1174
+ if (isWhitelistOnlyFlag) {
1175
+ const flag = (0, utils_2.parseBooleanFlag)(value);
1176
+ return Buffer.from([flag]);
1177
+ }
1178
+ else if (isNaN(+value) || value == lib_1.DEFAULT_PUBLIC_KEY) {
1179
+ if (mode.kind === new types_1.VaultConfigField.Name().kind) {
1180
+ const data = Array.from(this.encodeVaultName(value));
1181
+ return Buffer.from(data);
1182
+ }
1183
+ else {
1184
+ const data = (0, kit_1.address)(value);
1185
+ return Buffer.from(addressEncoder.encode(data));
1186
+ }
1187
+ }
1188
+ else {
1189
+ const buffer = Buffer.alloc(8);
1190
+ buffer.writeBigUInt64LE(BigInt(value.toString()));
1191
+ return buffer;
1192
+ }
1193
+ }
1194
+ async sellIx(user, vault, vaultState, marketAddress, reserve, userSharesAta, userTokenAta, shareAmountLamports, vaultReservesState) {
1195
+ const [lendingMarketAuth] = await (0, utils_2.lendingMarketAuthPda)(marketAddress, this._kaminoLendProgramId);
1196
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
1197
+ const eventAuthority = await getEventAuthorityPda(this._kaminoVaultProgramId);
1198
+ const sellAccounts = {
1199
+ withdrawFromAvailable: {
1200
+ user,
1201
+ vaultState: vault.address,
1202
+ globalConfig: globalConfig,
1203
+ tokenVault: vaultState.tokenVault,
1204
+ baseVaultAuthority: vaultState.baseVaultAuthority,
1205
+ userTokenAta: userTokenAta,
1206
+ tokenMint: vaultState.tokenMint,
1207
+ userSharesAta: userSharesAta,
1208
+ sharesMint: vaultState.sharesMint,
1209
+ tokenProgram: vaultState.tokenProgram,
1210
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1211
+ klendProgram: this._kaminoLendProgramId,
1212
+ eventAuthority: eventAuthority,
1213
+ program: this._kaminoVaultProgramId,
1214
+ },
1215
+ withdrawFromReserveAccounts: {
1216
+ vaultState: vault.address,
1217
+ reserve: reserve.address,
1218
+ ctokenVault: await getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId),
1219
+ lendingMarket: marketAddress,
1220
+ lendingMarketAuthority: lendingMarketAuth,
1221
+ reserveLiquiditySupply: reserve.state.liquidity.supplyVault,
1222
+ reserveCollateralMint: reserve.state.collateral.mintPubkey,
1223
+ reserveCollateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1224
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
1225
+ },
1226
+ eventAuthority: eventAuthority,
1227
+ program: this._kaminoVaultProgramId,
1228
+ };
1229
+ const sellArgs = {
1230
+ sharesAmount: new bn_js_1.default(shareAmountLamports.floor().toString()),
1231
+ };
1232
+ let sellIxn = (0, instructions_1.sell)(sellArgs, sellAccounts, undefined, this._kaminoVaultProgramId);
1233
+ const vaultReserves = this.getVaultReserves(vaultState);
1234
+ sellIxn = this.appendRemainingAccountsForVaultReserves(sellIxn, vaultReserves, vaultReservesState);
1235
+ return sellIxn;
1236
+ }
1237
+ async withdrawIx(user, vault, vaultState, marketAddress, reserve, userSharesAta, userTokenAta, shareAmountLamports, vaultReservesState) {
1238
+ const [lendingMarketAuth] = await (0, utils_2.lendingMarketAuthPda)(marketAddress, this._kaminoLendProgramId);
1239
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
1240
+ const eventAuthority = await getEventAuthorityPda(this._kaminoVaultProgramId);
1241
+ const withdrawAccounts = {
1242
+ withdrawFromAvailable: {
1243
+ user,
1244
+ vaultState: vault.address,
1245
+ globalConfig: globalConfig,
1246
+ tokenVault: vaultState.tokenVault,
1247
+ baseVaultAuthority: vaultState.baseVaultAuthority,
1248
+ userTokenAta: userTokenAta,
1249
+ tokenMint: vaultState.tokenMint,
1250
+ userSharesAta: userSharesAta,
1251
+ sharesMint: vaultState.sharesMint,
1252
+ tokenProgram: vaultState.tokenProgram,
1253
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1254
+ klendProgram: this._kaminoLendProgramId,
1255
+ eventAuthority: eventAuthority,
1256
+ program: this._kaminoVaultProgramId,
1257
+ },
1258
+ withdrawFromReserveAccounts: {
1259
+ vaultState: vault.address,
1260
+ reserve: reserve.address,
1261
+ ctokenVault: await getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId),
1262
+ lendingMarket: marketAddress,
1263
+ lendingMarketAuthority: lendingMarketAuth,
1264
+ reserveLiquiditySupply: reserve.state.liquidity.supplyVault,
1265
+ reserveCollateralMint: reserve.state.collateral.mintPubkey,
1266
+ reserveCollateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1267
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
1268
+ },
1269
+ eventAuthority: eventAuthority,
1270
+ program: this._kaminoVaultProgramId,
1271
+ };
1272
+ const withdrawArgs = {
1273
+ sharesAmount: new bn_js_1.default(shareAmountLamports.floor().toString()),
1274
+ };
1275
+ let withdrawIxn = (0, instructions_1.withdraw)(withdrawArgs, withdrawAccounts, undefined, this._kaminoVaultProgramId);
1276
+ const vaultReserves = this.getVaultReserves(vaultState);
1277
+ withdrawIxn = this.appendRemainingAccountsForVaultReserves(withdrawIxn, vaultReserves, vaultReservesState);
1278
+ return withdrawIxn;
1279
+ }
1280
+ async withdrawFromAvailableIx(user, vault, vaultState, userSharesAta, userTokenAta, shareAmountLamports) {
1281
+ const globalConfig = await getKvaultGlobalConfigPda(this._kaminoVaultProgramId);
1282
+ const eventAuthority = await getEventAuthorityPda(this._kaminoVaultProgramId);
1283
+ const withdrawFromAvailableAccounts = {
1284
+ user,
1285
+ vaultState: vault.address,
1286
+ globalConfig: globalConfig,
1287
+ tokenVault: vaultState.tokenVault,
1288
+ baseVaultAuthority: vaultState.baseVaultAuthority,
1289
+ userTokenAta,
1290
+ tokenMint: vaultState.tokenMint,
1291
+ userSharesAta,
1292
+ sharesMint: vaultState.sharesMint,
1293
+ tokenProgram: vaultState.tokenProgram,
1294
+ sharesTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1295
+ klendProgram: this._kaminoLendProgramId,
1296
+ eventAuthority,
1297
+ program: this._kaminoVaultProgramId,
1298
+ };
1299
+ const withdrawFromAvailableArgs = {
1300
+ sharesAmount: new bn_js_1.default(shareAmountLamports.floor().toString()),
1301
+ };
1302
+ return (0, instructions_1.withdrawFromAvailable)(withdrawFromAvailableArgs, withdrawFromAvailableAccounts, undefined, this._kaminoVaultProgramId);
1303
+ }
1304
+ async withdrawPendingFeesIx(authority, vault, vaultState, marketAddress, reserve, adminTokenAta) {
1305
+ const [lendingMarketAuth] = await (0, utils_2.lendingMarketAuthPda)(marketAddress, this._kaminoLendProgramId);
1306
+ const withdrawPendingFeesAccounts = {
1307
+ vaultAdminAuthority: authority,
1308
+ vaultState: vault.address,
1309
+ reserve: reserve.address,
1310
+ tokenVault: vaultState.tokenVault,
1311
+ ctokenVault: await getCTokenVaultPda(vault.address, reserve.address, this._kaminoVaultProgramId),
1312
+ baseVaultAuthority: vaultState.baseVaultAuthority,
1313
+ tokenAta: adminTokenAta,
1314
+ tokenMint: vaultState.tokenMint,
1315
+ tokenProgram: vaultState.tokenProgram,
1316
+ /** CPI accounts */
1317
+ lendingMarket: marketAddress,
1318
+ lendingMarketAuthority: lendingMarketAuth,
1319
+ reserveLiquiditySupply: reserve.state.liquidity.supplyVault,
1320
+ reserveCollateralMint: reserve.state.collateral.mintPubkey,
1321
+ klendProgram: this._kaminoLendProgramId,
1322
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
1323
+ reserveCollateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1324
+ };
1325
+ let withdrawPendingFeesIxn = (0, instructions_1.withdrawPendingFees)(withdrawPendingFeesAccounts, undefined, this._kaminoVaultProgramId);
1326
+ const vaultReserves = this.getVaultReserves(vaultState);
1327
+ const vaultReservesState = await this.loadVaultReserves(vaultState);
1328
+ withdrawPendingFeesIxn = this.appendRemainingAccountsForVaultReserves(withdrawPendingFeesIxn, vaultReserves, vaultReservesState);
1329
+ return withdrawPendingFeesIxn;
1330
+ }
1331
+ /**
1332
+ * Sync a vault for lookup table; create and set the LUT for the vault if needed and fill it with all the needed accounts
1333
+ * @param authority - vault admin
1334
+ * @param vault the vault to sync and set the LUT for if needed
1335
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1336
+ * @returns a struct that contains a list of ix to create the LUT and assign it to the vault if needed + a list of ixs to insert all the accounts in the LUT
1337
+ */
1338
+ async syncVaultLookupTableIxs(authority, vault, vaultReservesMap) {
1339
+ const vaultState = await vault.getState();
1340
+ const allAccountsToBeInserted = [
1341
+ vault.address,
1342
+ vaultState.vaultAdminAuthority,
1343
+ vaultState.baseVaultAuthority,
1344
+ vaultState.tokenMint,
1345
+ vaultState.tokenVault,
1346
+ vaultState.sharesMint,
1347
+ vaultState.tokenProgram,
1348
+ this._kaminoLendProgramId,
1349
+ ];
1350
+ vaultState.vaultAllocationStrategy.forEach((allocation) => {
1351
+ allAccountsToBeInserted.push(allocation.reserve);
1352
+ allAccountsToBeInserted.push(allocation.ctokenVault);
1353
+ });
1354
+ if (vaultReservesMap) {
1355
+ vaultReservesMap.forEach((reserve) => {
1356
+ allAccountsToBeInserted.push(reserve.state.lendingMarket);
1357
+ allAccountsToBeInserted.push(reserve.state.farmCollateral);
1358
+ allAccountsToBeInserted.push(reserve.state.farmDebt);
1359
+ allAccountsToBeInserted.push(reserve.state.liquidity.supplyVault);
1360
+ allAccountsToBeInserted.push(reserve.state.liquidity.feeVault);
1361
+ allAccountsToBeInserted.push(reserve.state.collateral.mintPubkey);
1362
+ allAccountsToBeInserted.push(reserve.state.collateral.supplyVault);
1363
+ });
1364
+ }
1365
+ else {
1366
+ const vaultReservesState = await this.loadVaultReserves(vaultState);
1367
+ vaultReservesState.forEach((reserve) => {
1368
+ allAccountsToBeInserted.push(reserve.state.lendingMarket);
1369
+ allAccountsToBeInserted.push(reserve.state.farmCollateral);
1370
+ allAccountsToBeInserted.push(reserve.state.farmDebt);
1371
+ allAccountsToBeInserted.push(reserve.state.liquidity.supplyVault);
1372
+ allAccountsToBeInserted.push(reserve.state.liquidity.feeVault);
1373
+ allAccountsToBeInserted.push(reserve.state.collateral.mintPubkey);
1374
+ allAccountsToBeInserted.push(reserve.state.collateral.supplyVault);
1375
+ });
1376
+ }
1377
+ if (vaultState.vaultFarm !== lib_1.DEFAULT_PUBLIC_KEY) {
1378
+ allAccountsToBeInserted.push(vaultState.vaultFarm);
1379
+ }
1380
+ const setupLUTIfNeededIxs = [];
1381
+ let lut = vaultState.vaultLookupTable;
1382
+ if (lut === lib_1.DEFAULT_PUBLIC_KEY) {
1383
+ const recentSlot = await this.getConnection().getSlot({ commitment: 'confirmed' }).send();
1384
+ const [ix, address] = await (0, lookupTable_1.initLookupTableIx)(authority, recentSlot);
1385
+ setupLUTIfNeededIxs.push(ix);
1386
+ lut = address;
1387
+ // set the new LUT for the vault
1388
+ const updateVaultConfigIxs = await this.updateVaultConfigIxs(vault, new types_1.VaultConfigField.LookupTable(), lut.toString());
1389
+ setupLUTIfNeededIxs.push(updateVaultConfigIxs.updateVaultConfigIx);
1390
+ }
1391
+ const ixs = [];
1392
+ let overriddenExistentAccounts = undefined;
1393
+ if (vaultState.vaultLookupTable === lib_1.DEFAULT_PUBLIC_KEY) {
1394
+ overriddenExistentAccounts = [];
1395
+ }
1396
+ ixs.push(...(await (0, lookupTable_1.insertIntoLookupTableIxs)(this.getConnection(), authority, lut, allAccountsToBeInserted, overriddenExistentAccounts)));
1397
+ return {
1398
+ setupLUTIfNeededIxs,
1399
+ syncLUTIxs: ixs,
1400
+ };
1401
+ }
1402
+ getReserveAccountsToInsertInLut(reserveState) {
1403
+ return [
1404
+ reserveState.lendingMarket,
1405
+ reserveState.farmCollateral,
1406
+ reserveState.farmDebt,
1407
+ reserveState.liquidity.mintPubkey,
1408
+ reserveState.liquidity.supplyVault,
1409
+ reserveState.liquidity.feeVault,
1410
+ reserveState.collateral.mintPubkey,
1411
+ reserveState.collateral.supplyVault,
1412
+ ];
1413
+ }
1414
+ /** Read the total holdings of a vault and the reserve weights and returns a map from each reserve to how many tokens should be deposited.
1415
+ * @param vaultState - the vault state to calculate the allocation for
1416
+ * @param [slot] - the slot for which to calculate the allocation. Optional. If not provided the function will fetch the current slot
1417
+ * @param [vaultReserves] - a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1418
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
1419
+ * @returns - a map from each reserve to how many tokens should be invested into
1420
+ */
1421
+ async getVaultComputedReservesAllocation(vaultState, slot, vaultReserves, currentSlot) {
1422
+ // 1. Read the states
1423
+ const holdings = await this.getVaultHoldings(vaultState, slot, vaultReserves, currentSlot);
1424
+ // if there are no vault reserves or all have weight 0 everything has to be in Available
1425
+ const allReservesPubkeys = this.getVaultReserves(vaultState);
1426
+ const reservesAllocations = this.getVaultAllocations(vaultState);
1427
+ const allReservesHaveWeight0 = allReservesPubkeys.every((reserve) => {
1428
+ const allocation = reservesAllocations.get(reserve);
1429
+ return allocation?.targetWeight.isZero();
1430
+ });
1431
+ if (allReservesPubkeys.length === 0 || allReservesHaveWeight0) {
1432
+ const computedHoldings = new Map();
1433
+ allReservesPubkeys.forEach((reserve) => {
1434
+ computedHoldings.set(reserve, new decimal_js_1.default(0));
1435
+ });
1436
+ return {
1437
+ targetUnallocatedAmount: holdings.totalAUMIncludingFees.sub(holdings.pendingFees),
1438
+ targetReservesAllocation: computedHoldings,
1439
+ };
1440
+ }
1441
+ const initialVaultAllocations = this.getVaultAllocations(vaultState);
1442
+ // 2. Compute the allocation
1443
+ return this.computeReservesAllocation(holdings.totalAUMIncludingFees.sub(holdings.pendingFees), new decimal_js_1.default(vaultState.unallocatedWeight.toString()), new decimal_js_1.default(vaultState.unallocatedTokensCap.toString()), initialVaultAllocations, vaultState.tokenMintDecimals.toNumber());
1444
+ }
1445
+ computeReservesAllocation(vaultAUM, vaultUnallocatedWeight, vaultUnallocatedCap, initialVaultAllocations, vaultTokenDecimals) {
1446
+ return (0, vaultAllocation_1.computeReservesAllocation)(vaultAUM, vaultUnallocatedWeight, vaultUnallocatedCap, initialVaultAllocations, vaultTokenDecimals);
1447
+ }
1448
+ /**
1449
+ * This method returns the user shares balance for a given vault
1450
+ * @param user - user to calculate the shares balance for
1451
+ * @param vault - vault to calculate shares balance for
1452
+ * @returns - user share balance in tokens (not lamports)
1453
+ */
1454
+ async getUserSharesBalanceSingleVault(user, vault) {
1455
+ const vaultState = await vault.getState();
1456
+ const userShares = {
1457
+ unstakedShares: new decimal_js_1.default(0),
1458
+ stakedShares: new decimal_js_1.default(0),
1459
+ totalShares: new decimal_js_1.default(0),
1460
+ };
1461
+ const userSharesTokenAccounts = await (0, utils_2.getAllStandardTokenProgramTokenAccounts)(this.getConnection(), user);
1462
+ const userSharesTokenAccount = userSharesTokenAccounts.filter((tokenAccount) => {
1463
+ const accountData = tokenAccount.account.data;
1464
+ const mint = (0, utils_2.getTokenAccountMint)(accountData);
1465
+ return mint === vaultState.sharesMint;
1466
+ });
1467
+ userShares.unstakedShares = userSharesTokenAccount.reduce((acc, tokenAccount) => {
1468
+ const accountData = tokenAccount.account.data;
1469
+ const amount = (0, utils_2.getTokenAccountAmount)(accountData);
1470
+ if (amount !== null) {
1471
+ return acc.add(new decimal_js_1.default(amount));
1472
+ }
1473
+ return acc;
1474
+ }, new decimal_js_1.default(0));
1475
+ if (await vault.hasFarm()) {
1476
+ const userSharesInFarm = await (0, farm_utils_1.getUserSharesInTokensStakedInFarm)(this.getConnection(), user, vaultState.vaultFarm, vaultState.sharesMintDecimals.toNumber());
1477
+ userShares.stakedShares = userSharesInFarm;
1478
+ }
1479
+ userShares.totalShares = userShares.unstakedShares.add(userShares.stakedShares);
1480
+ return userShares;
1481
+ }
1482
+ /**
1483
+ * This method returns the user shares balance for all existing vaults
1484
+ * @param user - user to calculate the shares balance for
1485
+ * @param [vaultsOverride] - the kamino vaults if already fetched, in order to reduce rpc calls.Optional
1486
+ * @returns - hash map with keys as vault address and value as user share balance in decimal (not lamports)
1487
+ */
1488
+ async getUserSharesBalanceAllVaults(user, vaultsOverride) {
1489
+ const vaults = vaultsOverride ? vaultsOverride : await this.getAllVaults();
1490
+ // read all user shares stake in vault farms
1491
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
1492
+ const allUserFarmStates = await farmClient.getAllUserStatesForUser(user);
1493
+ const allUserFarmStatesMap = new Map();
1494
+ allUserFarmStates.forEach((userFarmState) => {
1495
+ allUserFarmStatesMap.set(userFarmState.userState.farmState, userFarmState.userState);
1496
+ });
1497
+ // stores vault address for each userSharesAta
1498
+ const vaultUserShareBalance = new Map();
1499
+ const allUserTokenAccounts = await (0, utils_2.getAllStandardTokenProgramTokenAccounts)(this.getConnection(), user);
1500
+ const userSharesTokenAccountsPerVault = new Map();
1501
+ vaults.forEach(async (vault) => {
1502
+ const state = vault.state;
1503
+ if (!state) {
1504
+ throw new Error(`Vault ${vault.address} not fetched`);
1505
+ }
1506
+ const userSharesTokenAccounts = allUserTokenAccounts.filter((tokenAccount) => {
1507
+ const accountData = tokenAccount.account.data;
1508
+ const mint = (0, utils_2.getTokenAccountMint)(accountData);
1509
+ return mint === state.sharesMint;
1510
+ });
1511
+ userSharesTokenAccountsPerVault.set(vault.address, userSharesTokenAccounts);
1512
+ if (await vault.hasFarm()) {
1513
+ const userFarmState = allUserFarmStatesMap.get(state.vaultFarm);
1514
+ if (userFarmState) {
1515
+ const stakedShares = (0, farm_utils_1.getSharesInFarmUserPosition)(userFarmState, state.sharesMintDecimals.toNumber());
1516
+ const userSharesBalance = vaultUserShareBalance.get(vault.address);
1517
+ if (userSharesBalance) {
1518
+ userSharesBalance.stakedShares = stakedShares;
1519
+ userSharesBalance.totalShares = userSharesBalance.unstakedShares.add(userSharesBalance.stakedShares);
1520
+ vaultUserShareBalance.set(vault.address, userSharesBalance);
1521
+ }
1522
+ else {
1523
+ vaultUserShareBalance.set(vault.address, {
1524
+ unstakedShares: new decimal_js_1.default(0),
1525
+ stakedShares,
1526
+ totalShares: stakedShares,
1527
+ });
1528
+ }
1529
+ }
1530
+ }
1531
+ });
1532
+ userSharesTokenAccountsPerVault.forEach((userSharesTokenAccounts, vaultAddress) => {
1533
+ userSharesTokenAccounts.forEach((userSharesTokenAccount) => {
1534
+ let userSharesForVault = vaultUserShareBalance.get(vaultAddress);
1535
+ if (!userSharesForVault) {
1536
+ userSharesForVault = {
1537
+ unstakedShares: new decimal_js_1.default(0),
1538
+ stakedShares: new decimal_js_1.default(0),
1539
+ totalShares: new decimal_js_1.default(0),
1540
+ };
1541
+ }
1542
+ if (!userSharesTokenAccount) {
1543
+ vaultUserShareBalance.set(vaultAddress, userSharesForVault);
1544
+ }
1545
+ else {
1546
+ const accountData = userSharesTokenAccount.account.data;
1547
+ const amount = (0, utils_2.getTokenAccountAmount)(accountData);
1548
+ if (amount !== null) {
1549
+ userSharesForVault.unstakedShares = new decimal_js_1.default(amount);
1550
+ userSharesForVault.totalShares = userSharesForVault.unstakedShares.add(userSharesForVault.stakedShares);
1551
+ vaultUserShareBalance.set(vaultAddress, userSharesForVault);
1552
+ }
1553
+ }
1554
+ });
1555
+ });
1556
+ return vaultUserShareBalance;
1557
+ }
1558
+ /**
1559
+ * This method returns the management and performance fee percentages
1560
+ * @param vaultState - vault to retrieve the fees percentages from
1561
+ * @returns - VaultFeesPct containing management and performance fee percentages
1562
+ */
1563
+ getVaultFeesPct(vaultState) {
1564
+ return {
1565
+ managementFeePct: (0, utils_1.bpsToPct)(new decimal_js_1.default(vaultState.managementFeeBps.toString())),
1566
+ performanceFeePct: (0, utils_1.bpsToPct)(new decimal_js_1.default(vaultState.performanceFeeBps.toString())),
1567
+ };
1568
+ }
1569
+ /**
1570
+ * This method calculates the token per share value. This will always change based on interest earned from the vault, but calculating it requires a bunch of rpc requests. Caching this for a short duration would be optimal
1571
+ * @param vaultState - vault state to calculate tokensPerShare for
1572
+ * @param [slot] - the slot at which we retrieve the tokens per share. Optional. If not provided, the function will fetch the current slot
1573
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1574
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
1575
+ * @returns - token per share value
1576
+ */
1577
+ async getTokensPerShareSingleVault(vaultOrState, slot, vaultReservesMap, currentSlot) {
1578
+ // Determine if we have a KaminoVault or VaultState
1579
+ const vaultState = 'getState' in vaultOrState ? await vaultOrState.getState() : vaultOrState;
1580
+ if (vaultState.sharesIssued.isZero()) {
1581
+ return new decimal_js_1.default(0);
1582
+ }
1583
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
1584
+ const sharesDecimal = (0, lib_1.lamportsToDecimal)(vaultState.sharesIssued.toString(), vaultState.sharesMintDecimals.toString());
1585
+ const holdings = await this.getVaultHoldings(vaultState, slot, vaultReservesState, currentSlot);
1586
+ const netAUM = holdings.totalAUMIncludingFees.sub(holdings.pendingFees);
1587
+ return netAUM.div(sharesDecimal);
1588
+ }
1589
+ /**
1590
+ * This method calculates the token per share value. This will always change based on interest earned from the vault, but calculating it requires a bunch of rpc requests. Caching this for a short duration would be optimal
1591
+ * @param [vaultsOverride] - a list of vaults to get the tokens per share for; if provided with state it will not fetch the state again. Optional
1592
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1593
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
1594
+ * @returns - token per share value
1595
+ */
1596
+ async getTokensPerShareAllVaults(slot, vaultsOverride, vaultReservesMap) {
1597
+ const vaults = vaultsOverride ? vaultsOverride : await this.getAllVaults();
1598
+ const vaultTokensPerShare = new Map();
1599
+ for (const vault of vaults) {
1600
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vault, slot, vaultReservesMap);
1601
+ vaultTokensPerShare.set(vault.address, tokensPerShare);
1602
+ }
1603
+ return vaultTokensPerShare;
1604
+ }
1605
+ /**
1606
+ * Get all vaults
1607
+ * @returns an array of all vaults
1608
+ */
1609
+ async getAllVaults() {
1610
+ const filters = [
1611
+ {
1612
+ dataSize: BigInt(accounts_1.VaultState.layout.span + 8),
1613
+ },
1614
+ {
1615
+ memcmp: {
1616
+ offset: 0n,
1617
+ bytes: base58Decoder.decode(accounts_1.VaultState.discriminator),
1618
+ encoding: 'base58',
1619
+ },
1620
+ },
1621
+ ];
1622
+ return await this.getAllVaultsWithFilter(filters);
1623
+ }
1624
+ /**
1625
+ * Get all vaults for a given token
1626
+ * @param token - the token to get all vaults for
1627
+ * @returns an array of all vaults for the given token
1628
+ */
1629
+ async getAllVaultsForToken(token) {
1630
+ const filters = [
1631
+ {
1632
+ dataSize: BigInt(accounts_1.VaultState.layout.span + 8),
1633
+ },
1634
+ {
1635
+ memcmp: {
1636
+ offset: 0n,
1637
+ bytes: base58Decoder.decode(accounts_1.VaultState.discriminator),
1638
+ encoding: 'base58',
1639
+ },
1640
+ },
1641
+ {
1642
+ memcmp: {
1643
+ offset: 80n, // tokenMint offset: 8 + 32 + 32 + 8 (discriminator + vaultAdminAuthority + baseVaultAuthority + baseVaultAuthorityBump)
1644
+ bytes: token.toString(),
1645
+ encoding: 'base58',
1646
+ },
1647
+ },
1648
+ ];
1649
+ return await this.getAllVaultsWithFilter(filters);
1650
+ }
1651
+ async getAllVaultsWithFilter(filters) {
1652
+ const kaminoVaults = await (0, rpc_1.getProgramAccounts)(this.getConnection(), this._kaminoVaultProgramId, accounts_1.VaultState.layout.span + 8, filters);
1653
+ return kaminoVaults.map((kaminoVault) => {
1654
+ const kaminoVaultAccount = (0, vault_1.decodeVaultState)(kaminoVault.data);
1655
+ if (!kaminoVaultAccount) {
1656
+ throw Error(`kaminoVault with pubkey ${kaminoVault.address} could not be decoded`);
1657
+ }
1658
+ return KaminoVault.loadWithClientAndState(this, kaminoVault.address, kaminoVaultAccount);
1659
+ });
1660
+ }
1661
+ /**
1662
+ * Get a list of kaminoVaults
1663
+ * @param vaults - a list of vaults to get the states for; if not provided, all vaults will be fetched
1664
+ * @returns a list of vaults
1665
+ */
1666
+ async getVaults(vaults) {
1667
+ if (!vaults) {
1668
+ vaults = (await this.getAllVaults()).map((x) => x.address);
1669
+ }
1670
+ const vaultStates = await (0, kliquidity_sdk_1.batchFetch)(vaults, (chunk) => this.getVaultsStates(chunk));
1671
+ return vaults.map((vault, index) => {
1672
+ const state = vaultStates[index];
1673
+ return state ? KaminoVault.loadWithClientAndState(this, vault, state) : null;
1674
+ });
1675
+ }
1676
+ async getVaultsStates(vaults) {
1677
+ return await accounts_1.VaultState.fetchMultiple(this.getConnection(), vaults, this._kaminoVaultProgramId);
1678
+ }
1679
+ /**
1680
+ * This will return the amount of token invested from the vault into the given reserve
1681
+ * @param vaultState - the kamino vault to get invested amount in reserve for
1682
+ * @param slot - current slot
1683
+ * @param reserve - the reserve state to get vault invested amount in
1684
+ * @returns vault amount supplied in reserve in decimal
1685
+ */
1686
+ getSuppliedInReserve(vaultState, slot, reserve) {
1687
+ let referralFeeBps = 0;
1688
+ const denominator = reserve.state.config.protocolTakeRatePct / 100;
1689
+ if (denominator > 0) {
1690
+ referralFeeBps = new fraction_1.Fraction(reserve.state.liquidity.absoluteReferralRateSf)
1691
+ .toDecimal()
1692
+ .div(denominator)
1693
+ .floor()
1694
+ .toNumber();
1695
+ }
1696
+ const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, referralFeeBps);
1697
+ const reserveAllocation = vaultState.vaultAllocationStrategy.find((allocation) => allocation.reserve === reserve.address);
1698
+ if (!reserveAllocation) {
1699
+ throw new Error(`Reserve ${reserve.address} not found in vault allocation strategy`);
1700
+ }
1701
+ const reserveAllocationLiquidityAmountLamports = new decimal_js_1.default(reserveAllocation.ctokenAllocation.toString()).div(reserveCollExchangeRate);
1702
+ const reserveAllocationLiquidityAmount = (0, lib_1.lamportsToDecimal)(reserveAllocationLiquidityAmountLamports, vaultState.tokenMintDecimals.toNumber());
1703
+ return reserveAllocationLiquidityAmount;
1704
+ }
1705
+ /**
1706
+ * This will return the a map between reserve pubkey and the pct of the vault invested amount in each reserve
1707
+ * @param vaultState - the kamino vault to get reserves distribution for
1708
+ * @returns a map between reserve pubkey and the allocation pct for the reserve
1709
+ */
1710
+ getAllocationsDistribuionPct(vaultState) {
1711
+ const allocationsDistributionPct = new Map();
1712
+ let totalAllocation = new decimal_js_1.default(0);
1713
+ const filteredAllocations = vaultState.vaultAllocationStrategy.filter((allocation) => allocation.reserve !== lib_1.DEFAULT_PUBLIC_KEY);
1714
+ filteredAllocations.forEach((allocation) => {
1715
+ totalAllocation = totalAllocation.add(new decimal_js_1.default(allocation.targetAllocationWeight.toString()));
1716
+ });
1717
+ filteredAllocations.forEach((allocation) => {
1718
+ allocationsDistributionPct.set(allocation.reserve, new decimal_js_1.default(allocation.targetAllocationWeight.toString()).mul(new decimal_js_1.default(100)).div(totalAllocation));
1719
+ });
1720
+ return allocationsDistributionPct;
1721
+ }
1722
+ /**
1723
+ * This will return the a map between reserve pubkey and the allocation overview for the reserve
1724
+ * @param vaultState - the kamino vault to get reserves allocation overview for
1725
+ * @returns a map between reserve pubkey and the allocation overview for the reserve
1726
+ */
1727
+ getVaultAllocations(vaultState) {
1728
+ const vaultAllocations = new Map();
1729
+ vaultState.vaultAllocationStrategy.map((allocation) => {
1730
+ if (allocation.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
1731
+ return;
1732
+ }
1733
+ const allocationOverview = {
1734
+ targetWeight: new decimal_js_1.default(allocation.targetAllocationWeight.toString()),
1735
+ tokenAllocationCap: new decimal_js_1.default(allocation.tokenAllocationCap.toString()),
1736
+ ctokenAllocation: new decimal_js_1.default(allocation.ctokenAllocation.toString()),
1737
+ };
1738
+ vaultAllocations.set(allocation.reserve, allocationOverview);
1739
+ });
1740
+ return vaultAllocations;
1741
+ }
1742
+ /**
1743
+ * This will return an unsorted hash map of all reserves that the given vault has allocations for, toghether with the amount that can be withdrawn from each of the reserves
1744
+ * @param vault - the kamino vault to get available liquidity to withdraw for
1745
+ * @param slot - current slot
1746
+ *@param [vaultReservesMap] - a hashmap from each reserve pubkey to the reserve state
1747
+ * @returns an HashMap of reserves (key) with the amount available to withdraw for each (value)
1748
+ */
1749
+ async getReserveAllocationAvailableLiquidityToWithdraw(vault, slot, vaultReservesMap) {
1750
+ const vaultState = await vault.getState();
1751
+ const reserveAllocationAvailableLiquidityToWithdraw = new Map();
1752
+ vaultState.vaultAllocationStrategy.forEach((allocationStrategy) => {
1753
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
1754
+ return;
1755
+ }
1756
+ const reserve = vaultReservesMap.get(allocationStrategy.reserve);
1757
+ if (reserve === undefined) {
1758
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
1759
+ }
1760
+ let referralFeeBps = 0;
1761
+ const denominator = reserve.state.config.protocolTakeRatePct / 100;
1762
+ if (denominator > 0) {
1763
+ referralFeeBps = new fraction_1.Fraction(reserve.state.liquidity.absoluteReferralRateSf)
1764
+ .toDecimal()
1765
+ .div(denominator)
1766
+ .floor()
1767
+ .toNumber();
1768
+ }
1769
+ const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, referralFeeBps);
1770
+ const reserveAllocationLiquidityAmount = new decimal_js_1.default(allocationStrategy.ctokenAllocation.toString()).div(reserveCollExchangeRate);
1771
+ const reserveAvailableLiquidityAmount = reserve.getLiquidityAvailableAmount();
1772
+ reserveAllocationAvailableLiquidityToWithdraw.set(allocationStrategy.reserve, decimal_js_1.default.min(reserveAllocationLiquidityAmount, reserveAvailableLiquidityAmount));
1773
+ });
1774
+ return reserveAllocationAvailableLiquidityToWithdraw;
1775
+ }
1776
+ /**
1777
+ * This will get the list of all reserve pubkeys that the vault has allocations for ex
1778
+ * @param vault - the vault state to load reserves for
1779
+ * @returns a hashmap from each reserve pubkey to the reserve state
1780
+ */
1781
+ getVaultReserves(vault) {
1782
+ return vault.vaultAllocationStrategy
1783
+ .filter((vaultAllocation) => vaultAllocation.reserve !== lib_1.DEFAULT_PUBLIC_KEY)
1784
+ .map((vaultAllocation) => vaultAllocation.reserve);
1785
+ }
1786
+ /**
1787
+ * This will load the onchain state for all the reserves that the vault has allocations for
1788
+ * @param vaultState - the vault state to load reserves for
1789
+ * @returns a hashmap from each reserve pubkey to the reserve state
1790
+ */
1791
+ async loadVaultReserves(vaultState) {
1792
+ return this.loadVaultsReserves([vaultState]);
1793
+ }
1794
+ async loadReserializedReserves(vaultReservesAddresses) {
1795
+ const reserveAccounts = await this.getConnection()
1796
+ .getMultipleAccounts(vaultReservesAddresses, { commitment: 'processed' })
1797
+ .send();
1798
+ return reserveAccounts.value.map((reserve, i) => {
1799
+ if (reserve === null) {
1800
+ // maybe reuse old here
1801
+ throw new Error(`Reserve account ${vaultReservesAddresses[i]} was not found`);
1802
+ }
1803
+ const reserveAccount = lib_1.Reserve.decode(Buffer.from(reserve.data[0], 'base64'));
1804
+ if (!reserveAccount) {
1805
+ throw Error(`Could not parse reserve ${vaultReservesAddresses[i]}`);
1806
+ }
1807
+ return {
1808
+ address: vaultReservesAddresses[i],
1809
+ state: reserveAccount,
1810
+ };
1811
+ });
1812
+ }
1813
+ /**
1814
+ * This will load the onchain state for all the reserves that the vaults have allocations for, deduplicating the reserves
1815
+ * @param vaults - the vault states to load reserves for
1816
+ * @param oracleAccounts (optional) all reserve oracle accounts, if not supplied will make an additional rpc call to fetch these accounts
1817
+ * @returns a hashmap from each reserve pubkey to the reserve state
1818
+ */
1819
+ async loadVaultsReserves(vaults, oracleAccounts) {
1820
+ const vaultReservesAddressesSet = new Set(vaults.flatMap((vault) => this.getVaultReserves(vault)));
1821
+ const vaultReservesAddresses = [...vaultReservesAddressesSet];
1822
+ const deserializedReserves = await (0, kliquidity_sdk_1.batchFetch)(vaultReservesAddresses, (chunk) => this.loadReserializedReserves(chunk));
1823
+ const [reservesAndOracles, cdnResourcesData] = await Promise.all([
1824
+ (0, lib_1.getTokenOracleData)(this.getConnection(), deserializedReserves, oracleAccounts),
1825
+ (0, readCdnData_1.fetchKaminoCdnData)(),
1826
+ ]);
1827
+ const kaminoReserves = new Map();
1828
+ reservesAndOracles.forEach(([reserve, oracle], index) => {
1829
+ if (!oracle) {
1830
+ throw Error(`Could not find oracle for ${(0, utils_1.parseTokenSymbol)(reserve.config.tokenInfo.name)} (${vaultReservesAddresses[index]}) reserve in market ${reserve.lendingMarket}`);
1831
+ }
1832
+ const kaminoReserve = lib_1.KaminoReserve.initialize(vaultReservesAddresses[index], reserve, oracle, this.getConnection(), this.recentSlotDurationMs, cdnResourcesData);
1833
+ kaminoReserves.set(kaminoReserve.address, kaminoReserve);
1834
+ });
1835
+ return kaminoReserves;
1836
+ }
1837
+ /**
1838
+ * This will retrieve all the tokens that can be used as collateral by the users who borrow the token in the vault alongside details about the min and max loan to value ratio
1839
+ * @param vaultState - the vault state to load reserves for
1840
+ * @param [slot] - the slot for which to retrieve the vault collaterals for. Optional. If not provided the function will fetch the current slot
1841
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1842
+ * @param [kaminoMarkets] - a list of all the kamino markets. Optional. If provided the function will be significantly faster as it will not have to fetch the markets
1843
+ * @param oracleAccounts (optional) all reserve oracle accounts, if not supplied will make an additional rpc call to fetch these accounts
1844
+ * @returns a hashmap from each reserve pubkey to the market overview of the collaterals that can be used and the min and max loan to value ratio in that market
1845
+ */
1846
+ async getVaultCollaterals(vaultState, slot, vaultReservesMap, kaminoMarkets, oracleAccounts) {
1847
+ const vaultReservesStateMap = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
1848
+ const vaultReservesState = [];
1849
+ const missingReserves = new Set([]);
1850
+ // filter the reserves that are not part of the vault allocation strategy
1851
+ vaultState.vaultAllocationStrategy.forEach(async (allocation) => {
1852
+ if (allocation.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
1853
+ return;
1854
+ }
1855
+ const reserve = vaultReservesStateMap.get(allocation.reserve);
1856
+ if (!reserve) {
1857
+ missingReserves.add(allocation.reserve);
1858
+ return;
1859
+ }
1860
+ vaultReservesState.push(reserve);
1861
+ });
1862
+ // read missing reserves
1863
+ const missingReserveAddresses = [...missingReserves];
1864
+ const missingReservesStates = (await lib_1.Reserve.fetchMultiple(this.getConnection(), missingReserveAddresses))
1865
+ .map((reserve, index) => {
1866
+ if (!reserve) {
1867
+ return null;
1868
+ }
1869
+ return {
1870
+ address: missingReserveAddresses[index],
1871
+ state: reserve,
1872
+ };
1873
+ })
1874
+ .filter((state) => state !== null);
1875
+ const missingReservesAndOracles = await (0, lib_1.getTokenOracleData)(this.getConnection(), missingReservesStates, oracleAccounts);
1876
+ missingReservesAndOracles.forEach(([reserve, oracle], index) => {
1877
+ const fetchedReserve = new lib_1.KaminoReserve(reserve, missingReserveAddresses[index], // Set maintains order
1878
+ oracle, this.getConnection(), this.recentSlotDurationMs);
1879
+ vaultReservesState.push(fetchedReserve);
1880
+ });
1881
+ const vaultCollateralsPerReserve = new Map();
1882
+ for (const reserve of vaultReservesState) {
1883
+ // try to read the market from the provided list, if it doesn't exist fetch it
1884
+ let lendingMarket = undefined;
1885
+ if (kaminoMarkets) {
1886
+ lendingMarket = kaminoMarkets?.find((market) => reserve.state.lendingMarket === market.address);
1887
+ }
1888
+ if (!lendingMarket) {
1889
+ const fetchedLendingMarket = await lib_1.KaminoMarket.load(this.getConnection(), reserve.state.lendingMarket, lib_1.DEFAULT_RECENT_SLOT_DURATION_MS);
1890
+ if (!fetchedLendingMarket) {
1891
+ throw Error(`Could not fetch lending market ${reserve.state.lendingMarket}`);
1892
+ }
1893
+ lendingMarket = fetchedLendingMarket;
1894
+ }
1895
+ const marketReserves = lendingMarket.getReserves();
1896
+ const marketOverview = {
1897
+ address: reserve.state.lendingMarket,
1898
+ reservesAsCollateral: [],
1899
+ minLTVPct: new decimal_js_1.default(0),
1900
+ maxLTVPct: new decimal_js_1.default(100),
1901
+ };
1902
+ marketReserves
1903
+ .filter((marketReserve) => {
1904
+ return (marketReserve.state.config.liquidationThresholdPct > 0 &&
1905
+ marketReserve.address !== reserve.address &&
1906
+ marketReserve.state.config.status === 0);
1907
+ })
1908
+ .map((filteredReserve) => {
1909
+ const reserveAsCollateral = {
1910
+ mint: filteredReserve.getLiquidityMint(),
1911
+ address: filteredReserve.address,
1912
+ liquidationLTVPct: new decimal_js_1.default(filteredReserve.state.config.liquidationThresholdPct),
1913
+ };
1914
+ marketOverview.reservesAsCollateral.push(reserveAsCollateral);
1915
+ if (reserveAsCollateral.liquidationLTVPct.lt(marketOverview.minLTVPct) || marketOverview.minLTVPct.eq(0)) {
1916
+ marketOverview.minLTVPct = reserveAsCollateral.liquidationLTVPct;
1917
+ }
1918
+ if (reserveAsCollateral.liquidationLTVPct.gt(marketOverview.maxLTVPct) || marketOverview.maxLTVPct.eq(0)) {
1919
+ marketOverview.maxLTVPct = reserveAsCollateral.liquidationLTVPct;
1920
+ }
1921
+ });
1922
+ vaultCollateralsPerReserve.set(reserve.address, marketOverview);
1923
+ }
1924
+ return vaultCollateralsPerReserve;
1925
+ }
1926
+ /**
1927
+ * This will return an VaultHoldings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
1928
+ * @param vault - the kamino vault to get available liquidity to withdraw for
1929
+ * @param [slot] - the slot for which to calculate the holdings. Optional. If not provided the function will fetch the current slot
1930
+ * @param [vaultReserves] - a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
1931
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
1932
+ * @returns an VaultHoldings object representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
1933
+ */
1934
+ async getVaultHoldings(vault, slot, vaultReserves, currentSlot) {
1935
+ const vaultHoldings = new VaultHoldings({
1936
+ available: new decimal_js_1.default(vault.tokenAvailable.toString()),
1937
+ invested: new decimal_js_1.default(0),
1938
+ investedInReserves: new Map(),
1939
+ totalAUMIncludingFees: new decimal_js_1.default(0),
1940
+ pendingFees: new decimal_js_1.default(0),
1941
+ });
1942
+ const currentSlotToUse = currentSlot ?? (await this.getConnection().getSlot({ commitment: 'confirmed' }).send());
1943
+ const vaultReservesState = vaultReserves ? vaultReserves : await this.loadVaultReserves(vault);
1944
+ const decimals = new decimal_js_1.default(vault.tokenMintDecimals.toString());
1945
+ vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
1946
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
1947
+ return;
1948
+ }
1949
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
1950
+ if (reserve === undefined) {
1951
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
1952
+ }
1953
+ let reserveCollExchangeRate;
1954
+ if (slot) {
1955
+ reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, 0);
1956
+ }
1957
+ else {
1958
+ reserveCollExchangeRate = reserve.getCollateralExchangeRate();
1959
+ }
1960
+ const reserveAllocationLiquidityAmount = new decimal_js_1.default(allocationStrategy.ctokenAllocation.toString()).div(reserveCollExchangeRate);
1961
+ vaultHoldings.invested = vaultHoldings.invested.add(reserveAllocationLiquidityAmount);
1962
+ vaultHoldings.investedInReserves.set(allocationStrategy.reserve, (0, lib_1.lamportsToDecimal)(reserveAllocationLiquidityAmount, decimals));
1963
+ });
1964
+ const currentPendingFees = new fraction_1.Fraction(vault.pendingFeesSf).toDecimal();
1965
+ let totalPendingFees = currentPendingFees;
1966
+ // if there is a slot passed and it is in the future we need to estimate the fees from current time until that moment
1967
+ if (slot && slot > currentSlotToUse) {
1968
+ const currentTimestampSec = new Date().getTime() / 1000;
1969
+ const timeAtPassedSlot = currentTimestampSec + Number.parseInt((slot - currentSlotToUse).toString()) * this.recentSlotDurationMs;
1970
+ const timeUntilPassedSlot = timeAtPassedSlot - currentTimestampSec;
1971
+ const managementFeeFactor = new decimal_js_1.default(timeUntilPassedSlot)
1972
+ .mul(new decimal_js_1.default(vault.managementFeeBps.toString()))
1973
+ .div(new decimal_js_1.default(utils_2.SECONDS_PER_YEAR))
1974
+ .div(CreationParameters_1.FullBPSDecimal);
1975
+ const prevAUM = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vault.prevAumSf).toDecimal(), vault.tokenMintDecimals.toNumber());
1976
+ const simulatedMgmtFee = prevAUM.mul(managementFeeFactor);
1977
+ totalPendingFees = totalPendingFees.add(simulatedMgmtFee);
1978
+ const simulatedEarnedInterest = vaultHoldings.invested
1979
+ .add(vaultHoldings.available)
1980
+ .sub(prevAUM)
1981
+ .sub(simulatedMgmtFee);
1982
+ const simulatedPerformanceFee = simulatedEarnedInterest
1983
+ .mul(new decimal_js_1.default(vault.performanceFeeBps.toString()))
1984
+ .div(CreationParameters_1.FullBPSDecimal);
1985
+ totalPendingFees = totalPendingFees.add(simulatedPerformanceFee);
1986
+ }
1987
+ const totalAvailableDecimal = (0, lib_1.lamportsToDecimal)(vaultHoldings.available, decimals);
1988
+ const totalInvestedDecimal = (0, lib_1.lamportsToDecimal)(vaultHoldings.invested, decimals);
1989
+ const pendingFees = (0, lib_1.lamportsToDecimal)(totalPendingFees, decimals);
1990
+ return new VaultHoldings({
1991
+ available: totalAvailableDecimal,
1992
+ invested: totalInvestedDecimal,
1993
+ investedInReserves: vaultHoldings.investedInReserves,
1994
+ totalAUMIncludingFees: totalAvailableDecimal.add(totalInvestedDecimal),
1995
+ pendingFees: pendingFees,
1996
+ });
1997
+ }
1998
+ /**
1999
+ * This will return an VaultOverview object that encapsulates all the information about the vault, including the holdings, reserves details, theoretical APY, utilization ratio and total borrowed amount
2000
+ * @param vault - the kamino vault to get available liquidity to withdraw for
2001
+ * @param price - the price of the token in the vault (e.g. USDC)
2002
+ * @param [slot] - the slot for which to retrieve the vault overview for. Optional. If not provided the function will fetch the current slot
2003
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2004
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
2005
+ * @returns an VaultOverview object with details about the tokens available and invested in the vault, denominated in tokens and USD
2006
+ */
2007
+ async getVaultHoldingsWithPrice(vault, price, slot, vaultReservesMap, currentSlot) {
2008
+ const holdings = await this.getVaultHoldings(vault, slot, vaultReservesMap, currentSlot);
2009
+ const investedInReservesUSD = new Map();
2010
+ holdings.investedInReserves.forEach((amount, reserve) => {
2011
+ investedInReservesUSD.set(reserve, amount.mul(price));
2012
+ });
2013
+ return {
2014
+ holdings: holdings,
2015
+ availableUSD: holdings.available.mul(price),
2016
+ investedUSD: holdings.invested.mul(price),
2017
+ investedInReservesUSD: investedInReservesUSD,
2018
+ totalUSDIncludingFees: holdings.totalAUMIncludingFees.mul(price),
2019
+ pendingFeesUSD: holdings.pendingFees.mul(price),
2020
+ };
2021
+ }
2022
+ /**
2023
+ * This will return an VaultOverview object that encapsulates all the information about the vault, including the holdings, reserves details, theoretical APY, utilization ratio and total borrowed amount
2024
+ * @param vault - the kamino vault to get available liquidity to withdraw for
2025
+ * @param vaultTokenPrice - the price of the token in the vault (e.g. USDC)
2026
+ * @param [slot] - the slot for which to retrieve the vault overview for. Optional. If not provided the function will fetch the current slot
2027
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2028
+ * @param [kaminoMarkets] - a list of all kamino markets. Optional. If provided the function will be significantly faster as it will not have to fetch the markets
2029
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
2030
+ * @param [tokensPrices] - a hashmap from a token pubkey to the price of the token in USD. Optional. If some tokens are not in the map, the function will fetch the price
2031
+ * @returns an VaultOverview object with details about the tokens available and invested in the vault, denominated in tokens and USD, along sie APYs
2032
+ */
2033
+ async getVaultOverview(vault, vaultTokenPrice, slot, vaultReservesMap, kaminoMarkets, currentSlot, tokensPrices) {
2034
+ const vaultState = await vault.getState();
2035
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
2036
+ const vaultHoldingsWithUSDValuePromise = this.getVaultHoldingsWithPrice(vaultState, vaultTokenPrice, slot, vaultReservesState, currentSlot);
2037
+ const slotForOverview = slot ? slot : await this.getConnection().getSlot().send();
2038
+ const farmsClient = new farms_sdk_1.Farms(this.getConnection());
2039
+ const vaultTheoreticalAPYPromise = this.getVaultTheoreticalAPY(vaultState, slotForOverview, vaultReservesState);
2040
+ const vaultActualAPYPromise = this.getVaultActualAPY(vaultState, slotForOverview, vaultReservesState);
2041
+ const totalInvestedAndBorrowedPromise = this.getTotalBorrowedAndInvested(vaultState, slotForOverview, vaultReservesState);
2042
+ const vaultCollateralsPromise = this.getVaultCollaterals(vaultState, slotForOverview, vaultReservesState, kaminoMarkets);
2043
+ const reservesOverviewPromise = this.getVaultReservesDetails(vaultState, slotForOverview, vaultReservesState);
2044
+ const vaultFarmIncentivesPromise = this.getVaultRewardsAPY(vault, vaultTokenPrice, farmsClient, slotForOverview, tokensPrices);
2045
+ const vaultReservesFarmIncentivesPromise = this.getVaultReservesFarmsIncentives(vault, vaultTokenPrice, farmsClient, slotForOverview, vaultReservesState, tokensPrices);
2046
+ const vaultDelegatedFarmIncentivesPromise = this.getVaultDelegatedFarmRewardsAPY(vault, vaultTokenPrice, farmsClient, slotForOverview, tokensPrices);
2047
+ // all the async part of the functions above just read the vaultReservesState which is read beforehand, so excepting vaultCollateralsPromise they should do no additional network calls
2048
+ const [vaultHoldingsWithUSDValue, vaultTheoreticalAPYs, vaultActualAPYs, totalInvestedAndBorrowed, vaultCollaterals, reservesOverview, vaultFarmIncentives, vaultReservesFarmIncentives, vaultDelegatedFarmIncentives,] = await Promise.all([
2049
+ vaultHoldingsWithUSDValuePromise,
2050
+ vaultTheoreticalAPYPromise,
2051
+ vaultActualAPYPromise,
2052
+ totalInvestedAndBorrowedPromise,
2053
+ vaultCollateralsPromise,
2054
+ reservesOverviewPromise,
2055
+ vaultFarmIncentivesPromise,
2056
+ vaultReservesFarmIncentivesPromise,
2057
+ vaultDelegatedFarmIncentivesPromise,
2058
+ ]);
2059
+ return {
2060
+ holdingsUSD: vaultHoldingsWithUSDValue,
2061
+ reservesOverview: reservesOverview,
2062
+ vaultCollaterals: vaultCollaterals,
2063
+ actualSupplyAPY: vaultActualAPYs,
2064
+ theoreticalSupplyAPY: vaultTheoreticalAPYs,
2065
+ vaultFarmIncentives: vaultFarmIncentives,
2066
+ reservesFarmsIncentives: vaultReservesFarmIncentives,
2067
+ delegatedFarmIncentives: vaultDelegatedFarmIncentives,
2068
+ totalBorrowed: totalInvestedAndBorrowed.totalBorrowed,
2069
+ totalBorrowedUSD: totalInvestedAndBorrowed.totalBorrowed.mul(vaultTokenPrice),
2070
+ utilizationRatio: totalInvestedAndBorrowed.utilizationRatio,
2071
+ totalSupplied: totalInvestedAndBorrowed.totalInvested,
2072
+ totalSuppliedUSD: totalInvestedAndBorrowed.totalInvested.mul(vaultTokenPrice),
2073
+ };
2074
+ }
2075
+ /**
2076
+ * This will return an aggregation of the current state of the vault with all the invested amounts and the utilization ratio of the vault
2077
+ * @param vault - the kamino vault to get available liquidity to withdraw for
2078
+ * @param slot - current slot
2079
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2080
+ * @returns an VaultReserveTotalBorrowedAndInvested object with the total invested amount, total borrowed amount and the utilization ratio of the vault
2081
+ */
2082
+ async getTotalBorrowedAndInvested(vault, slot, vaultReservesMap) {
2083
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vault);
2084
+ const totalAvailable = (0, lib_1.lamportsToDecimal)(new decimal_js_1.default(vault.tokenAvailable.toString()), new decimal_js_1.default(vault.tokenMintDecimals.toString()));
2085
+ let totalInvested = new decimal_js_1.default(0);
2086
+ let totalBorrowed = new decimal_js_1.default(0);
2087
+ vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
2088
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
2089
+ return;
2090
+ }
2091
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
2092
+ if (reserve === undefined) {
2093
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
2094
+ }
2095
+ const reserveCollExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, 0);
2096
+ const reserveAllocationLiquidityAmountLamports = new decimal_js_1.default(allocationStrategy.ctokenAllocation.toString()).div(reserveCollExchangeRate);
2097
+ const reserveAllocationLiquidityAmount = (0, lib_1.lamportsToDecimal)(reserveAllocationLiquidityAmountLamports, vault.tokenMintDecimals.toString());
2098
+ const utilizationRatio = reserve.getEstimatedUtilizationRatio(slot, 0);
2099
+ totalInvested = totalInvested.add(reserveAllocationLiquidityAmount);
2100
+ totalBorrowed = totalBorrowed.add(reserveAllocationLiquidityAmount.mul(utilizationRatio));
2101
+ });
2102
+ let utilizationRatio = new decimal_js_1.default(0);
2103
+ if (!totalInvested.isZero()) {
2104
+ utilizationRatio = totalBorrowed.div(totalInvested.add(totalAvailable));
2105
+ }
2106
+ return {
2107
+ totalInvested: totalInvested,
2108
+ totalBorrowed: totalBorrowed,
2109
+ utilizationRatio: utilizationRatio,
2110
+ };
2111
+ }
2112
+ /**
2113
+ * This will return a map of the cumulative rewards issued for all the delegated farms
2114
+ * @param [vaults] - the vaults to get the cumulative rewards for; if not provided, the function will get the cumulative rewards for all the vaults
2115
+ * @returns a map of the cumulative rewards issued for all the delegated farms, per token, in lamports
2116
+ */
2117
+ async getCumulativeDelegatedFarmsRewardsIssuedForAllVaults(vaults) {
2118
+ const vaultsWithDelegatedFarms = await this.getVaultsWithDelegatedFarm();
2119
+ const delegatedFarmsAddresses = [];
2120
+ if (vaults) {
2121
+ vaults.forEach((vault) => {
2122
+ const delegatedFarm = vaultsWithDelegatedFarms.get(vault);
2123
+ if (delegatedFarm) {
2124
+ delegatedFarmsAddresses.push(delegatedFarm);
2125
+ }
2126
+ });
2127
+ }
2128
+ else {
2129
+ delegatedFarmsAddresses.push(...Array.from(vaultsWithDelegatedFarms.values()));
2130
+ }
2131
+ const farmsSDK = new farms_sdk_1.Farms(this.getConnection());
2132
+ const delegatedFarmsStates = await farmsSDK.fetchMultipleFarmStatesWithCheckedSize(delegatedFarmsAddresses);
2133
+ const cumulativeRewardsPerToken = new Map();
2134
+ for (const delegatedFarmState of delegatedFarmsStates) {
2135
+ if (!delegatedFarmState) {
2136
+ continue;
2137
+ }
2138
+ delegatedFarmState.rewardInfos.forEach((rewardInfo) => {
2139
+ if (rewardInfo.token.mint === lib_1.DEFAULT_PUBLIC_KEY) {
2140
+ return;
2141
+ }
2142
+ const rewardTokenMint = rewardInfo.token.mint;
2143
+ if (cumulativeRewardsPerToken.has(rewardTokenMint)) {
2144
+ cumulativeRewardsPerToken.set(rewardTokenMint, cumulativeRewardsPerToken
2145
+ .get(rewardTokenMint)
2146
+ .add(new decimal_js_1.default(rewardInfo.rewardsIssuedCumulative.toString())));
2147
+ }
2148
+ else {
2149
+ cumulativeRewardsPerToken.set(rewardTokenMint, new decimal_js_1.default(rewardInfo.rewardsIssuedCumulative.toString()));
2150
+ }
2151
+ });
2152
+ }
2153
+ return cumulativeRewardsPerToken;
2154
+ }
2155
+ /**
2156
+ * This will return an overview of each reserve that is part of the vault allocation
2157
+ * @param vault - the kamino vault to get available liquidity to withdraw for
2158
+ * @param slot - current slot
2159
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2160
+ * @returns a hashmap from vault reserve pubkey to ReserveOverview object
2161
+ */
2162
+ async getVaultReservesDetails(vault, slot, vaultReserves) {
2163
+ const vaultReservesState = vaultReserves ? vaultReserves : await this.loadVaultReserves(vault);
2164
+ const reservesDetails = new Map();
2165
+ vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
2166
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
2167
+ return;
2168
+ }
2169
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
2170
+ if (reserve === undefined) {
2171
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
2172
+ }
2173
+ const suppliedInReserve = this.getSuppliedInReserve(vault, slot, reserve);
2174
+ const utilizationRatio = new decimal_js_1.default(reserve.getEstimatedUtilizationRatio(slot, 0));
2175
+ const reserveOverview = {
2176
+ supplyAPY: new decimal_js_1.default(reserve.totalSupplyAPY(slot)),
2177
+ utilizationRatio: utilizationRatio,
2178
+ liquidationThresholdPct: new decimal_js_1.default(reserve.state.config.liquidationThresholdPct),
2179
+ totalBorrowedAmount: reserve.getBorrowedAmount(),
2180
+ amountBorrowedFromSupplied: suppliedInReserve.mul(utilizationRatio),
2181
+ market: reserve.state.lendingMarket,
2182
+ suppliedAmount: suppliedInReserve,
2183
+ };
2184
+ reservesDetails.set(allocationStrategy.reserve, reserveOverview);
2185
+ });
2186
+ return reservesDetails;
2187
+ }
2188
+ /**
2189
+ * This will return the APY of the vault under the assumption that all the available tokens in the vault are all the time invested in the reserves as requested by the weights; for percentage it needs multiplication by 100
2190
+ * @param vault - the kamino vault to get APY for
2191
+ * @param slot - current slot
2192
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2193
+ * @returns a struct containing estimated gross APY and net APY (gross - vault fees) for the vault
2194
+ */
2195
+ async getVaultTheoreticalAPY(vault, slot, vaultReservesMap) {
2196
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vault);
2197
+ let totalWeights = new decimal_js_1.default(0);
2198
+ let totalAPY = new decimal_js_1.default(0);
2199
+ vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
2200
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
2201
+ return;
2202
+ }
2203
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
2204
+ if (reserve === undefined) {
2205
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
2206
+ }
2207
+ const reserveAPY = new decimal_js_1.default(reserve.totalSupplyAPY(slot));
2208
+ const weight = new decimal_js_1.default(allocationStrategy.targetAllocationWeight.toString());
2209
+ const weightedAPY = reserveAPY.mul(weight);
2210
+ totalAPY = totalAPY.add(weightedAPY);
2211
+ totalWeights = totalWeights.add(weight);
2212
+ });
2213
+ if (totalWeights.isZero()) {
2214
+ return {
2215
+ grossAPY: new decimal_js_1.default(0),
2216
+ netAPY: new decimal_js_1.default(0),
2217
+ };
2218
+ }
2219
+ const grossAPY = totalAPY.div(totalWeights);
2220
+ const netAPY = grossAPY
2221
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.performanceFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)))
2222
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.managementFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)));
2223
+ return {
2224
+ grossAPY,
2225
+ netAPY,
2226
+ };
2227
+ }
2228
+ /**
2229
+ * This will return the APY of the vault based on the current invested amounts; for percentage it needs multiplication by 100
2230
+ * @param vault - the kamino vault to get APY for
2231
+ * @param slot - current slot
2232
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2233
+ * @returns a struct containing estimated gross APY and net APY (gross - vault fees) for the vault
2234
+ */
2235
+ async getVaultActualAPY(vault, slot, vaultReservesMap) {
2236
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vault);
2237
+ let totalAUM = new decimal_js_1.default(vault.tokenAvailable.toString());
2238
+ let totalAPY = new decimal_js_1.default(0);
2239
+ vault.vaultAllocationStrategy.forEach((allocationStrategy) => {
2240
+ if (allocationStrategy.reserve === lib_1.DEFAULT_PUBLIC_KEY) {
2241
+ return;
2242
+ }
2243
+ const reserve = vaultReservesState.get(allocationStrategy.reserve);
2244
+ if (reserve === undefined) {
2245
+ throw new Error(`Reserve ${allocationStrategy.reserve} not found`);
2246
+ }
2247
+ const reserveAPY = new decimal_js_1.default(reserve.totalSupplyAPY(slot));
2248
+ const exchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, 0);
2249
+ const investedInReserve = exchangeRate.mul(new decimal_js_1.default(allocationStrategy.ctokenAllocation.toString()));
2250
+ const weightedAPY = reserveAPY.mul(investedInReserve);
2251
+ totalAPY = totalAPY.add(weightedAPY);
2252
+ totalAUM = totalAUM.add(investedInReserve);
2253
+ });
2254
+ if (totalAUM.isZero()) {
2255
+ return {
2256
+ grossAPY: new decimal_js_1.default(0),
2257
+ netAPY: new decimal_js_1.default(0),
2258
+ };
2259
+ }
2260
+ const grossAPY = totalAPY.div(totalAUM);
2261
+ const netAPY = grossAPY
2262
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.performanceFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)))
2263
+ .mul(new decimal_js_1.default(1).sub(new decimal_js_1.default(vault.managementFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal)));
2264
+ return {
2265
+ grossAPY,
2266
+ netAPY,
2267
+ };
2268
+ }
2269
+ /**
2270
+ * Retrive the total amount of interest earned by the vault since its inception, up to the last interaction with the vault on chain, including what was charged as fees
2271
+ * @param vaultState the kamino vault state to get total net yield for
2272
+ * @returns a struct containing a Decimal representing the net number of tokens earned by the vault since its inception and the timestamp of the last fee charge
2273
+ */
2274
+ async getVaultCumulativeInterest(vaultState) {
2275
+ const netYieldLamports = new fraction_1.Fraction(vaultState.cumulativeEarnedInterestSf).toDecimal();
2276
+ const cumulativeInterest = (0, lib_1.lamportsToDecimal)(netYieldLamports, vaultState.tokenMintDecimals.toString());
2277
+ return {
2278
+ cumulativeInterest: cumulativeInterest,
2279
+ timestamp: vaultState.lastFeeChargeTimestamp.toNumber(),
2280
+ };
2281
+ }
2282
+ /**
2283
+ * Simulate the current holdings of the vault and the earned interest
2284
+ * @param vaultState the kamino vault state to get simulated holdings and earnings for
2285
+ * @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2286
+ * @param [currentSlot] - the current slot. Optional. If not provided it will fetch the current slot
2287
+ * @param [previousNetAUM] - the previous AUM of the vault to compute the earned interest relative to this value. Optional. If not provided the function will estimate the total AUM at the slot of the last state update on chain
2288
+ * @param [currentSlot] - the latest confirmed slot. Optional. If provided the function will be faster as it will not have to fetch the latest slot
2289
+ * @returns a struct of simulated vault holdings and earned interest
2290
+ */
2291
+ async calculateSimulatedHoldingsWithInterest(vaultState, vaultReservesMap, slot, previousNetAUM, currentSlot) {
2292
+ let prevAUM;
2293
+ let pendingFees = kliquidity_sdk_1.ZERO;
2294
+ if (previousNetAUM) {
2295
+ prevAUM = previousNetAUM;
2296
+ }
2297
+ else {
2298
+ const tokenDecimals = vaultState.tokenMintDecimals.toNumber();
2299
+ prevAUM = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vaultState.prevAumSf).toDecimal(), tokenDecimals);
2300
+ pendingFees = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vaultState.pendingFeesSf).toDecimal(), tokenDecimals);
2301
+ }
2302
+ const latestSlot = slot ? slot : await this.getConnection().getSlot({ commitment: 'confirmed' }).send();
2303
+ const currentHoldings = await this.getVaultHoldings(vaultState, latestSlot, vaultReservesMap, currentSlot);
2304
+ const earnedInterest = currentHoldings.totalAUMIncludingFees.sub(prevAUM).sub(pendingFees);
2305
+ return {
2306
+ holdings: currentHoldings,
2307
+ earnedInterest: earnedInterest,
2308
+ };
2309
+ }
2310
+ /**
2311
+ * Simulate the current holdings and compute the fees that would be charged
2312
+ * @param vaultState the kamino vault state to get simulated fees for
2313
+ * @param [simulatedCurrentHoldingsWithInterest] the simulated holdings and interest earned by the vault. Optional
2314
+ * @param [currentTimestamp] the current date. Optional. If not provided it will fetch the current unix timestamp
2315
+ * @returns a VaultFees struct of simulated management and interest fees
2316
+ */
2317
+ async calculateSimulatedFees(vaultState, simulatedCurrentHoldingsWithInterest, currentTimestamp) {
2318
+ const timestampNowInSeconds = currentTimestamp ? currentTimestamp.valueOf() / 1000 : Date.now() / 1000;
2319
+ const timestampLastUpdate = vaultState.lastFeeChargeTimestamp.toNumber();
2320
+ const timeElapsed = timestampNowInSeconds - timestampLastUpdate;
2321
+ const simulatedCurrentHoldings = simulatedCurrentHoldingsWithInterest
2322
+ ? simulatedCurrentHoldingsWithInterest
2323
+ : await this.calculateSimulatedHoldingsWithInterest(vaultState);
2324
+ const performanceFee = simulatedCurrentHoldings.earnedInterest.mul(new decimal_js_1.default(vaultState.performanceFeeBps.toString()).div(CreationParameters_1.FullBPSDecimal));
2325
+ const managementFeeFactor = new decimal_js_1.default(timeElapsed)
2326
+ .mul(new decimal_js_1.default(vaultState.managementFeeBps.toString()))
2327
+ .div(new decimal_js_1.default(utils_2.SECONDS_PER_YEAR))
2328
+ .div(CreationParameters_1.FullBPSDecimal);
2329
+ const prevAUM = (0, lib_1.lamportsToDecimal)(new fraction_1.Fraction(vaultState.prevAumSf).toDecimal(), vaultState.tokenMintDecimals.toNumber());
2330
+ const mgmtFee = prevAUM.mul(managementFeeFactor);
2331
+ return {
2332
+ managementFee: mgmtFee,
2333
+ performanceFee: performanceFee,
2334
+ };
2335
+ }
2336
+ /**
2337
+ * This will compute the PDA that is used as delegatee in Farms program to compute the user state PDA for vault depositor investing in vault with reserve having a supply farm
2338
+ */
2339
+ computeUserFarmStateDelegateePDAForUserInVault(farmsProgramId, vault, reserve, user) {
2340
+ return (0, kit_1.getProgramDerivedAddress)({
2341
+ seeds: [addressEncoder.encode(reserve), addressEncoder.encode(vault), addressEncoder.encode(user)],
2342
+ programAddress: farmsProgramId,
2343
+ });
2344
+ }
2345
+ /**
2346
+ * Compute the delegatee PDA for the user farm state for a vault delegate farm
2347
+ * @param farmProgramID - the program ID of the farm program
2348
+ * @param vault - the address of the vault
2349
+ * @param farm - the address of the delegated farm
2350
+ * @param user - the address of the user
2351
+ * @returns the PDA of the delegatee user farm state for the delegated farm
2352
+ */
2353
+ async computeUserFarmStateDelegateePDAForUserInDelegatedVaultFarm(farmProgramID, vault, farm, user) {
2354
+ return (0, kit_1.getProgramDerivedAddress)({
2355
+ seeds: [addressEncoder.encode(vault), addressEncoder.encode(farm), addressEncoder.encode(user)],
2356
+ programAddress: farmProgramID,
2357
+ });
2358
+ }
2359
+ /**
2360
+ * Compute the user state PDA for a user in a delegated vault farm
2361
+ * @param farmProgramID - the program ID of the farm program
2362
+ * @param vault - the address of the vault
2363
+ * @param farm - the address of the delegated farm
2364
+ * @param user - the address of the user
2365
+ * @returns the PDA of the user state for the delegated farm
2366
+ */
2367
+ async computeUserStatePDAForUserInDelegatedVaultFarm(farmProgramID, vault, farm, user) {
2368
+ const delegateePDA = await this.computeDelegateeForUserInDelegatedFarm(farmProgramID, vault, farm, user);
2369
+ return (0, dist_1.getUserStatePDA)(farmProgramID, farm, delegateePDA);
2370
+ }
2371
+ async computeDelegateeForUserInDelegatedFarm(farmProgramID, vault, farm, user) {
2372
+ const delegateePDA = await this.computeUserFarmStateDelegateePDAForUserInDelegatedVaultFarm(farmProgramID, vault, farm, user);
2373
+ return delegateePDA[0];
2374
+ }
2375
+ /**
2376
+ * Read the APY of the farm built on top of the vault (farm in vaultState.vaultFarm)
2377
+ * @param vault - the vault to read the farm APY for
2378
+ * @param vaultTokenPrice - the price of the vault token in USD (e.g. 1.0 for USDC)
2379
+ * @param [farmsClient] - the farms client to use. Optional. If not provided, the function will create a new one
2380
+ * @param [slot] - the slot to read the farm APY for. Optional. If not provided, the function will read the current slot
2381
+ * @returns the APY of the farm built on top of the vault
2382
+ */
2383
+ async getVaultRewardsAPY(vaultOrState, vaultTokenPrice, farmsClient, slot, tokensPrices) {
2384
+ // Determine if we have a KaminoVault or VaultState
2385
+ const vaultState = 'getState' in vaultOrState ? await vaultOrState.getState() : vaultOrState;
2386
+ if (vaultState.vaultFarm === lib_1.DEFAULT_PUBLIC_KEY) {
2387
+ return {
2388
+ incentivesStats: [],
2389
+ totalIncentivesApy: 0,
2390
+ };
2391
+ }
2392
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vaultState, slot);
2393
+ const sharePrice = tokensPerShare.mul(vaultTokenPrice);
2394
+ const stakedTokenMintDecimals = vaultState.sharesMintDecimals.toNumber();
2395
+ const kFarmsClient = farmsClient ? farmsClient : new farms_sdk_1.Farms(this.getConnection());
2396
+ return (0, apy_1.getFarmIncentives)(kFarmsClient, vaultState.vaultFarm, sharePrice, stakedTokenMintDecimals, tokensPrices);
2397
+ }
2398
+ /**
2399
+ * Read the APY of the delegated farm providing incentives for vault depositors
2400
+ * @param vault - the vault to read the farm APY for
2401
+ * @param vaultTokenPrice - the price of the vault token in USD (e.g. 1.0 for USDC)
2402
+ * @param [farmsClient] - the farms client to use. Optional. If not provided, the function will create a new one
2403
+ * @param [slot] - the slot to read the farm APY for. Optional. If not provided, the function will read the current slot
2404
+ * @param [tokensPrices] - the prices of the tokens in USD. Optional. If not provided, the function will fetch the prices
2405
+ * @returns the APY of the delegated farm providing incentives for vault depositors
2406
+ */
2407
+ async getVaultDelegatedFarmRewardsAPY(vault, vaultTokenPrice, farmsClient, slot, tokensPrices) {
2408
+ const delegatedFarm = await this.getDelegatedFarmForVault(vault.address);
2409
+ if (!delegatedFarm) {
2410
+ return {
2411
+ incentivesStats: [],
2412
+ totalIncentivesApy: 0,
2413
+ };
2414
+ }
2415
+ const vaultState = await vault.getState();
2416
+ const tokensPerShare = await this.getTokensPerShareSingleVault(vaultState, slot);
2417
+ const sharePrice = tokensPerShare.mul(vaultTokenPrice);
2418
+ const stakedTokenMintDecimals = vaultState.sharesMintDecimals.toNumber();
2419
+ const kFarmsClient = farmsClient ? farmsClient : new farms_sdk_1.Farms(this.getConnection());
2420
+ return (0, apy_1.getFarmIncentives)(kFarmsClient, delegatedFarm, sharePrice, stakedTokenMintDecimals, tokensPrices);
2421
+ }
2422
+ /**
2423
+ * Get all the token mints of the vault, vault farm rewards and the allocation rewards
2424
+ * @param vaults - the vaults to get the token mints for
2425
+ * @param [vaultReservesMap] - the vault reserves map to get the reserves for; if not provided, the function will fetch the reserves
2426
+ * @param farmsMap - the farms map to get the farms for
2427
+ * @returns a set of token mints
2428
+ */
2429
+ async getAllVaultsTokenMintsIncludingRewards(vaults, vaultReservesMap, farmsMap) {
2430
+ const vaultsTokenMints = new Set();
2431
+ const kFarmsMap = farmsMap ? farmsMap : new Map();
2432
+ const farmsToFetch = new Set();
2433
+ const reservesToFetch = new Set();
2434
+ for (const vault of vaults) {
2435
+ const vaultState = await vault.getState();
2436
+ vaultsTokenMints.add(vaultState.tokenMint);
2437
+ const hasFarm = await vault.hasFarm();
2438
+ if (hasFarm) {
2439
+ const farmAddress = vaultState.vaultFarm;
2440
+ if (!kFarmsMap.has(farmAddress)) {
2441
+ farmsToFetch.add(farmAddress);
2442
+ }
2443
+ else {
2444
+ const farmState = kFarmsMap.get(farmAddress);
2445
+ farmState.rewardInfos.forEach((rewardInfo) => {
2446
+ if (rewardInfo.token.mint !== lib_1.DEFAULT_PUBLIC_KEY) {
2447
+ vaultsTokenMints.add(rewardInfo.token.mint);
2448
+ }
2449
+ });
2450
+ }
2451
+ }
2452
+ const reserves = vaultState.vaultAllocationStrategy.map((allocationStrategy) => allocationStrategy.reserve);
2453
+ reserves.forEach((reserve) => {
2454
+ if (reserve === lib_1.DEFAULT_PUBLIC_KEY) {
2455
+ return;
2456
+ }
2457
+ if (vaultReservesMap && !vaultReservesMap.has(reserve)) {
2458
+ const reserveState = vaultReservesMap.get(reserve);
2459
+ const supplyFarm = reserveState.state.farmCollateral;
2460
+ if (supplyFarm !== lib_1.DEFAULT_PUBLIC_KEY) {
2461
+ if (!kFarmsMap.has(supplyFarm)) {
2462
+ farmsToFetch.add(supplyFarm);
2463
+ }
2464
+ else {
2465
+ const farmState = kFarmsMap.get(supplyFarm);
2466
+ farmState.rewardInfos.forEach((rewardInfo) => {
2467
+ if (rewardInfo.token.mint !== lib_1.DEFAULT_PUBLIC_KEY) {
2468
+ vaultsTokenMints.add(rewardInfo.token.mint);
2469
+ }
2470
+ });
2471
+ }
2472
+ }
2473
+ }
2474
+ else {
2475
+ reservesToFetch.add(reserve);
2476
+ }
2477
+ });
2478
+ }
2479
+ // fetch the reserves first so we can add their farms to farms to be fetched, if needed
2480
+ const missingReservesStates = await lib_1.Reserve.fetchMultiple(this.getConnection(), Array.from(reservesToFetch));
2481
+ missingReservesStates.forEach((reserveState) => {
2482
+ if (reserveState) {
2483
+ const supplyFarm = reserveState.farmCollateral;
2484
+ if (supplyFarm !== lib_1.DEFAULT_PUBLIC_KEY) {
2485
+ if (!kFarmsMap.has(supplyFarm)) {
2486
+ farmsToFetch.add(supplyFarm);
2487
+ }
2488
+ else {
2489
+ const farmState = kFarmsMap.get(supplyFarm);
2490
+ farmState.rewardInfos.forEach((rewardInfo) => {
2491
+ if (rewardInfo.token.mint !== lib_1.DEFAULT_PUBLIC_KEY) {
2492
+ vaultsTokenMints.add(rewardInfo.token.mint);
2493
+ }
2494
+ });
2495
+ }
2496
+ }
2497
+ }
2498
+ });
2499
+ // fetch the missing farms
2500
+ const missingFarmsStates = await dist_1.FarmState.fetchMultiple(this.getConnection(), Array.from(farmsToFetch));
2501
+ missingFarmsStates.forEach((farmState) => {
2502
+ if (farmState) {
2503
+ farmState.rewardInfos.forEach((rewardInfo) => {
2504
+ if (rewardInfo.token.mint !== lib_1.DEFAULT_PUBLIC_KEY) {
2505
+ vaultsTokenMints.add(rewardInfo.token.mint);
2506
+ }
2507
+ });
2508
+ }
2509
+ });
2510
+ return vaultsTokenMints;
2511
+ }
2512
+ async getVaultReservesFarmsIncentives(vaultOrState, vaultTokenPrice, farmsClient, slot, vaultReservesMap, tokensPrices) {
2513
+ const vaultState = 'getState' in vaultOrState ? await vaultOrState.getState() : vaultOrState;
2514
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
2515
+ const currentSlot = slot ?? (await this.getConnection().getSlot({ commitment: 'confirmed' }).send());
2516
+ const holdings = await this.getVaultHoldings(vaultState, currentSlot, vaultReservesState);
2517
+ const vaultReservesAddresses = vaultState.vaultAllocationStrategy.map((allocationStrategy) => allocationStrategy.reserve);
2518
+ const vaultReservesFarmsIncentives = new Map();
2519
+ let totalIncentivesApy = new decimal_js_1.default(0);
2520
+ const kFarmsClient = farmsClient ? farmsClient : new farms_sdk_1.Farms(this.getConnection());
2521
+ for (const reserveAddress of vaultReservesAddresses) {
2522
+ if (reserveAddress === lib_1.DEFAULT_PUBLIC_KEY) {
2523
+ continue;
2524
+ }
2525
+ const reserveState = vaultReservesState.get(reserveAddress);
2526
+ if (reserveState === undefined) {
2527
+ console.log(`Reserve to read farm incentives for not found: ${reserveAddress}`);
2528
+ vaultReservesFarmsIncentives.set(reserveAddress, {
2529
+ incentivesStats: [],
2530
+ totalIncentivesApy: 0,
2531
+ });
2532
+ continue;
2533
+ }
2534
+ const reserveFarmIncentives = await (0, farmUtils_1.getReserveFarmRewardsAPY)(this._rpc, this.recentSlotDurationMs, reserveAddress, vaultTokenPrice, this._kaminoLendProgramId, kFarmsClient, currentSlot, reserveState.state, tokensPrices);
2535
+ vaultReservesFarmsIncentives.set(reserveAddress, reserveFarmIncentives.collateralFarmIncentives);
2536
+ const investedInReserve = holdings.investedInReserves.get(reserveAddress);
2537
+ const weightedReserveAPY = new decimal_js_1.default(reserveFarmIncentives.collateralFarmIncentives.totalIncentivesApy)
2538
+ .mul(investedInReserve ?? 0)
2539
+ .div(holdings.totalAUMIncludingFees);
2540
+ totalIncentivesApy = totalIncentivesApy.add(weightedReserveAPY);
2541
+ }
2542
+ return {
2543
+ reserveFarmsIncentives: vaultReservesFarmsIncentives,
2544
+ totalIncentivesAPY: totalIncentivesApy,
2545
+ };
2546
+ }
2547
+ /// reads the pending rewards for a user in the vault farm
2548
+ /// @param user - the user address
2549
+ /// @param vault - the vault
2550
+ /// @returns a map of the pending rewards token mint and amount in lamports
2551
+ async getUserPendingRewardsInVaultFarm(user, vault) {
2552
+ const vaultState = await vault.getState();
2553
+ const hasFarm = await vault.hasFarm();
2554
+ if (!hasFarm) {
2555
+ return new Map();
2556
+ }
2557
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2558
+ const userState = await (0, dist_1.getUserStatePDA)(farmClient.getProgramID(), vaultState.vaultFarm, user);
2559
+ return (0, farm_utils_1.getUserPendingRewardsInFarm)(this.getConnection(), userState, vaultState.vaultFarm);
2560
+ }
2561
+ /// reads the pending rewards for a user in a delegated vault farm
2562
+ /// @param user - the user address
2563
+ /// @param vaultAddress - the address of the vault
2564
+ /// @returns a map of the pending rewards token mint and amount in lamports
2565
+ async getUserPendingRewardsInVaultDelegatedFarm(user, vaultAddress) {
2566
+ const delegatedFarm = await this.getDelegatedFarmForVault(vaultAddress);
2567
+ if (!delegatedFarm) {
2568
+ return new Map();
2569
+ }
2570
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2571
+ const userState = await this.computeUserStatePDAForUserInDelegatedVaultFarm(farmClient.getProgramID(), vaultAddress, delegatedFarm, user);
2572
+ return (0, farm_utils_1.getUserPendingRewardsInFarm)(this.getConnection(), userState, delegatedFarm);
2573
+ }
2574
+ /// gets the delegated farm for a vault
2575
+ async getDelegatedFarmForVault(vault) {
2576
+ const response = await fetch(`${utils_2.CDN_ENDPOINT}/resources.json`);
2577
+ if (!response.ok) {
2578
+ console.log(`Failed to fetch CDN for user pending rewards in vault delegated farm: ${response.statusText}`);
2579
+ return undefined;
2580
+ }
2581
+ const data = (await response.json());
2582
+ const delegatedVaultFarms = data['mainnet-beta']?.delegatedVaultFarms;
2583
+ if (!delegatedVaultFarms) {
2584
+ return undefined;
2585
+ }
2586
+ const delegatedFarmWithVault = delegatedVaultFarms.find((vaultWithFarm) => vaultWithFarm.vault === vault);
2587
+ if (!delegatedFarmWithVault) {
2588
+ return undefined;
2589
+ }
2590
+ return (0, kit_1.address)(delegatedFarmWithVault.farm);
2591
+ }
2592
+ /**
2593
+ * gets all the delegated farms addresses
2594
+ * @returns a list of delegated farms addresses
2595
+ */
2596
+ async getAllDelegatedFarms() {
2597
+ const vaultsWithDelegatedFarm = await this.getVaultsWithDelegatedFarm();
2598
+ return Array.from(vaultsWithDelegatedFarm.values());
2599
+ }
2600
+ /**
2601
+ * This will return a map of the vault address and the delegated farm address for that vault
2602
+ * @returns a map of the vault address and the delegated farm address for that vault
2603
+ */
2604
+ async getVaultsWithDelegatedFarm() {
2605
+ const response = await fetch(`${utils_2.CDN_ENDPOINT}/resources.json`);
2606
+ if (!response.ok) {
2607
+ console.log(`Failed to fetch CDN for get vaults with delegated farm`);
2608
+ return new Map();
2609
+ }
2610
+ const data = (await response.json());
2611
+ const delegatedVaultFarms = data['mainnet-beta']?.delegatedVaultFarms;
2612
+ if (!delegatedVaultFarms) {
2613
+ return new Map();
2614
+ }
2615
+ return new Map(delegatedVaultFarms.map((delegatedFarm) => [(0, kit_1.address)(delegatedFarm.vault), (0, kit_1.address)(delegatedFarm.farm)]));
2616
+ }
2617
+ /// reads the pending rewards for a user in the reserves farms of a vault
2618
+ /// @param user - the user address
2619
+ /// @param vault - the vault
2620
+ /// @param [vaultReservesMap] - the vault reserves map to get the reserves for; if not provided, the function will fetch the reserves
2621
+ /// @returns a map of the pending rewards token mint and amount in lamports
2622
+ async getUserPendingRewardsInVaultReservesFarms(user, vault, vaultReservesMap) {
2623
+ const vaultState = await vault.getState();
2624
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
2625
+ const vaultReserves = vaultState.vaultAllocationStrategy
2626
+ .map((allocationStrategy) => allocationStrategy.reserve)
2627
+ .filter((reserve) => reserve !== lib_1.DEFAULT_PUBLIC_KEY);
2628
+ const pendingRewardsPerToken = new Map();
2629
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2630
+ for (const reserveAddress of vaultReserves) {
2631
+ const reserveState = vaultReservesState.get(reserveAddress);
2632
+ if (!reserveState) {
2633
+ console.log(`Reserve to read farm incentives for not found: ${reserveAddress}`);
2634
+ continue;
2635
+ }
2636
+ if (reserveState.state.farmCollateral === lib_1.DEFAULT_PUBLIC_KEY) {
2637
+ continue;
2638
+ }
2639
+ const delegatee = await this.computeUserFarmStateDelegateePDAForUserInVault(farmClient.getProgramID(), vault.address, reserveAddress, user);
2640
+ const userState = await (0, dist_1.getUserStatePDA)(farmClient.getProgramID(), reserveState.state.farmCollateral, delegatee[0]);
2641
+ const pendingRewards = await (0, farm_utils_1.getUserPendingRewardsInFarm)(this.getConnection(), userState, reserveState.state.farmCollateral);
2642
+ pendingRewards.forEach((reward, token) => {
2643
+ const existingReward = pendingRewardsPerToken.get(token);
2644
+ if (existingReward) {
2645
+ pendingRewardsPerToken.set(token, existingReward.add(reward));
2646
+ }
2647
+ else {
2648
+ pendingRewardsPerToken.set(token, reward);
2649
+ }
2650
+ });
2651
+ }
2652
+ return pendingRewardsPerToken;
2653
+ }
2654
+ /// reads the pending rewards for a user in the vault farm, the reserves farms of the vault and the delegated vault farm
2655
+ /// @param user - the user address
2656
+ /// @param vault - the vault
2657
+ /// @param [vaultReservesMap] - the vault reserves map to get the reserves for; if not provided, the function will fetch the reserves
2658
+ /// @returns a struct containing the pending rewards in the vault farm, the reserves farms of the vault and the delegated vault farm, and the total pending rewards in lamports
2659
+ async getAllPendingRewardsForUserInVault(user, vault, vaultReservesMap) {
2660
+ const pendingRewardsInVaultFarm = await this.getUserPendingRewardsInVaultFarm(user, vault);
2661
+ const pendingRewardsInVaultReservesFarms = await this.getUserPendingRewardsInVaultReservesFarms(user, vault, vaultReservesMap);
2662
+ const pendingRewardsInVaultDelegatedFarm = await this.getUserPendingRewardsInVaultDelegatedFarm(user, vault.address);
2663
+ const totalPendingRewards = new Map();
2664
+ pendingRewardsInVaultFarm.forEach((reward, token) => {
2665
+ const existingReward = totalPendingRewards.get(token);
2666
+ if (existingReward) {
2667
+ totalPendingRewards.set(token, existingReward.add(reward));
2668
+ }
2669
+ else {
2670
+ totalPendingRewards.set(token, reward);
2671
+ }
2672
+ });
2673
+ pendingRewardsInVaultReservesFarms.forEach((reward, token) => {
2674
+ const existingReward = totalPendingRewards.get(token);
2675
+ if (existingReward) {
2676
+ totalPendingRewards.set(token, existingReward.add(reward));
2677
+ }
2678
+ else {
2679
+ totalPendingRewards.set(token, reward);
2680
+ }
2681
+ });
2682
+ pendingRewardsInVaultDelegatedFarm.forEach((reward, token) => {
2683
+ const existingReward = totalPendingRewards.get(token);
2684
+ if (existingReward) {
2685
+ totalPendingRewards.set(token, existingReward.add(reward));
2686
+ }
2687
+ else {
2688
+ totalPendingRewards.set(token, reward);
2689
+ }
2690
+ });
2691
+ return {
2692
+ pendingRewardsInVaultFarm,
2693
+ pendingRewardsInVaultReservesFarms,
2694
+ pendingRewardsInVaultDelegatedFarm,
2695
+ totalPendingRewards,
2696
+ };
2697
+ }
2698
+ /**
2699
+ * This function will return the instructions to claim the rewards for the farm of a vault, the delegated farm of the vault and the reserves farms of the vault
2700
+ * @param user - the user to claim the rewards
2701
+ * @param vault - the vault
2702
+ * @param [vaultReservesMap] - the vault reserves map to get the reserves for; if not provided, the function will fetch the reserves
2703
+ * @returns the instructions to claim the rewards for the farm of the vault, the delegated farm of the vault and the reserves farms of the vault
2704
+ */
2705
+ async getClaimAllRewardsForVaultIxs(user, vault, vaultReservesMap) {
2706
+ const [vaultFarmIxs, delegatedFarmIxs, reservesFarmsIxs] = await Promise.all([
2707
+ this.getClaimVaultFarmRewardsIxs(user, vault),
2708
+ this.getClaimVaultDelegatedFarmRewardsIxs(user, vault),
2709
+ this.getClaimVaultReservesFarmsRewardsIxs(user, vault, vaultReservesMap),
2710
+ ]);
2711
+ return [...new Set([...vaultFarmIxs, ...delegatedFarmIxs, ...reservesFarmsIxs])];
2712
+ }
2713
+ /**
2714
+ * This function will return the instructions to claim the rewards for the farm of a vault
2715
+ * @param user - the user to claim the rewards
2716
+ * @param vault - the vault
2717
+ * @returns the instructions to claim the rewards for the farm of the vault
2718
+ */
2719
+ async getClaimVaultFarmRewardsIxs(user, vault) {
2720
+ const vaultState = await vault.getState();
2721
+ const hasFarm = await vault.hasFarm();
2722
+ if (!hasFarm) {
2723
+ return [];
2724
+ }
2725
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2726
+ const pendingRewardsInVaultFarm = await this.getUserPendingRewardsInVaultFarm(user.address, vault);
2727
+ // if there are no pending rewards of their total is 0 no ix is needed
2728
+ const totalPendingRewards = Array.from(pendingRewardsInVaultFarm.values()).reduce((acc, reward) => acc.add(reward), new decimal_js_1.default(0));
2729
+ if (totalPendingRewards.eq(0)) {
2730
+ return [];
2731
+ }
2732
+ return farmClient.claimForUserForFarmAllRewardsIx(user, vaultState.vaultFarm, false);
2733
+ }
2734
+ /**
2735
+ * This function will return the instructions to claim the rewards for the delegated farm of a vault
2736
+ * @param user - the user to claim the rewards
2737
+ * @param vault - the vault
2738
+ * @returns the instructions to claim the rewards for the delegated farm of the vault
2739
+ */
2740
+ async getClaimVaultDelegatedFarmRewardsIxs(user, vault) {
2741
+ const delegatedFarm = await this.getDelegatedFarmForVault(vault.address);
2742
+ if (!delegatedFarm) {
2743
+ return [];
2744
+ }
2745
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2746
+ const delegatee = await this.computeDelegateeForUserInDelegatedFarm(farmClient.getProgramID(), vault.address, delegatedFarm, user.address);
2747
+ const userState = await (0, dist_1.getUserStatePDA)(farmClient.getProgramID(), delegatedFarm, delegatee);
2748
+ // check if the user state exists
2749
+ const userStateExists = await (0, kit_1.fetchEncodedAccount)(this.getConnection(), userState);
2750
+ if (!userStateExists.exists) {
2751
+ return [];
2752
+ }
2753
+ return farmClient.claimForUserForFarmAllRewardsIx(user, delegatedFarm, true, [delegatee]);
2754
+ }
2755
+ /**
2756
+ * This function will return the instructions to claim the rewards for the reserves farms of a vault
2757
+ * @param user - the user to claim the rewards
2758
+ * @param vault - the vault
2759
+ * @param [vaultReservesMap] - the vault reserves map to get the reserves for; if not provided, the function will fetch the reserves
2760
+ * @returns the instructions to claim the rewards for the reserves farms of the vault
2761
+ */
2762
+ async getClaimVaultReservesFarmsRewardsIxs(user, vault, vaultReservesMap) {
2763
+ const vaultState = await vault.getState();
2764
+ const vaultReservesState = vaultReservesMap ? vaultReservesMap : await this.loadVaultReserves(vaultState);
2765
+ const vaultReserves = vaultState.vaultAllocationStrategy
2766
+ .map((allocationStrategy) => allocationStrategy.reserve)
2767
+ .filter((reserve) => reserve !== lib_1.DEFAULT_PUBLIC_KEY);
2768
+ const ixs = [];
2769
+ const farmClient = new farms_sdk_1.Farms(this.getConnection());
2770
+ for (const reserveAddress of vaultReserves) {
2771
+ const reserveState = vaultReservesState.get(reserveAddress);
2772
+ if (!reserveState) {
2773
+ console.log(`Reserve to read farm incentives for not found: ${reserveAddress}`);
2774
+ continue;
2775
+ }
2776
+ if (reserveState.state.farmCollateral === lib_1.DEFAULT_PUBLIC_KEY) {
2777
+ continue;
2778
+ }
2779
+ const delegatee = await this.computeUserFarmStateDelegateePDAForUserInVault(farmClient.getProgramID(), vault.address, reserveAddress, user.address);
2780
+ const userState = await (0, dist_1.getUserStatePDA)(farmClient.getProgramID(), reserveState.state.farmCollateral, delegatee[0]);
2781
+ const pendingRewards = await (0, farm_utils_1.getUserPendingRewardsInFarm)(this.getConnection(), userState, reserveState.state.farmCollateral);
2782
+ const totalPendingRewards = Array.from(pendingRewards.values()).reduce((acc, reward) => acc.add(reward), new decimal_js_1.default(0));
2783
+ if (totalPendingRewards.eq(0)) {
2784
+ continue;
2785
+ }
2786
+ const ix = await farmClient.claimForUserForFarmAllRewardsIx(user, reserveState.state.farmCollateral, true, [
2787
+ delegatee[0],
2788
+ ]);
2789
+ ixs.push(...ix);
2790
+ }
2791
+ return ixs;
2792
+ }
2793
+ appendRemainingAccountsForVaultReserves(ix, vaultReserves, vaultReservesState) {
2794
+ let vaultReservesAccountMetas = [];
2795
+ let vaultReservesLendingMarkets = [];
2796
+ vaultReserves.forEach((reserve) => {
2797
+ const reserveState = vaultReservesState.get(reserve);
2798
+ if (reserveState === undefined) {
2799
+ throw new Error(`Reserve ${reserve} not found`);
2800
+ }
2801
+ vaultReservesAccountMetas = vaultReservesAccountMetas.concat([{ address: reserve, role: kit_1.AccountRole.WRITABLE }]);
2802
+ vaultReservesLendingMarkets = vaultReservesLendingMarkets.concat([
2803
+ { address: reserveState.state.lendingMarket, role: kit_1.AccountRole.READONLY },
2804
+ ]);
2805
+ });
2806
+ return {
2807
+ ...ix,
2808
+ accounts: ix.accounts?.concat([...vaultReservesAccountMetas, ...vaultReservesLendingMarkets]),
2809
+ };
2810
+ }
2811
+ } // KaminoVaultClient
2812
+ exports.KaminoVaultClient = KaminoVaultClient;
2813
+ class KaminoVault {
2814
+ address;
2815
+ state;
2816
+ programId;
2817
+ client;
2818
+ vaultReservesStateCache;
2819
+ constructor(rpc, vaultAddress, state, programId = exports.kaminoVaultId, recentSlotDurationMs = lib_1.DEFAULT_RECENT_SLOT_DURATION_MS) {
2820
+ this.address = vaultAddress;
2821
+ this.state = state;
2822
+ this.programId = programId;
2823
+ this.client = new KaminoVaultClient(rpc, recentSlotDurationMs);
2824
+ }
2825
+ static loadWithClientAndState(client, vaultAddress, state) {
2826
+ const vault = new KaminoVault(client.getConnection(), vaultAddress);
2827
+ vault.state = state;
2828
+ vault.programId = client.getProgramID();
2829
+ vault.client = client;
2830
+ return vault;
2831
+ }
2832
+ async getState() {
2833
+ if (!this.state) {
2834
+ const res = await accounts_1.VaultState.fetch(this.client.getConnection(), this.address, this.programId);
2835
+ if (!res) {
2836
+ throw new Error('Invalid vault');
2837
+ }
2838
+ this.state = res;
2839
+ return res;
2840
+ }
2841
+ else {
2842
+ return this.state;
2843
+ }
2844
+ }
2845
+ async reloadVaultReserves() {
2846
+ this.vaultReservesStateCache = await this.client.loadVaultReserves(this.state);
2847
+ }
2848
+ async reloadState() {
2849
+ this.state = await accounts_1.VaultState.fetch(this.client.getConnection(), this.address, this.programId);
2850
+ if (!this.state) {
2851
+ throw new Error('Could not fetch vault');
2852
+ }
2853
+ return this.state;
2854
+ }
2855
+ async hasFarm() {
2856
+ const state = await this.getState();
2857
+ return state.vaultFarm !== lib_1.DEFAULT_PUBLIC_KEY;
2858
+ }
2859
+ /**
2860
+ * This will return an VaultHoldings object which contains the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
2861
+ * @returns an VaultHoldings object representing the amount available (uninvested) in vault, total amount invested in reseves and a breakdown of the amount invested in each reserve
2862
+ */
2863
+ async getVaultHoldings() {
2864
+ if (!this.state || !this.vaultReservesStateCache) {
2865
+ await this.reloadState();
2866
+ await this.reloadVaultReserves();
2867
+ }
2868
+ return await this.client.getVaultHoldings(this.state, undefined, this.vaultReservesStateCache, undefined);
2869
+ }
2870
+ /**
2871
+ * This will return the a map between reserve pubkey and the allocation overview for the reserve
2872
+ * @returns a map between reserve pubkey and the allocation overview for the reserve
2873
+ */
2874
+ async getVaultAllocations() {
2875
+ if (!this.state) {
2876
+ await this.reloadState();
2877
+ }
2878
+ return this.client.getVaultAllocations(this.state);
2879
+ }
2880
+ /**
2881
+ * This will return the APY of the vault based on the current invested amounts and the theoretical APY if all the available tokens were invested
2882
+ * @returns a struct containing actualAPY and theoreticalAPY for the vault
2883
+ */
2884
+ async getAPYs(slot) {
2885
+ if (!this.state || !this.vaultReservesStateCache) {
2886
+ await this.reloadState();
2887
+ await this.reloadVaultReserves();
2888
+ }
2889
+ const latestSlot = slot ?? (await this.client.getConnection().getSlot({ commitment: 'confirmed' }).send());
2890
+ const actualApy = await this.client.getVaultActualAPY(this.state, latestSlot, this.vaultReservesStateCache);
2891
+ const theoreticalApy = await this.client.getVaultTheoreticalAPY(this.state, latestSlot, this.vaultReservesStateCache);
2892
+ return {
2893
+ actualAPY: actualApy,
2894
+ theoreticalAPY: theoreticalApy,
2895
+ };
2896
+ }
2897
+ /**
2898
+ * This method returns the exchange rate of the vault (tokens per share)
2899
+ * @returns - Decimal representing the exchange rate (tokens per share)
2900
+ */
2901
+ async getExchangeRate(slot) {
2902
+ if (!this.state || !this.vaultReservesStateCache) {
2903
+ await this.reloadState();
2904
+ await this.reloadVaultReserves();
2905
+ }
2906
+ const latestSlot = slot ?? (await this.client.getConnection().getSlot({ commitment: 'confirmed' }).send());
2907
+ const tokensPerShare = await this.client.getTokensPerShareSingleVault(this.state, latestSlot);
2908
+ return tokensPerShare;
2909
+ }
2910
+ /**
2911
+ * This method returns the user shares balance for a given vault
2912
+ * @param user - user to calculate the shares balance for
2913
+ * @param vault - vault to calculate shares balance for
2914
+ * @returns - a struct of user share balance (staked in vault farm if the vault has a farm and unstaked) in decimal (not lamports)
2915
+ */
2916
+ async getUserShares(user) {
2917
+ return this.client.getUserSharesBalanceSingleVault(user, this);
2918
+ }
2919
+ /**
2920
+ * This function creates instructions to deposit into a vault. It will also create ATA creation instructions for the vault shares that the user receives in return
2921
+ * @param user - user to deposit
2922
+ * @param tokenAmount - token amount to be deposited, in decimals (will be converted in lamports)
2923
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
2924
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
2925
+ * @returns - an instance of DepositIxs which contains the instructions to deposit in vault and the instructions to stake the shares in the farm if the vault has a farm
2926
+ */
2927
+ async depositIxs(user, tokenAmount, vaultReservesMap, farmState) {
2928
+ if (vaultReservesMap) {
2929
+ this.vaultReservesStateCache = vaultReservesMap;
2930
+ }
2931
+ return this.client.depositIxs(user, this, tokenAmount, this.vaultReservesStateCache, farmState);
2932
+ }
2933
+ /**
2934
+ * This function will return the missing ATA creation instructions, as well as one or multiple withdraw instructions, based on how many reserves it's needed to withdraw from. This might have to be split in multiple transactions
2935
+ * @param user - user to withdraw
2936
+ * @param shareAmount - share amount to withdraw (in tokens, not lamports), in order to withdraw everything, any value > user share amount
2937
+ * @param slot - current slot, used to estimate the interest earned in the different reserves with allocation from the vault
2938
+ * @param [vaultReservesMap] - optional parameter; a hashmap from each reserve pubkey to the reserve state. If provided the function will be significantly faster as it will not have to fetch the reserves
2939
+ * @param [farmState] - the state of the vault farm, if the vault has a farm. Optional. If not provided, it will be fetched
2940
+ * @returns an array of instructions to create missing ATAs if needed and the withdraw instructions
2941
+ */
2942
+ async withdrawIxs(user, shareAmount, slot, vaultReservesMap, farmState) {
2943
+ if (vaultReservesMap) {
2944
+ this.vaultReservesStateCache = vaultReservesMap;
2945
+ }
2946
+ const currentSlot = slot ?? (await this.client.getConnection().getSlot({ commitment: 'confirmed' }).send());
2947
+ return this.client.withdrawIxs(user, this, shareAmount, currentSlot, this.vaultReservesStateCache, farmState);
2948
+ }
2949
+ }
2950
+ exports.KaminoVault = KaminoVault;
2951
+ /**
2952
+ * Used to initialize a Kamino Vault
2953
+ */
2954
+ class KaminoVaultConfig {
2955
+ /** The admin of the vault */
2956
+ admin;
2957
+ /** The token mint for the vault */
2958
+ tokenMint;
2959
+ /** The token mint program id */
2960
+ tokenMintProgramId;
2961
+ /** The performance fee rate of the vault, as percents, expressed as a decimal */
2962
+ performanceFeeRatePercentage;
2963
+ /** The management fee rate of the vault, as percents, expressed as a decimal */
2964
+ managementFeeRatePercentage;
2965
+ /** The name to be stored on chain for the vault (max 40 characters). */
2966
+ name;
2967
+ /** The symbol of the vault token to be stored (max 5 characters). E.g. USDC for a vault using USDC as token. */
2968
+ vaultTokenSymbol;
2969
+ /** The name of the vault token to be stored (max 10 characters), after the prefix `Kamino Vault <vaultTokenSymbol>`. E.g. USDC Vault for a vault using USDC as token. */
2970
+ vaultTokenName;
2971
+ constructor(args) {
2972
+ this.admin = args.admin;
2973
+ this.tokenMint = args.tokenMint;
2974
+ this.performanceFeeRatePercentage = args.performanceFeeRatePercentage;
2975
+ this.managementFeeRatePercentage = args.managementFeeRatePercentage;
2976
+ this.tokenMintProgramId = args.tokenMintProgramId;
2977
+ this.name = args.name;
2978
+ this.vaultTokenSymbol = args.vaultTokenSymbol;
2979
+ this.vaultTokenName = args.vaultTokenName;
2980
+ }
2981
+ getPerformanceFeeBps() {
2982
+ return this.performanceFeeRatePercentage.mul(100).toNumber();
2983
+ }
2984
+ getManagementFeeBps() {
2985
+ return this.managementFeeRatePercentage.mul(100).toNumber();
2986
+ }
2987
+ }
2988
+ exports.KaminoVaultConfig = KaminoVaultConfig;
2989
+ class ReserveAllocationConfig {
2990
+ reserve;
2991
+ targetAllocationWeight;
2992
+ allocationCapDecimal;
2993
+ constructor(reserve, targetAllocationWeight, allocationCapDecimal) {
2994
+ this.reserve = reserve;
2995
+ this.targetAllocationWeight = targetAllocationWeight;
2996
+ this.allocationCapDecimal = allocationCapDecimal;
2997
+ }
2998
+ getAllocationCapLamports() {
2999
+ return (0, utils_1.numberToLamportsDecimal)(this.allocationCapDecimal, this.reserve.state.liquidity.mintDecimals.toNumber());
3000
+ }
3001
+ getReserveState() {
3002
+ return this.reserve.state;
3003
+ }
3004
+ getReserveAddress() {
3005
+ return this.reserve.address;
3006
+ }
3007
+ }
3008
+ exports.ReserveAllocationConfig = ReserveAllocationConfig;
3009
+ async function getCTokenVaultPda(vaultAddress, reserveAddress, kaminoVaultProgramId) {
3010
+ return (await (0, kit_1.getProgramDerivedAddress)({
3011
+ seeds: [
3012
+ Buffer.from(CTOKEN_VAULT_SEED),
3013
+ addressEncoder.encode(vaultAddress),
3014
+ addressEncoder.encode(reserveAddress),
3015
+ ],
3016
+ programAddress: kaminoVaultProgramId,
3017
+ }))[0];
3018
+ }
3019
+ async function getEventAuthorityPda(kaminoVaultProgramId) {
3020
+ return (await (0, kit_1.getProgramDerivedAddress)({
3021
+ seeds: [Buffer.from(EVENT_AUTHORITY_SEED)],
3022
+ programAddress: kaminoVaultProgramId,
3023
+ }))[0];
3024
+ }
3025
+ async function getKvaultGlobalConfigPda(kaminoVaultProgramId) {
3026
+ return (await (0, kit_1.getProgramDerivedAddress)({
3027
+ seeds: [Buffer.from(GLOBAL_CONFIG_STATE_SEED)],
3028
+ programAddress: kaminoVaultProgramId,
3029
+ }))[0];
3030
+ }
3031
+ async function getReserveWhitelistEntryPda(reserveAddress, kaminoVaultProgramId) {
3032
+ return (await (0, kit_1.getProgramDerivedAddress)({
3033
+ seeds: [Buffer.from(WHITELISTED_RESERVES_SEED), addressEncoder.encode(reserveAddress)],
3034
+ programAddress: kaminoVaultProgramId,
3035
+ }))[0];
3036
+ }
3037
+ async function getReserveWhitelistEntryIfExists(reserveAddress, rpc, kaminoVaultProgramId) {
3038
+ const reserveWhitelistEntry = await getReserveWhitelistEntryPda(reserveAddress, kaminoVaultProgramId);
3039
+ const reserveWhitelistEntryAccount = await (0, kit_1.fetchEncodedAccount)(rpc, reserveWhitelistEntry, {
3040
+ commitment: 'processed',
3041
+ });
3042
+ return reserveWhitelistEntryAccount.exists ? (0, kit_1.some)(reserveWhitelistEntry) : (0, kit_1.none)();
3043
+ }
3044
+ function parseVaultAdmin(vault, signer) {
3045
+ return signer ?? (0, signer_1.noopSigner)(vault.vaultAdminAuthority);
3046
+ }
3047
+ function parseVaultPendingAdmin(vault, signer) {
3048
+ return signer ?? (0, signer_1.noopSigner)(vault.pendingAdmin);
3049
+ }
3050
+ class VaultHoldings {
3051
+ available;
3052
+ invested;
3053
+ investedInReserves;
3054
+ pendingFees;
3055
+ totalAUMIncludingFees;
3056
+ constructor(params) {
3057
+ this.available = params.available;
3058
+ this.invested = params.invested;
3059
+ this.investedInReserves = params.investedInReserves;
3060
+ this.pendingFees = params.pendingFees;
3061
+ this.totalAUMIncludingFees = params.totalAUMIncludingFees;
3062
+ }
3063
+ asJSON() {
3064
+ return {
3065
+ available: this.available.toString(),
3066
+ invested: this.invested.toString(),
3067
+ totalAUMIncludingFees: this.totalAUMIncludingFees.toString(),
3068
+ pendingFees: this.pendingFees.toString(),
3069
+ investedInReserves: (0, utils_1.pubkeyHashMapToJson)(this.investedInReserves),
3070
+ };
3071
+ }
3072
+ print() {
3073
+ console.log('Holdings:');
3074
+ console.log(' Available:', this.available.toString());
3075
+ console.log(' Invested:', this.invested.toString());
3076
+ console.log(' Total AUM including fees:', this.totalAUMIncludingFees.toString());
3077
+ console.log(' Pending fees:', this.pendingFees.toString());
3078
+ console.log(' Invested in reserves:', (0, utils_1.pubkeyHashMapToJson)(this.investedInReserves));
3079
+ }
3080
+ }
3081
+ exports.VaultHoldings = VaultHoldings;
3082
+ //# sourceMappingURL=vault.js.map