@kamino-finance/klend-sdk 7.1.2 → 7.1.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/dist/@codegen/klend/accounts/LendingMarket.d.ts +144 -3
  2. package/dist/@codegen/klend/accounts/LendingMarket.d.ts.map +1 -1
  3. package/dist/@codegen/klend/accounts/LendingMarket.js +105 -3
  4. package/dist/@codegen/klend/accounts/LendingMarket.js.map +1 -1
  5. package/dist/@codegen/klend/accounts/Obligation.d.ts +30 -15
  6. package/dist/@codegen/klend/accounts/Obligation.d.ts.map +1 -1
  7. package/dist/@codegen/klend/accounts/Obligation.js +31 -21
  8. package/dist/@codegen/klend/accounts/Obligation.js.map +1 -1
  9. package/dist/@codegen/klend/accounts/PoolState.d.ts +53 -0
  10. package/dist/@codegen/klend/accounts/PoolState.d.ts.map +1 -0
  11. package/dist/@codegen/klend/accounts/PoolState.js +167 -0
  12. package/dist/@codegen/klend/accounts/PoolState.js.map +1 -0
  13. package/dist/@codegen/klend/accounts/Reserve.d.ts +6 -0
  14. package/dist/@codegen/klend/accounts/Reserve.d.ts.map +1 -1
  15. package/dist/@codegen/klend/accounts/Reserve.js +9 -2
  16. package/dist/@codegen/klend/accounts/Reserve.js.map +1 -1
  17. package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts +41 -0
  18. package/dist/@codegen/klend/accounts/UnstakeTicket.d.ts.map +1 -0
  19. package/dist/@codegen/klend/accounts/UnstakeTicket.js +143 -0
  20. package/dist/@codegen/klend/accounts/UnstakeTicket.js.map +1 -0
  21. package/dist/@codegen/klend/accounts/UserState.d.ts +0 -75
  22. package/dist/@codegen/klend/accounts/UserState.d.ts.map +1 -1
  23. package/dist/@codegen/klend/accounts/UserState.js +0 -25
  24. package/dist/@codegen/klend/accounts/UserState.js.map +1 -1
  25. package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts +132 -0
  26. package/dist/@codegen/klend/accounts/WithdrawTicket.d.ts.map +1 -0
  27. package/dist/@codegen/klend/accounts/WithdrawTicket.js +191 -0
  28. package/dist/@codegen/klend/accounts/WithdrawTicket.js.map +1 -0
  29. package/dist/@codegen/klend/accounts/index.d.ts +6 -0
  30. package/dist/@codegen/klend/accounts/index.d.ts.map +1 -1
  31. package/dist/@codegen/klend/accounts/index.js +7 -1
  32. package/dist/@codegen/klend/accounts/index.js.map +1 -1
  33. package/dist/@codegen/klend/errors/custom.d.ts +226 -2
  34. package/dist/@codegen/klend/errors/custom.d.ts.map +1 -1
  35. package/dist/@codegen/klend/errors/custom.js +396 -3
  36. package/dist/@codegen/klend/errors/custom.js.map +1 -1
  37. package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts +39 -0
  38. package/dist/@codegen/klend/instructions/enqueueToWithdraw.d.ts.map +1 -0
  39. package/dist/@codegen/klend/instructions/enqueueToWithdraw.js +67 -0
  40. package/dist/@codegen/klend/instructions/enqueueToWithdraw.js.map +1 -0
  41. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts +36 -0
  42. package/dist/@codegen/klend/instructions/fillBorrowOrder.d.ts.map +1 -0
  43. package/dist/@codegen/klend/instructions/fillBorrowOrder.js +49 -0
  44. package/dist/@codegen/klend/instructions/fillBorrowOrder.js.map +1 -0
  45. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts +1 -2
  46. package/dist/@codegen/klend/instructions/idlMissingTypes.d.ts.map +1 -1
  47. package/dist/@codegen/klend/instructions/idlMissingTypes.js +6 -2
  48. package/dist/@codegen/klend/instructions/idlMissingTypes.js.map +1 -1
  49. package/dist/@codegen/klend/instructions/index.d.ts +16 -0
  50. package/dist/@codegen/klend/instructions/index.d.ts.map +1 -1
  51. package/dist/@codegen/klend/instructions/index.js +18 -1
  52. package/dist/@codegen/klend/instructions/index.js.map +1 -1
  53. package/dist/@codegen/klend/instructions/initReserve.d.ts +1 -1
  54. package/dist/@codegen/klend/instructions/initReserve.d.ts.map +1 -1
  55. package/dist/@codegen/klend/instructions/initReserve.js +1 -5
  56. package/dist/@codegen/klend/instructions/initReserve.js.map +1 -1
  57. package/dist/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.js +1 -1
  58. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts +47 -0
  59. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.d.ts.map +1 -0
  60. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js +66 -0
  61. package/dist/@codegen/klend/instructions/recoverInvalidTicketCollateral.js.map +1 -0
  62. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts +31 -0
  63. package/dist/@codegen/klend/instructions/setBorrowOrder.d.ts.map +1 -0
  64. package/dist/@codegen/klend/instructions/setBorrowOrder.js +64 -0
  65. package/dist/@codegen/klend/instructions/setBorrowOrder.js.map +1 -0
  66. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts +53 -0
  67. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.d.ts.map +1 -0
  68. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js +190 -0
  69. package/dist/@codegen/klend/instructions/unstakeLstCollateralEnd.js.map +1 -0
  70. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts +70 -0
  71. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.d.ts.map +1 -0
  72. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js +261 -0
  73. package/dist/@codegen/klend/instructions/unstakeLstCollateralStart.js.map +1 -0
  74. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts +1 -1
  75. package/dist/@codegen/klend/instructions/updateGlobalConfig.d.ts.map +1 -1
  76. package/dist/@codegen/klend/instructions/updateGlobalConfig.js +1 -0
  77. package/dist/@codegen/klend/instructions/updateGlobalConfig.js.map +1 -1
  78. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts +1 -1
  79. package/dist/@codegen/klend/instructions/updateReserveConfig.d.ts.map +1 -1
  80. package/dist/@codegen/klend/instructions/updateReserveConfig.js +1 -0
  81. package/dist/@codegen/klend/instructions/updateReserveConfig.js.map +1 -1
  82. package/dist/@codegen/klend/instructions/withdrawObligationCollateral.js +1 -1
  83. package/dist/@codegen/klend/instructions/withdrawObligationCollateralV2.js +1 -1
  84. package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts +41 -0
  85. package/dist/@codegen/klend/instructions/withdrawObligationUsol.d.ts.map +1 -0
  86. package/dist/@codegen/klend/instructions/withdrawObligationUsol.js +135 -0
  87. package/dist/@codegen/klend/instructions/withdrawObligationUsol.js.map +1 -0
  88. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts +51 -0
  89. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.d.ts.map +1 -0
  90. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js +28 -0
  91. package/dist/@codegen/klend/instructions/withdrawQueuedLiquidity.js.map +1 -0
  92. package/dist/@codegen/klend/types/BorrowOrder.d.ts +192 -0
  93. package/dist/@codegen/klend/types/BorrowOrder.d.ts.map +1 -0
  94. package/dist/@codegen/klend/types/BorrowOrder.js +194 -0
  95. package/dist/@codegen/klend/types/BorrowOrder.js.map +1 -0
  96. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts +39 -0
  97. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.d.ts.map +1 -0
  98. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js +100 -0
  99. package/dist/@codegen/klend/types/BorrowOrderConfigArgs.js.map +1 -0
  100. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts +35 -5
  101. package/dist/@codegen/klend/types/ObligationLiquidity.d.ts.map +1 -1
  102. package/dist/@codegen/klend/types/ObligationLiquidity.js +17 -7
  103. package/dist/@codegen/klend/types/ObligationLiquidity.js.map +1 -1
  104. package/dist/@codegen/klend/types/ObligationOrder.d.ts +4 -4
  105. package/dist/@codegen/klend/types/ObligationOrder.js +2 -2
  106. package/dist/@codegen/klend/types/ReserveConfig.d.ts +141 -29
  107. package/dist/@codegen/klend/types/ReserveConfig.d.ts.map +1 -1
  108. package/dist/@codegen/klend/types/ReserveConfig.js +89 -25
  109. package/dist/@codegen/klend/types/ReserveConfig.js.map +1 -1
  110. package/dist/@codegen/klend/types/ReserveFees.d.ts +8 -8
  111. package/dist/@codegen/klend/types/ReserveFees.d.ts.map +1 -1
  112. package/dist/@codegen/klend/types/ReserveFees.js +8 -8
  113. package/dist/@codegen/klend/types/ReserveFees.js.map +1 -1
  114. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts +26 -8
  115. package/dist/@codegen/klend/types/ReserveLiquidity.d.ts.map +1 -1
  116. package/dist/@codegen/klend/types/ReserveLiquidity.js +14 -8
  117. package/dist/@codegen/klend/types/ReserveLiquidity.js.map +1 -1
  118. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts +92 -14
  119. package/dist/@codegen/klend/types/UpdateConfigMode.d.ts.map +1 -1
  120. package/dist/@codegen/klend/types/UpdateConfigMode.js +168 -23
  121. package/dist/@codegen/klend/types/UpdateConfigMode.js.map +1 -1
  122. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts +130 -0
  123. package/dist/@codegen/klend/types/UpdateLendingMarketMode.d.ts.map +1 -1
  124. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js +241 -1
  125. package/dist/@codegen/klend/types/UpdateLendingMarketMode.js.map +1 -1
  126. package/dist/@codegen/klend/types/WithdrawQueue.d.ts +64 -0
  127. package/dist/@codegen/klend/types/WithdrawQueue.d.ts.map +1 -0
  128. package/dist/@codegen/klend/types/WithdrawQueue.js +104 -0
  129. package/dist/@codegen/klend/types/WithdrawQueue.js.map +1 -0
  130. package/dist/@codegen/klend/types/index.d.ts +10 -8
  131. package/dist/@codegen/klend/types/index.d.ts.map +1 -1
  132. package/dist/@codegen/klend/types/index.js +7 -3
  133. package/dist/@codegen/klend/types/index.js.map +1 -1
  134. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts +9 -4
  135. package/dist/@codegen/klend/zero_padding/ObligationZP.d.ts.map +1 -1
  136. package/dist/@codegen/klend/zero_padding/ObligationZP.js +22 -13
  137. package/dist/@codegen/klend/zero_padding/ObligationZP.js.map +1 -1
  138. package/dist/classes/action.d.ts +30 -3
  139. package/dist/classes/action.d.ts.map +1 -1
  140. package/dist/classes/action.js +364 -10
  141. package/dist/classes/action.js.map +1 -1
  142. package/dist/classes/manager.d.ts.map +1 -1
  143. package/dist/classes/manager.js +10 -0
  144. package/dist/classes/manager.js.map +1 -1
  145. package/dist/classes/market.d.ts +6 -2
  146. package/dist/classes/market.d.ts.map +1 -1
  147. package/dist/classes/market.js +26 -6
  148. package/dist/classes/market.js.map +1 -1
  149. package/dist/classes/obligation.js +1 -1
  150. package/dist/classes/obligation.js.map +1 -1
  151. package/dist/classes/reserve.d.ts.map +1 -1
  152. package/dist/classes/reserve.js +13 -7
  153. package/dist/classes/reserve.js.map +1 -1
  154. package/dist/classes/unstakingPool.d.ts +20 -3
  155. package/dist/classes/unstakingPool.d.ts.map +1 -1
  156. package/dist/classes/unstakingPool.js +62 -8
  157. package/dist/classes/unstakingPool.js.map +1 -1
  158. package/dist/idl/klend.json +2125 -232
  159. package/dist/lending_operations/index.d.ts +1 -0
  160. package/dist/lending_operations/index.d.ts.map +1 -1
  161. package/dist/lending_operations/index.js +1 -0
  162. package/dist/lending_operations/index.js.map +1 -1
  163. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  164. package/dist/lending_operations/repay_with_collateral_operations.js +0 -2
  165. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  166. package/dist/lending_operations/swap_collateral_operations.js +0 -1
  167. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  168. package/dist/lending_operations/unstake_lst_collateral.d.ts +12 -0
  169. package/dist/lending_operations/unstake_lst_collateral.d.ts.map +1 -0
  170. package/dist/lending_operations/unstake_lst_collateral.js +104 -0
  171. package/dist/lending_operations/unstake_lst_collateral.js.map +1 -0
  172. package/dist/leverage/calcs.d.ts +2 -27
  173. package/dist/leverage/calcs.d.ts.map +1 -1
  174. package/dist/leverage/calcs.js +6 -136
  175. package/dist/leverage/calcs.js.map +1 -1
  176. package/dist/leverage/operations.d.ts +8 -9
  177. package/dist/leverage/operations.d.ts.map +1 -1
  178. package/dist/leverage/operations.js +72 -228
  179. package/dist/leverage/operations.js.map +1 -1
  180. package/dist/leverage/types.d.ts +0 -19
  181. package/dist/leverage/types.d.ts.map +1 -1
  182. package/dist/leverage/utils.d.ts +2 -19
  183. package/dist/leverage/utils.d.ts.map +1 -1
  184. package/dist/leverage/utils.js +0 -164
  185. package/dist/leverage/utils.js.map +1 -1
  186. package/dist/manager/client_kamino_manager.js +11 -8
  187. package/dist/manager/client_kamino_manager.js.map +1 -1
  188. package/dist/utils/managerTypes.d.ts.map +1 -1
  189. package/dist/utils/managerTypes.js +9 -4
  190. package/dist/utils/managerTypes.js.map +1 -1
  191. package/dist/utils/seeds.d.ts +10 -14
  192. package/dist/utils/seeds.d.ts.map +1 -1
  193. package/dist/utils/seeds.js +25 -22
  194. package/dist/utils/seeds.js.map +1 -1
  195. package/package.json +2 -2
  196. package/src/@codegen/klend/accounts/LendingMarket.ts +210 -5
  197. package/src/@codegen/klend/accounts/Obligation.ts +53 -31
  198. package/src/@codegen/klend/accounts/PoolState.ts +192 -0
  199. package/src/@codegen/klend/accounts/Reserve.ts +13 -2
  200. package/src/@codegen/klend/accounts/UnstakeTicket.ts +160 -0
  201. package/src/@codegen/klend/accounts/UserState.ts +0 -75
  202. package/src/@codegen/klend/accounts/WithdrawTicket.ts +256 -0
  203. package/src/@codegen/klend/accounts/index.ts +6 -0
  204. package/src/@codegen/klend/errors/custom.ts +427 -2
  205. package/src/@codegen/klend/instructions/enqueueToWithdraw.ts +89 -0
  206. package/src/@codegen/klend/instructions/fillBorrowOrder.ts +96 -0
  207. package/src/@codegen/klend/instructions/idlMissingTypes.ts +7 -4
  208. package/src/@codegen/klend/instructions/index.ts +34 -0
  209. package/src/@codegen/klend/instructions/initReserve.ts +2 -6
  210. package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.ts +1 -1
  211. package/src/@codegen/klend/instructions/recoverInvalidTicketCollateral.ts +96 -0
  212. package/src/@codegen/klend/instructions/setBorrowOrder.ts +77 -0
  213. package/src/@codegen/klend/instructions/unstakeLstCollateralEnd.ts +251 -0
  214. package/src/@codegen/klend/instructions/unstakeLstCollateralStart.ts +353 -0
  215. package/src/@codegen/klend/instructions/updateGlobalConfig.ts +2 -1
  216. package/src/@codegen/klend/instructions/updateReserveConfig.ts +2 -1
  217. package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
  218. package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
  219. package/src/@codegen/klend/instructions/withdrawObligationUsol.ts +168 -0
  220. package/src/@codegen/klend/instructions/withdrawQueuedLiquidity.ts +92 -0
  221. package/src/@codegen/klend/types/BorrowOrder.ts +267 -0
  222. package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +87 -0
  223. package/src/@codegen/klend/types/ObligationLiquidity.ts +39 -9
  224. package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
  225. package/src/@codegen/klend/types/ReserveConfig.ts +171 -39
  226. package/src/@codegen/klend/types/ReserveFees.ts +12 -12
  227. package/src/@codegen/klend/types/ReserveLiquidity.ts +30 -12
  228. package/src/@codegen/klend/types/UpdateConfigMode.ts +206 -26
  229. package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +300 -0
  230. package/src/@codegen/klend/types/WithdrawQueue.ts +117 -0
  231. package/src/@codegen/klend/types/index.ts +45 -16
  232. package/src/@codegen/klend/zero_padding/ObligationZP.ts +22 -13
  233. package/src/classes/action.ts +577 -8
  234. package/src/classes/manager.ts +11 -0
  235. package/src/classes/market.ts +36 -5
  236. package/src/classes/obligation.ts +1 -1
  237. package/src/classes/reserve.ts +13 -8
  238. package/src/classes/unstakingPool.ts +83 -6
  239. package/src/idl/klend.json +2126 -233
  240. package/src/lending_operations/index.ts +1 -0
  241. package/src/lending_operations/repay_with_collateral_operations.ts +0 -2
  242. package/src/lending_operations/swap_collateral_operations.ts +0 -1
  243. package/src/lending_operations/unstake_lst_collateral.ts +174 -0
  244. package/src/leverage/calcs.ts +2 -201
  245. package/src/leverage/operations.ts +45 -377
  246. package/src/leverage/types.ts +0 -20
  247. package/src/leverage/utils.ts +3 -320
  248. package/src/manager/client_kamino_manager.ts +11 -8
  249. package/src/utils/managerTypes.ts +9 -4
  250. package/src/utils/seeds.ts +28 -26
  251. package/dist/@codegen/klend/types/AssetTier.d.ts +0 -45
  252. package/dist/@codegen/klend/types/AssetTier.d.ts.map +0 -1
  253. package/dist/@codegen/klend/types/AssetTier.js +0 -132
  254. package/dist/@codegen/klend/types/AssetTier.js.map +0 -1
  255. package/src/@codegen/klend/types/AssetTier.ts +0 -119
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/classes/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/classes/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGP,WAAW,EACX,WAAW,EAIX,MAAM,EACN,IAAI,EAEJ,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,OAAO,CAAC;AAsCvB,OAAO,EASL,cAAc,EAEd,uBAAuB,EAMxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAA8B,YAAY,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EAA6B,aAAa,EAAiC,MAAM,iBAAiB,CAAC;AAM1G,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,QAAQ,GACR,mBAAmB,GACnB,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5D,qBAAa,YAAY;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAEzC,OAAO,EAAE,aAAa,CAAC;IAEvB,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;IAE1C,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;IAEzB,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAAC;IAE9C,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE7C,IAAI,EAAE,OAAO,CAAC;IAEd,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,MAAM,EAAE,EAAE,CAAC;IACX,aAAa,CAAC,EAAE,EAAE,CAAC;IAEnB,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhC,yBAAyB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9C,+BAA+B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAE/B,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAE/C,WAAW,EAAE,IAAI,CAAC;IAElB,OAAO;WAiDM,UAAU,CACrB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,KAAK,GAAE,iBAAyB,EAChC,kBAAkB,GAAE,OAAe;mBAyChB,uBAAuB;mBAmBvB,cAAc;WA+CtB,0BAA0B,CACrC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,EAC5B,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,WAAW,GAAE,IAAS;WA4BX,8BAA8B,CACzC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,MAAM,EACtB,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,WAAW,GAAE,IAAS;WA4BX,gBAAgB,CAC3B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EAAE,uCAAuC;IAC/E,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,6BAA6B,GAAE,MAAM,GAAG,SAAqB;IAuCzD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO;WAQhE,eAAe,CAC1B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,6BAA6B,GAAE,MAAM,GAAG,SAAqB;WAkDlD,gCAAgC,CAC3C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,2DAA2D;IAC1F,qBAAqB,GAAE,OAAe,EACtC,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS;WAgCX,gCAAgC,CAC3C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,2DAA2D;IAC1F,qBAAqB,GAAE,OAAe,EACtC,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS;WAgCX,oCAAoC,CAC/C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,2DAA2D;IAC1F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS;WAoCX,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,GAAG,EAAE,EAC1B,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,MAAM,GAAG,EAAE,EACzB,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS;WAkFX,6BAA6B,CACxC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,GAAG,EAAE,EAC1B,WAAW,EAAE,OAAO,EACpB,cAAc,EAAE,MAAM,GAAG,EAAE,EAC3B,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU;WAqCvB,2BAA2B,CACtC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,GAAG,EAAE,EACxB,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,GAAG,EAAE,EAC3B,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU;WAqCvB,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,GAAG,EAAE,EACxB,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,GAAG,EAAE,EAC3B,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU;WAuEvB,kCAAkC,CAC7C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,GAAG,EAAE,EACzB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,iCAAiC,EAAE,WAAW,EAAE,EAChD,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU;WAuCvB,iBAAiB,CAC5B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EAAE,uCAAuC;IAC/E,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,6BAA6B,CAAC,EAAE,MAAM,EAEtC,wBAAwB,CAAC,EAAE;QAEzB,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC;KAClC;WA4CU,qBAAqB,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,4DAA4D;IAC3F,qBAAqB,GAAE,OAAe,EAAE,uCAAuC;IAC/E,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,6BAA6B,CAAC,EAAE,MAAM,EAEtC,wBAAwB,CAAC,EAAE;QAEzB,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC;KAClC,EACD,QAAQ,GAAE,OAAe;IAyD3B;;;;;;;;;;;;;;;;OAgBG;WACU,cAAc,CACzB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,WAAW,EAAE,IAAI,EACjB,KAAK,GAAE,iBAAyB,EAChC,kBAAkB,GAAE,MAAkB,EACtC,aAAa,GAAE,OAAc,EAC7B,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU;WAsCvB,kBAAkB,CAC7B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,0BAA0B,EAAE,MAAM,GAAG,EAAE,EACvC,cAAc,EAAE,OAAO,EACvB,iBAAiB,EAAE,OAAO,EAC1B,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,QAAQ,EAAE,OAAO,EACjB,kBAAkB,GAAE,uBAAuB,GAAG,SAAqB,EACnE,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,iHAAiH;IAChJ,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,4BAA4B,GAAE,MAAU,EACxC,WAAW,GAAE,IAAS,GACrB,OAAO,CAAC,YAAY,CAAC;WAuCX,gCAAgC,CAC3C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EACnB,0BAA0B,EAAE,MAAM,GAAG,EAAE,EACvC,cAAc,EAAE,OAAO,EACvB,iBAAiB,EAAE,OAAO,EAC1B,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,kBAAkB,GAAE,uBAAuB,GAAG,SAAqB,EACnE,kBAAkB,GAAE,MAAkB,EAAE,0BAA0B;IAClE,aAAa,GAAE,OAAc,EAAE,iHAAiH;IAChJ,qBAAqB,GAAE,OAAe,EACtC,gBAAgB,GAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAGxE,EACD,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,4BAA4B,GAAE,MAAU,EACxC,WAAW,GAAE,IAAS,EACtB,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,YAAY,CAAC;WAwCX,4BAA4B,CACvC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,YAAY,EAC1B,WAAW,GAAE,IAAS;IA6BxB;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EAAE,sBAAsB,GACnC,WAAW;IAgBR,4BAA4B;IA2B5B,4BAA4B;IA4B5B,YAAY;IA6BZ,cAAc;IAqCd,+BAA+B,CAAC,iCAAiC,EAAE,WAAW,EAAE;IA2HhF,gCAAgC;IAuBhC,kCAAkC;IAmClC,WAAW;IAyCX,aAAa;IAoDb,aAAa,CAAC,gBAAgB,EAAE,EAAE;IA6BlC,eAAe,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCpD,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAuEzD,UAAU;IA0CV,YAAY;IAqDZ,wBAAwB,CAAC,wBAAwB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgFrE,0BAA0B,CAAC,wBAAwB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFvE,qBAAqB;IA2ErB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8FxC,sBAAsB,CAAC,wBAAwB,EAAE,EAAE;IAwEnD,wBAAwB,CAAC,wBAAwB,EAAE,EAAE;IAmGrD,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvD,cAAc,CAAC,4BAA4B,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvE,gBAAgB,CAAC,4BAA4B,GAAE,MAAU;IAwEzD,4BAA4B,CAAC,4BAA4B,GAAE,MAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA8FxF,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,OAAO,EACtB,qBAAqB,EAAE,OAAO,EAC9B,wBAAwB,EAAE,OAAO,EACjC,QAAQ,EAAE,OAAO;IAYb,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7D,kCAAkC,CACtC,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,EACjB,cAAc,GAAE,WAAqB,EACrC,qBAAqB,GAAE,OAAe,EACtC,wBAAwB,GAAE,OAAe,EACzC,cAAc,GAAE,OAAe,EAC/B,6BAA6B,CAAC,EAAE,MAAM;IAmTlC,aAAa,CACjB,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,OAAO,EACtB,qBAAqB,EAAE,OAAO,EAC9B,wBAAwB,EAAE,OAAO,EACjC,QAAQ,EAAE,OAAO,EACjB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,EACvD,gBAAgB,EAAE;QAAE,kBAAkB,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,EAC3E,cAAc,GAAE,OAAe,EAC/B,6BAA6B,CAAC,EAAE,MAAM;IAkDxC,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,oBAAoB;WAuCd,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE;YAuBrF,sBAAsB;YA6DtB,qBAAqB;YA+DrB,yBAAyB;IA+FvC,OAAO,CAAC,wCAAwC;YAKlC,wBAAwB;YAuDxB,oBAAoB;YA8BpB,sBAAsB;IA0BpC,OAAO,CAAC,2BAA2B;YAqBrB,0BAA0B;IA2BxC,OAAO,CAAC,kBAAkB;YAKZ,SAAS;YAsGT,iBAAiB;WAoHlB,0BAA0B,CACrC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,GAAG,EAAE,EACzB,eAAe,EAAE,OAAO,EACxB,gBAAgB,EAAE,OAAO,EACzB,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,gBAAgB,GAAG,cAAc,EAC7C,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,EAC3B,QAAQ,GAAE,MAAM,CAAC,OAAO,CAAU,EAClC,WAAW,GAAE,IAAS,EACtB,kBAAkB,GAAE,OAAe;WA2DxB,8BAA8B,CACzC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,GAAE,IAAS;;;;IAqCxB,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;IAW7D,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAM1C,uBAAuB;IAIvB,gCAAgC,IAAI,OAAO,EAAE;mBAsBxB,0BAA0B;YAWjC,gCAAgC;YAchC,4BAA4B;IAI1C,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpE,4BAA4B,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrF,+BAA+B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;WAI3D,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;WAOrD,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;WAW5D,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;WAOrD,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;mBAWrD,yBAAyB;mBA+CzB,cAAc;mBAsBd,gCAAgC;CAUtD"}
@@ -19,8 +19,15 @@ const sysvars_1 = require("@solana/sysvars");
19
19
  const token_2022_1 = require("@solana-program/token-2022");
20
20
  const system_1 = require("@solana-program/system");
21
21
  const signer_1 = require("../utils/signer");
22
+ const programId_2 = require("../@codegen/unstaking_pool/programId");
23
+ const unstakingPool_1 = require("./unstakingPool");
24
+ const programId_3 = require("../@codegen/klend/programId");
25
+ const UnstakeTicket_1 = require("../@codegen/unstaking_pool/accounts/UnstakeTicket");
26
+ const instructions_2 = require("../@codegen/unstaking_pool/instructions");
27
+ const unstakeLstCollateralEnd_1 = require("../@codegen/klend/instructions/unstakeLstCollateralEnd");
22
28
  class KaminoAction {
23
29
  kaminoMarket;
30
+ unstakingPool;
24
31
  reserve;
25
32
  outflowReserve;
26
33
  owner;
@@ -52,7 +59,7 @@ class KaminoAction {
52
59
  borrowReserves;
53
60
  preLoadedDepositReservesSameTx;
54
61
  currentSlot;
55
- constructor(kaminoMarket, owner, obligation, mint, positions, amount, depositReserves, borrowReserves, reserveState, currentSlot, secondaryMint, outflowReserveState, outflowAmount, referrer = (0, kit_1.none)(), payer) {
62
+ constructor(kaminoMarket, owner, obligation, mint, positions, amount, depositReserves, borrowReserves, reserveState, currentSlot, unstakingPool, secondaryMint, outflowReserveState, outflowAmount, referrer = (0, kit_1.none)(), payer) {
56
63
  this.kaminoMarket = kaminoMarket;
57
64
  this.obligation = obligation;
58
65
  this.owner = owner;
@@ -81,15 +88,23 @@ class KaminoAction {
81
88
  this.preLoadedDepositReservesSameTx = [];
82
89
  this.referrer = referrer;
83
90
  this.currentSlot = currentSlot;
91
+ this.unstakingPool = unstakingPool;
84
92
  }
85
- static async initialize(action, amount, mint, owner, kaminoMarket, obligation, referrer = (0, kit_1.none)(), currentSlot = 0n, payer = owner) {
93
+ static async initialize(action, amount, mint, owner, kaminoMarket, obligation, referrer = (0, kit_1.none)(), currentSlot = 0n, payer = owner, needsUnstakingPool = false) {
86
94
  const reserve = kaminoMarket.getReserveByMint(mint);
87
95
  if (reserve === undefined) {
88
96
  throw new Error(`Reserve ${mint} not found in market ${kaminoMarket.getAddress()}`);
89
97
  }
90
98
  const { kaminoObligation, depositReserves, borrowReserves, distinctReserveCount } = await KaminoAction.loadObligation(action, kaminoMarket, owner.address, reserve.address, obligation);
91
99
  const referrerKey = await this.getReferrerKey(kaminoMarket, owner.address, kaminoObligation, referrer);
92
- return new KaminoAction(kaminoMarket, owner, kaminoObligation || obligation, mint, distinctReserveCount, amount, depositReserves, borrowReserves, reserve, currentSlot, undefined, undefined, undefined, referrerKey, payer);
100
+ let unstakingPool = undefined;
101
+ if (needsUnstakingPool) {
102
+ const unstakingPoolPk = kaminoMarket.state.unstakingPoolState;
103
+ const unstakingPoolProgramId = kaminoMarket.programId == programId_3.PROGRAM_ID ? programId_2.PROGRAM_ID : unstakingPool_1.UNSTAKING_POOL_STAGING_ID;
104
+ unstakingPool = new unstakingPool_1.UnstakingPool(unstakingPoolPk, undefined, unstakingPoolProgramId);
105
+ await unstakingPool.reloadState(kaminoMarket.getRpc());
106
+ }
107
+ return new KaminoAction(kaminoMarket, owner, kaminoObligation || obligation, mint, distinctReserveCount, amount, depositReserves, borrowReserves, reserve, currentSlot, unstakingPool, undefined, undefined, undefined, referrerKey, payer);
93
108
  }
94
109
  static async getUserAccountAddresses(owner, reserve) {
95
110
  const [userTokenAccountAddress, userCollateralAccountAddress] = await Promise.all([
@@ -399,6 +414,24 @@ class KaminoAction {
399
414
  }
400
415
  return axn;
401
416
  }
417
+ static async buildUnstakeLstCollateralStartTxns(kaminoMarket, lstToConvert, usolMint, lstMint, payer, currentSlot, obligation, depositStakedSolRemainingAccounts, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ix
418
+ includeAtaIxs = true, // if true it includes create and close wsol and token atas,
419
+ initUserMetadata = {
420
+ skipInitialization: false,
421
+ skipLutCreation: false,
422
+ }, referrer = (0, kit_1.none)()) {
423
+ const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'unstakeLstCollateralStart', lstToConvert, usolMint, lstMint, payer, payer.address, obligation, undefined, referrer, currentSlot, true);
424
+ const addInitObligationForFarm = true;
425
+ const twoTokenAction = true;
426
+ const requestElevationGroup = false;
427
+ const useV2Ixs = true;
428
+ if (extraComputeBudget > 0) {
429
+ axn.addComputeBudgetIx(extraComputeBudget);
430
+ }
431
+ await axn.addSupportIxs('unstakeLstCollateralStart', includeAtaIxs, requestElevationGroup, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, initUserMetadata, twoTokenAction);
432
+ await axn.addUnstakeLstCollateralStartIxs(depositStakedSolRemainingAccounts);
433
+ return axn;
434
+ }
402
435
  static async buildWithdrawTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ix
403
436
  includeAtaIxs = true, // if true it includes create and close wsol and token atas,
404
437
  requestElevationGroup = false, // to be requested *after* the withdraw
@@ -425,6 +458,38 @@ class KaminoAction {
425
458
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
426
459
  return axn;
427
460
  }
461
+ static async buildWithdrawUsolTxns(kaminoMarket, amount, mint, owner, obligation, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ix
462
+ includeAtaIxs = true, // if true it includes create and close wsol and token atas,
463
+ requestElevationGroup = false, // to be requested *after* the withdraw
464
+ initUserMetadata = {
465
+ skipInitialization: false,
466
+ skipLutCreation: false,
467
+ }, referrer = (0, kit_1.none)(), currentSlot = 0n, overrideElevationGroupRequest,
468
+ // Optional customizations which may be needed if the obligation was mutated by some previous ix.
469
+ obligationCustomizations, burnUsol = false) {
470
+ const axn = await KaminoAction.initialize('withdraw', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot, undefined, true);
471
+ if (extraComputeBudget > 0) {
472
+ axn.addComputeBudgetIx(extraComputeBudget);
473
+ }
474
+ axn.depositReserves.push(...(obligationCustomizations?.addedDepositReserves || []));
475
+ const addInitObligationForFarm = true;
476
+ const useV2Ixs = true;
477
+ await axn.addSupportIxs('withdraw', includeAtaIxs, requestElevationGroup, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, initUserMetadata, false, overrideElevationGroupRequest);
478
+ // We need user SOL ata to be initialized so they can receive the SOL
479
+ // No need for other support ix (such as refresh reserve) as this burnUsolIx is called from unstaking pool
480
+ if (burnUsol) {
481
+ const [userAta, createUserTokenAccountIx] = await (0, utils_1.createAssociatedTokenAccountIdempotentInstruction)(axn.owner, utils_1.WRAPPED_SOL_MINT, axn.owner.address);
482
+ axn.setupIxs.unshift(createUserTokenAccountIx);
483
+ axn.setupIxsLabels.unshift(`CreateLiquidityUserAta[${userAta}]`);
484
+ }
485
+ const collateralAmount = axn.getWithdrawCollateralAmount(axn.reserve, axn.amount);
486
+ const unstakeTicket = await axn.addWithdrawUsolIx(collateralAmount);
487
+ if (burnUsol) {
488
+ await axn.addBurnAllUsolIx(unstakeTicket);
489
+ }
490
+ axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
491
+ return axn;
492
+ }
428
493
  /**
429
494
  *
430
495
  * @param kaminoMarket
@@ -482,6 +547,26 @@ class KaminoAction {
482
547
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
483
548
  return axn;
484
549
  }
550
+ static async buildUnstakeLstCollateralEndTxns(kaminoMarket, amount, minCollateralReceiveAmount, repayTokenMint, withdrawTokenMint, liquidator, obligationOwner, obligation, scopeRefreshConfig = undefined, extraComputeBudget = 1_000_000, // if > 0 then adds the ix
551
+ includeAtaIxs = true, // if true it includes create and close wsol and token atas, and creates all other token atas if they don't exist
552
+ requestElevationGroup = false, initUserMetadata = {
553
+ skipInitialization: false,
554
+ skipLutCreation: false,
555
+ }, referrer = (0, kit_1.none)(), maxAllowedLtvOverridePercent = 0, currentSlot = 0n, burnUsol = false) {
556
+ const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'liquidate', amount, repayTokenMint, withdrawTokenMint, liquidator, obligationOwner, obligation, minCollateralReceiveAmount, referrer, currentSlot, true);
557
+ const addInitObligationForFarm = true;
558
+ const useV2Ixs = true;
559
+ if (extraComputeBudget > 0) {
560
+ axn.addComputeBudgetIx(extraComputeBudget);
561
+ }
562
+ await axn.addSupportIxs('liquidate', includeAtaIxs, requestElevationGroup, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, initUserMetadata);
563
+ const unstakeTicket = await axn.addUnstakeLstCollateralEndIx(maxAllowedLtvOverridePercent);
564
+ if (burnUsol) {
565
+ await axn.addBurnAllUsolIx(unstakeTicket);
566
+ }
567
+ axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
568
+ return axn;
569
+ }
485
570
  static async buildWithdrawReferrerFeeTxns(owner, tokenMint, kaminoMarket, currentSlot = 0n) {
486
571
  const { axn, createAtaIxs } = await KaminoAction.initializeWithdrawReferrerFees(tokenMint, owner, kaminoMarket, currentSlot);
487
572
  axn.setupIxs.push(...createAtaIxs);
@@ -599,6 +684,100 @@ class KaminoAction {
599
684
  farmsProgram: programId_1.PROGRAM_ID,
600
685
  }, undefined, this.kaminoMarket.programId));
601
686
  }
687
+ async addUnstakeLstCollateralStartIxs(depositStakedSolRemainingAccounts) {
688
+ // Deposit USOL - our custom token issued by unstaking pool program
689
+ // and withdraw some kind of staked sol
690
+ this.lendingIxsLabels.push(`unstakeLstCollateral(depositReserve=${this.reserve.address})(withdrawReserve=${this.outflowReserve.address})(obligation=${this.getObligationPda()})`);
691
+ const depositReservesList = this.getAdditionalDepositReservesList();
692
+ const depositReserveAccountMetas = depositReservesList.map((reserve) => {
693
+ return { address: reserve, role: kit_1.AccountRole.WRITABLE };
694
+ });
695
+ const borrowReserveAccountMetas = this.borrowReserves.map((reserve) => {
696
+ return { address: reserve, role: kit_1.AccountRole.WRITABLE };
697
+ });
698
+ if (!this.outflowReserve) {
699
+ throw new Error(`outflowReserve not set`);
700
+ }
701
+ if (!this.unstakingPool || !this.unstakingPool.state) {
702
+ throw new Error(`unstaking pool not set`);
703
+ }
704
+ const basePoolAuthority = (await (0, unstakingPool_1.unstakingPoolBaseAuthorityPda)(this.unstakingPool.address, this.unstakingPool.programId))[0];
705
+ const ownerUsolToken = await this.getUserTokenAccountAddress(this.reserve);
706
+ const ownerLstToken = await this.getUserTokenAccountAddress(this.outflowReserve);
707
+ const unstakingPoolAuthority = (await (0, utils_1.unstakingPoolMarketAuthorityPda)(this.kaminoMarket.address, this.kaminoMarket.programId))[0];
708
+ const obligationPda = await this.getObligationPda();
709
+ const { collateralFarmAccounts: depositFarmsAccounts } = await KaminoAction.getFarmAccountsForReserve(obligationPda, this.reserve);
710
+ const { collateralFarmAccounts: withdrawFarmsAccounts } = await KaminoAction.getFarmAccountsForReserve(obligationPda, this.outflowReserve);
711
+ // Create unstake ticket
712
+ const unstakeTicket = await (0, kit_1.generateKeyPairSigner)();
713
+ const unstakeTicketSize = UnstakeTicket_1.UnstakeTicket.layout.span + 8;
714
+ const createUnstakeTicketIx = (0, system_1.getCreateAccountInstruction)({
715
+ payer: this.owner,
716
+ newAccount: unstakeTicket,
717
+ lamports: await this.kaminoMarket.getRpc().getMinimumBalanceForRentExemption(BigInt(unstakeTicketSize)).send(),
718
+ space: unstakeTicketSize,
719
+ programAddress: this.unstakingPool.programId,
720
+ });
721
+ this.lendingIxs.push(createUnstakeTicketIx);
722
+ const unstakeLstCollateralStartIx = (0, instructions_1.unstakeLstCollateralStart)({
723
+ lstToConvert: this.amount,
724
+ }, {
725
+ depositAndWithdrawAccounts: {
726
+ depositAccounts: {
727
+ owner: this.owner,
728
+ obligation: obligationPda,
729
+ lendingMarket: this.kaminoMarket.getAddress(),
730
+ lendingMarketAuthority: await this.kaminoMarket.getLendingMarketAuthority(),
731
+ reserve: this.reserve.address,
732
+ reserveLiquidityMint: this.reserve.getLiquidityMint(),
733
+ reserveLiquiditySupply: this.reserve.state.liquidity.supplyVault,
734
+ reserveCollateralMint: this.reserve.getCTokenMint(),
735
+ reserveDestinationDepositCollateral: this.reserve.state.collateral.supplyVault, // destinationCollateral
736
+ userSourceLiquidity: ownerUsolToken,
737
+ placeholderUserDestinationCollateral: (0, kit_1.none)(),
738
+ collateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
739
+ liquidityTokenProgram: this.reserve.getLiquidityTokenProgram(),
740
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
741
+ },
742
+ withdrawAccounts: {
743
+ owner: this.owner,
744
+ obligation: obligationPda,
745
+ lendingMarket: this.kaminoMarket.getAddress(),
746
+ lendingMarketAuthority: await this.kaminoMarket.getLendingMarketAuthority(),
747
+ withdrawReserve: this.outflowReserve.address,
748
+ reserveLiquidityMint: this.outflowReserve.getLiquidityMint(),
749
+ reserveCollateralMint: this.outflowReserve.getCTokenMint(),
750
+ reserveLiquiditySupply: this.outflowReserve.state.liquidity.supplyVault,
751
+ reserveSourceCollateral: this.outflowReserve.state.collateral.supplyVault,
752
+ userDestinationLiquidity: ownerLstToken,
753
+ placeholderUserDestinationCollateral: (0, kit_1.none)(),
754
+ collateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
755
+ liquidityTokenProgram: this.outflowReserve.getLiquidityTokenProgram(),
756
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
757
+ },
758
+ depositFarmsAccounts,
759
+ withdrawFarmsAccounts,
760
+ farmsProgram: programId_1.PROGRAM_ID,
761
+ },
762
+ depositStakedSolAccounts: {
763
+ owner: this.owner,
764
+ unstakingPoolAuthority,
765
+ ownerStakedSolToken: ownerLstToken,
766
+ ownerUnstakingSolToken: ownerUsolToken,
767
+ stakedSolMint: this.outflowReserve.getLiquidityMint(),
768
+ poolState: this.unstakingPool.address,
769
+ unstakingSolMint: this.reserve.getLiquidityMint(),
770
+ basePoolAuthority,
771
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
772
+ unstakingSolTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
773
+ stakedSolTokenProgram: this.outflowReserve.getLiquidityTokenProgram(),
774
+ unstakeTicket: unstakeTicket.address,
775
+ unstakingTicketBurnAuthority: unstakingPoolAuthority,
776
+ },
777
+ unstakingPoolProgram: this.unstakingPool.programId,
778
+ }, [...depositStakedSolRemainingAccounts, ...depositReserveAccountMetas, ...borrowReserveAccountMetas], this.kaminoMarket.programId);
779
+ this.lendingIxs.push(unstakeLstCollateralStartIx);
780
+ }
602
781
  /// @deprecated -- use addDepositObligationCollateralIxV2 instead
603
782
  async addDepositObligationCollateralIx() {
604
783
  this.lendingIxsLabels.push(`depositObligationCollateral`);
@@ -755,6 +934,60 @@ class KaminoAction {
755
934
  farmsProgram: programId_1.PROGRAM_ID,
756
935
  }, undefined, this.kaminoMarket.programId));
757
936
  }
937
+ async addWithdrawUsolIx(collateralAmount) {
938
+ if (!(0, obligation_1.isKaminoObligation)(this.obligation)) {
939
+ throw new Error(`obligation is not a KaminoObligation`);
940
+ }
941
+ if (!this.unstakingPool || !this.unstakingPool.state) {
942
+ throw new Error(`unstaking pool not set`);
943
+ }
944
+ const obligationAddress = await this.getObligationPda();
945
+ const { collateralFarmAccounts: farmsAccounts } = await KaminoAction.getFarmAccountsForReserve(obligationAddress, this.reserve);
946
+ this.lendingIxsLabels.push(`withdrawUsol`);
947
+ const newUnstakeTicket = await (0, kit_1.generateKeyPairSigner)();
948
+ const unstakeTicketSize = UnstakeTicket_1.UnstakeTicket.layout.span + 8;
949
+ const createUnstakeTicketIx = (0, system_1.getCreateAccountInstruction)({
950
+ payer: this.owner,
951
+ newAccount: newUnstakeTicket,
952
+ lamports: await this.kaminoMarket.getRpc().getMinimumBalanceForRentExemption(BigInt(unstakeTicketSize)).send(),
953
+ space: unstakeTicketSize,
954
+ programAddress: this.unstakingPool.programId,
955
+ });
956
+ this.lendingIxs.push(createUnstakeTicketIx);
957
+ const unstakingPoolAuthority = (await (0, utils_1.unstakingPoolMarketAuthorityPda)(this.kaminoMarket.address, this.kaminoMarket.programId))[0];
958
+ this.lendingIxs.push((0, instructions_1.withdrawObligationUsol)({
959
+ collateralAmount,
960
+ }, {
961
+ withdrawAccounts: {
962
+ withdrawAccounts: {
963
+ owner: this.owner,
964
+ obligation: obligationAddress,
965
+ lendingMarket: this.kaminoMarket.getAddress(),
966
+ lendingMarketAuthority: await this.kaminoMarket.getLendingMarketAuthority(),
967
+ withdrawReserve: this.reserve.address,
968
+ reserveLiquidityMint: this.reserve.getLiquidityMint(),
969
+ reserveCollateralMint: this.reserve.getCTokenMint(),
970
+ reserveLiquiditySupply: this.reserve.state.liquidity.supplyVault,
971
+ reserveSourceCollateral: this.reserve.state.collateral.supplyVault,
972
+ userDestinationLiquidity: await this.getUserTokenAccountAddress(this.reserve),
973
+ placeholderUserDestinationCollateral: (0, kit_1.none)(),
974
+ collateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
975
+ liquidityTokenProgram: this.reserve.getLiquidityTokenProgram(),
976
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
977
+ },
978
+ farmsAccounts: farmsAccounts,
979
+ farmsProgram: programId_1.PROGRAM_ID,
980
+ },
981
+ extraAccounts: {
982
+ unstakeTicket: this.obligation.state.unstakeTicket,
983
+ emptyUnstakeTicket: newUnstakeTicket.address,
984
+ unstakingPoolAuthority: unstakingPoolAuthority,
985
+ unstakingPoolProgram: this.unstakingPool.programId,
986
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
987
+ },
988
+ }, [], this.kaminoMarket.programId));
989
+ return newUnstakeTicket.address;
990
+ }
758
991
  /// @deprecated -- use addRepayIxV2 instead
759
992
  async addRepayIx() {
760
993
  const obligationAddress = await this.getObligationPda();
@@ -1184,6 +1417,27 @@ class KaminoAction {
1184
1417
  farmsProgram: programId_1.PROGRAM_ID,
1185
1418
  }, undefined, this.kaminoMarket.programId));
1186
1419
  }
1420
+ async addBurnAllUsolIx(unstakeTicket) {
1421
+ this.lendingIxsLabels.push(`burnUsolIx`);
1422
+ if (!this.unstakingPool || !this.unstakingPool.state) {
1423
+ throw new Error(`unstaking pool not set`);
1424
+ }
1425
+ this.lendingIxs.push((0, instructions_2.burn)({
1426
+ sharesToBurn: new bn_js_1.default(utils_1.U64_MAX),
1427
+ minWsolToReceive: new bn_js_1.default(0), // TODO: find a way to compute a reasonable slippage
1428
+ }, {
1429
+ user: this.owner,
1430
+ userUnstakingSolToken: await (0, utils_1.getAssociatedTokenAddress)(this.unstakingPool.state.unstakingSolMint, this.owner.address, token_1.TOKEN_PROGRAM_ADDRESS),
1431
+ userWsolToken: await (0, utils_1.getAssociatedTokenAddress)(utils_1.WRAPPED_SOL_MINT, this.owner.address, token_1.TOKEN_PROGRAM_ADDRESS),
1432
+ wsolVault: this.unstakingPool.state.wsolVault,
1433
+ wsolMint: utils_1.WRAPPED_SOL_MINT,
1434
+ poolState: this.unstakingPool.address,
1435
+ unstakeTicket,
1436
+ unstakingSolMint: this.unstakingPool.state.unstakingSolMint,
1437
+ basePoolAuthority: this.unstakingPool.state.basePoolAuthority,
1438
+ tokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1439
+ }, this.unstakingPool.programId));
1440
+ }
1187
1441
  async addLiquidateIx(maxAllowedLtvOverridePercent = 0) {
1188
1442
  this.lendingIxsLabels.push(`liquidateObligationAndRedeemReserveCollateral`);
1189
1443
  if (!this.outflowReserve) {
@@ -1286,6 +1540,80 @@ class KaminoAction {
1286
1540
  };
1287
1541
  this.lendingIxs.push(liquidateIx);
1288
1542
  }
1543
+ async addUnstakeLstCollateralEndIx(maxAllowedLtvOverridePercent = 0) {
1544
+ this.lendingIxsLabels.push(`unstakeLstCollateralEnd`);
1545
+ if (!this.outflowReserve) {
1546
+ throw Error(`Withdraw reserve during liquidation is not defined`);
1547
+ }
1548
+ if (!(0, obligation_1.isKaminoObligation)(this.obligation)) {
1549
+ throw new Error(`obligation is not a KaminoObligation`);
1550
+ }
1551
+ if (!this.unstakingPool || !this.unstakingPool.state) {
1552
+ throw new Error(`unstaking pool not set`);
1553
+ }
1554
+ const depositReservesList = this.getAdditionalDepositReservesList();
1555
+ const depositReserveAccountMetas = depositReservesList.map((reserve) => {
1556
+ return { address: reserve, role: kit_1.AccountRole.WRITABLE };
1557
+ });
1558
+ const obligationAddress = await this.getObligationPda();
1559
+ const { collateralFarmAccounts: collateralFarmsAccounts } = await KaminoAction.getFarmAccountsForReserve(obligationAddress, this.outflowReserve);
1560
+ const { debtFarmAccounts: debtFarmsAccounts } = await KaminoAction.getFarmAccountsForReserve(await this.getObligationPda(), this.reserve);
1561
+ const newUnstakeTicket = await (0, kit_1.generateKeyPairSigner)();
1562
+ const unstakeTicketSize = UnstakeTicket_1.UnstakeTicket.layout.span + 8;
1563
+ const createUnstakeTicketIx = (0, system_1.getCreateAccountInstruction)({
1564
+ payer: this.owner,
1565
+ newAccount: newUnstakeTicket,
1566
+ lamports: await this.kaminoMarket.getRpc().getMinimumBalanceForRentExemption(BigInt(unstakeTicketSize)).send(),
1567
+ space: unstakeTicketSize,
1568
+ programAddress: this.unstakingPool.programId,
1569
+ });
1570
+ this.lendingIxs.push(createUnstakeTicketIx);
1571
+ const unstakingPoolAuthority = (await (0, utils_1.unstakingPoolMarketAuthorityPda)(this.kaminoMarket.address, this.kaminoMarket.programId))[0];
1572
+ const extraAccounts = this.obligation.state.elevationGroup > 0 ? depositReserveAccountMetas : [];
1573
+ const liquidateIx = (0, unstakeLstCollateralEnd_1.unstakeLstCollateralEnd)({
1574
+ liquidityAmount: this.amount,
1575
+ // TODO: Configure this when updating liquidator with new interface
1576
+ minAcceptableReceivedLiquidityAmount: this.outflowAmount || new bn_js_1.default(0),
1577
+ maxAllowedLtvOverridePercent: new bn_js_1.default(maxAllowedLtvOverridePercent),
1578
+ }, {
1579
+ liquidationAccounts: {
1580
+ liquidationAccounts: {
1581
+ liquidator: this.owner,
1582
+ obligation: obligationAddress,
1583
+ lendingMarket: this.kaminoMarket.getAddress(),
1584
+ lendingMarketAuthority: await this.kaminoMarket.getLendingMarketAuthority(),
1585
+ repayReserve: this.reserve.address,
1586
+ repayReserveLiquidityMint: this.reserve.getLiquidityMint(),
1587
+ repayReserveLiquiditySupply: this.reserve.state.liquidity.supplyVault,
1588
+ withdrawReserve: this.outflowReserve.address,
1589
+ withdrawReserveLiquidityMint: this.outflowReserve.getLiquidityMint(),
1590
+ withdrawReserveCollateralMint: this.outflowReserve.getCTokenMint(),
1591
+ withdrawReserveCollateralSupply: this.outflowReserve.state.collateral.supplyVault,
1592
+ withdrawReserveLiquiditySupply: this.outflowReserve.state.liquidity.supplyVault,
1593
+ userSourceLiquidity: await this.getUserTokenAccountAddress(this.reserve),
1594
+ userDestinationCollateral: await this.getUserCollateralAccountAddress(this.outflowReserve),
1595
+ userDestinationLiquidity: await this.getUserTokenAccountAddress(this.outflowReserve),
1596
+ withdrawReserveLiquidityFeeReceiver: this.outflowReserve.state.liquidity.feeVault,
1597
+ collateralTokenProgram: token_1.TOKEN_PROGRAM_ADDRESS,
1598
+ repayLiquidityTokenProgram: this.reserve.getLiquidityTokenProgram(),
1599
+ withdrawLiquidityTokenProgram: this.outflowReserve.getLiquidityTokenProgram(),
1600
+ instructionSysvarAccount: sysvars_1.SYSVAR_INSTRUCTIONS_ADDRESS,
1601
+ },
1602
+ debtFarmsAccounts,
1603
+ collateralFarmsAccounts,
1604
+ farmsProgram: programId_1.PROGRAM_ID,
1605
+ },
1606
+ extraAccounts: {
1607
+ unstakeTicket: this.obligation.state.unstakeTicket,
1608
+ emptyUnstakeTicket: newUnstakeTicket.address,
1609
+ unstakingPoolAuthority: unstakingPoolAuthority,
1610
+ unstakingPoolProgram: this.unstakingPool.programId,
1611
+ systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
1612
+ },
1613
+ }, extraAccounts, this.kaminoMarket.programId);
1614
+ this.lendingIxs.push(liquidateIx);
1615
+ return newUnstakeTicket.address;
1616
+ }
1289
1617
  async addInBetweenIxs(action, includeAtaIxs, requestElevationGroup, addInitObligationForFarm, useV2Ixs) {
1290
1618
  await this.addSupportIxsWithoutInitObligation(action, includeAtaIxs, useV2Ixs, 'inBetween', requestElevationGroup, addInitObligationForFarm);
1291
1619
  }
@@ -1316,6 +1644,7 @@ class KaminoAction {
1316
1644
  'repayAndWithdrawV2',
1317
1645
  'refreshObligation',
1318
1646
  'depositAndWithdraw',
1647
+ 'unstakeLstCollateralStart',
1319
1648
  ].includes(action)) {
1320
1649
  // The support ixs in order are:
1321
1650
  // 0. Init obligation ix
@@ -1333,13 +1662,17 @@ class KaminoAction {
1333
1662
  if (action === 'liquidate' ||
1334
1663
  action === 'depositAndBorrow' ||
1335
1664
  action === 'repayAndWithdraw' ||
1336
- action === 'repayAndWithdrawV2') {
1665
+ action === 'repayAndWithdrawV2' ||
1666
+ action === 'unstakeLstCollateralStart') {
1337
1667
  if (!this.outflowReserve) {
1338
1668
  throw new Error('outflowReserve is undefined');
1339
1669
  }
1340
- if (action === 'depositAndBorrow' || action === 'repayAndWithdraw' || action === 'repayAndWithdrawV2') {
1670
+ if (action === 'depositAndBorrow' ||
1671
+ action === 'repayAndWithdraw' ||
1672
+ action === 'repayAndWithdrawV2' ||
1673
+ action === 'unstakeLstCollateralStart') {
1341
1674
  currentReserves = [this.reserve, this.outflowReserve];
1342
- if (action === 'depositAndBorrow') {
1675
+ if (action === 'depositAndBorrow' || action === 'unstakeLstCollateralStart') {
1343
1676
  if ((0, obligation_1.isKaminoObligation)(this.obligation)) {
1344
1677
  const deposit = this.obligation.getDepositByReserve(this.reserve.address);
1345
1678
  if (!deposit) {
@@ -1392,6 +1725,12 @@ class KaminoAction {
1392
1725
  await this.addInitObligationForFarm(this.outflowReserve, types_1.ReserveFarmKind.Collateral, addAsSupportIx);
1393
1726
  }
1394
1727
  }
1728
+ else if (action === 'unstakeLstCollateralStart') {
1729
+ await this.addInitObligationForFarm(this.reserve, types_1.ReserveFarmKind.Collateral, addAsSupportIx);
1730
+ if (this.outflowReserve) {
1731
+ await this.addInitObligationForFarm(this.outflowReserve, types_1.ReserveFarmKind.Collateral, addAsSupportIx);
1732
+ }
1733
+ }
1395
1734
  else {
1396
1735
  await this.addInitObligationForFarm(this.reserve, types_1.ReserveFarmKind.Collateral, addAsSupportIx);
1397
1736
  await this.addInitObligationForFarm(this.reserve, types_1.ReserveFarmKind.Debt, addAsSupportIx);
@@ -1415,6 +1754,13 @@ class KaminoAction {
1415
1754
  : [];
1416
1755
  await this.addRefreshObligationIx(addAsSupportIx, repaidBorrowReservesToSkip);
1417
1756
  }
1757
+ else if (action == 'unstakeLstCollateralStart') {
1758
+ if (!(0, obligation_1.isKaminoObligation)(this.obligation)) {
1759
+ throw new Error(`obligation is not a KaminoObligation`);
1760
+ }
1761
+ // Usol reserve doesn't exist yet
1762
+ await this.addRefreshObligationIx(addAsSupportIx, [this.reserve.address]);
1763
+ }
1418
1764
  else {
1419
1765
  await this.addRefreshObligationIx(addAsSupportIx);
1420
1766
  }
@@ -2041,24 +2387,32 @@ class KaminoAction {
2041
2387
  this.cleanupIxs.push(...postIxs);
2042
2388
  this.cleanupIxsLabels.push(...postIxsLabels);
2043
2389
  }
2044
- static async initializeMultiTokenAction(kaminoMarket, action, inflowAmount, inflowTokenMint, outflowTokenMint, signer, obligationOwner, obligation, outflowAmount, referrer = (0, kit_1.none)(), currentSlot = 0n) {
2390
+ static async initializeMultiTokenAction(kaminoMarket, action, inflowAmount, inflowTokenMint, outflowTokenMint, signer, obligationOwner, obligation, outflowAmount, referrer = (0, kit_1.none)(), currentSlot = 0n, needsUnstakingPool = false) {
2045
2391
  const inflowReserve = kaminoMarket.getExistingReserveByMint(inflowTokenMint);
2046
2392
  const outflowReserve = kaminoMarket.getExistingReserveByMint(outflowTokenMint);
2047
2393
  const { kaminoObligation, depositReserves, borrowReserves, distinctReserveCount } = await KaminoAction.loadObligation(action, kaminoMarket, obligationOwner, inflowReserve.address, obligation, outflowReserve.address);
2048
2394
  const referrerKey = await this.getReferrerKey(kaminoMarket, signer.address, kaminoObligation, referrer);
2049
2395
  let secondaryMint;
2050
2396
  let primaryMint;
2397
+ let unstakingPool = undefined;
2051
2398
  if (action === 'liquidate' ||
2052
2399
  action === 'depositAndBorrow' ||
2053
2400
  action === 'repayAndWithdraw' ||
2054
- action === 'repayAndWithdrawV2') {
2401
+ action === 'repayAndWithdrawV2' ||
2402
+ action === 'unstakeLstCollateralStart') {
2055
2403
  primaryMint = inflowTokenMint;
2056
2404
  secondaryMint = outflowTokenMint;
2405
+ if (needsUnstakingPool) {
2406
+ const unstakingPoolPk = kaminoMarket.state.unstakingPoolState;
2407
+ const unstakingPoolProgramId = kaminoMarket.programId == programId_3.PROGRAM_ID ? programId_2.PROGRAM_ID : unstakingPool_1.UNSTAKING_POOL_STAGING_ID;
2408
+ unstakingPool = new unstakingPool_1.UnstakingPool(unstakingPoolPk, undefined, unstakingPoolProgramId);
2409
+ await unstakingPool.reloadState(kaminoMarket.getRpc());
2410
+ }
2057
2411
  }
2058
2412
  else {
2059
2413
  throw new Error('Invalid action');
2060
2414
  }
2061
- return new KaminoAction(kaminoMarket, signer, kaminoObligation || obligation, primaryMint, distinctReserveCount, inflowAmount, depositReserves, borrowReserves, inflowReserve, currentSlot, secondaryMint, outflowReserve, outflowAmount, referrerKey);
2415
+ return new KaminoAction(kaminoMarket, signer, kaminoObligation || obligation, primaryMint, distinctReserveCount, inflowAmount, depositReserves, borrowReserves, inflowReserve, currentSlot, unstakingPool, secondaryMint, outflowReserve, outflowAmount, referrerKey);
2062
2416
  }
2063
2417
  static async initializeWithdrawReferrerFees(mint, owner, kaminoMarket, currentSlot = 0n) {
2064
2418
  const reserve = kaminoMarket.getReserveByMint(mint);
@@ -2072,7 +2426,7 @@ class KaminoAction {
2072
2426
  },
2073
2427
  ]);
2074
2428
  return {
2075
- axn: new KaminoAction(kaminoMarket, owner, new ObligationType_1.VanillaObligation(kaminoMarket.programId), mint, 0, new bn_js_1.default(0), [], [], reserve, currentSlot, undefined, undefined, undefined, undefined, undefined),
2429
+ axn: new KaminoAction(kaminoMarket, owner, new ObligationType_1.VanillaObligation(kaminoMarket.programId), mint, 0, new bn_js_1.default(0), [], [], reserve, currentSlot, undefined, undefined, undefined, undefined, undefined, undefined),
2076
2430
  createAtaIxs: [createAtaIx],
2077
2431
  };
2078
2432
  }