@kamino-finance/klend-sdk 7.1.3 → 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 (230) 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/unstake_lst_collateral.d.ts +12 -0
  164. package/dist/lending_operations/unstake_lst_collateral.d.ts.map +1 -0
  165. package/dist/lending_operations/unstake_lst_collateral.js +104 -0
  166. package/dist/lending_operations/unstake_lst_collateral.js.map +1 -0
  167. package/dist/manager/client_kamino_manager.js +11 -8
  168. package/dist/manager/client_kamino_manager.js.map +1 -1
  169. package/dist/utils/managerTypes.d.ts.map +1 -1
  170. package/dist/utils/managerTypes.js +9 -4
  171. package/dist/utils/managerTypes.js.map +1 -1
  172. package/dist/utils/seeds.d.ts +10 -14
  173. package/dist/utils/seeds.d.ts.map +1 -1
  174. package/dist/utils/seeds.js +25 -22
  175. package/dist/utils/seeds.js.map +1 -1
  176. package/package.json +1 -1
  177. package/src/@codegen/klend/accounts/LendingMarket.ts +210 -5
  178. package/src/@codegen/klend/accounts/Obligation.ts +53 -31
  179. package/src/@codegen/klend/accounts/PoolState.ts +192 -0
  180. package/src/@codegen/klend/accounts/Reserve.ts +13 -2
  181. package/src/@codegen/klend/accounts/UnstakeTicket.ts +160 -0
  182. package/src/@codegen/klend/accounts/UserState.ts +0 -75
  183. package/src/@codegen/klend/accounts/WithdrawTicket.ts +256 -0
  184. package/src/@codegen/klend/accounts/index.ts +6 -0
  185. package/src/@codegen/klend/errors/custom.ts +427 -2
  186. package/src/@codegen/klend/instructions/enqueueToWithdraw.ts +89 -0
  187. package/src/@codegen/klend/instructions/fillBorrowOrder.ts +96 -0
  188. package/src/@codegen/klend/instructions/idlMissingTypes.ts +7 -4
  189. package/src/@codegen/klend/instructions/index.ts +34 -0
  190. package/src/@codegen/klend/instructions/initReserve.ts +2 -6
  191. package/src/@codegen/klend/instructions/liquidateObligationAndRedeemReserveCollateral.ts +1 -1
  192. package/src/@codegen/klend/instructions/recoverInvalidTicketCollateral.ts +96 -0
  193. package/src/@codegen/klend/instructions/setBorrowOrder.ts +77 -0
  194. package/src/@codegen/klend/instructions/unstakeLstCollateralEnd.ts +251 -0
  195. package/src/@codegen/klend/instructions/unstakeLstCollateralStart.ts +353 -0
  196. package/src/@codegen/klend/instructions/updateGlobalConfig.ts +2 -1
  197. package/src/@codegen/klend/instructions/updateReserveConfig.ts +2 -1
  198. package/src/@codegen/klend/instructions/withdrawObligationCollateral.ts +1 -1
  199. package/src/@codegen/klend/instructions/withdrawObligationCollateralV2.ts +1 -1
  200. package/src/@codegen/klend/instructions/withdrawObligationUsol.ts +168 -0
  201. package/src/@codegen/klend/instructions/withdrawQueuedLiquidity.ts +92 -0
  202. package/src/@codegen/klend/types/BorrowOrder.ts +267 -0
  203. package/src/@codegen/klend/types/BorrowOrderConfigArgs.ts +87 -0
  204. package/src/@codegen/klend/types/ObligationLiquidity.ts +39 -9
  205. package/src/@codegen/klend/types/ObligationOrder.ts +4 -4
  206. package/src/@codegen/klend/types/ReserveConfig.ts +171 -39
  207. package/src/@codegen/klend/types/ReserveFees.ts +12 -12
  208. package/src/@codegen/klend/types/ReserveLiquidity.ts +30 -12
  209. package/src/@codegen/klend/types/UpdateConfigMode.ts +206 -26
  210. package/src/@codegen/klend/types/UpdateLendingMarketMode.ts +300 -0
  211. package/src/@codegen/klend/types/WithdrawQueue.ts +117 -0
  212. package/src/@codegen/klend/types/index.ts +45 -16
  213. package/src/@codegen/klend/zero_padding/ObligationZP.ts +22 -13
  214. package/src/classes/action.ts +577 -8
  215. package/src/classes/manager.ts +11 -0
  216. package/src/classes/market.ts +36 -5
  217. package/src/classes/obligation.ts +1 -1
  218. package/src/classes/reserve.ts +13 -8
  219. package/src/classes/unstakingPool.ts +83 -6
  220. package/src/idl/klend.json +2126 -233
  221. package/src/lending_operations/index.ts +1 -0
  222. package/src/lending_operations/unstake_lst_collateral.ts +174 -0
  223. package/src/manager/client_kamino_manager.ts +11 -8
  224. package/src/utils/managerTypes.ts +9 -4
  225. package/src/utils/seeds.ts +28 -26
  226. package/dist/@codegen/klend/types/AssetTier.d.ts +0 -45
  227. package/dist/@codegen/klend/types/AssetTier.d.ts.map +0 -1
  228. package/dist/@codegen/klend/types/AssetTier.js +0 -132
  229. package/dist/@codegen/klend/types/AssetTier.js.map +0 -1
  230. package/src/@codegen/klend/types/AssetTier.ts +0 -119
@@ -0,0 +1,353 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([189, 208, 126, 37, 135, 76, 144, 253])
19
+
20
+ export interface UnstakeLstCollateralStartArgs {
21
+ lstToConvert: BN
22
+ }
23
+
24
+ export interface UnstakeLstCollateralStartAccounts {
25
+ depositStakedSolAccounts: {
26
+ owner: TransactionSigner
27
+ unstakeTicket: Address
28
+ unstakingPoolAuthority: Address
29
+ ownerStakedSolToken: Address
30
+ ownerUnstakingSolToken: Address
31
+ stakedSolMint: Address
32
+ poolState: Address
33
+ unstakingSolMint: Address
34
+ basePoolAuthority: Address
35
+ unstakingTicketBurnAuthority: Address
36
+ systemProgram: Address
37
+ unstakingSolTokenProgram: Address
38
+ stakedSolTokenProgram: Address
39
+ }
40
+ unstakingPoolProgram: Address
41
+ depositAndWithdrawAccounts: {
42
+ depositAccounts: {
43
+ owner: TransactionSigner
44
+ obligation: Address
45
+ lendingMarket: Address
46
+ lendingMarketAuthority: Address
47
+ reserve: Address
48
+ reserveLiquidityMint: Address
49
+ reserveLiquiditySupply: Address
50
+ reserveCollateralMint: Address
51
+ reserveDestinationDepositCollateral: Address
52
+ userSourceLiquidity: Address
53
+ placeholderUserDestinationCollateral: Option<Address>
54
+ collateralTokenProgram: Address
55
+ liquidityTokenProgram: Address
56
+ instructionSysvarAccount: Address
57
+ }
58
+ withdrawAccounts: {
59
+ owner: TransactionSigner
60
+ obligation: Address
61
+ lendingMarket: Address
62
+ lendingMarketAuthority: Address
63
+ withdrawReserve: Address
64
+ reserveLiquidityMint: Address
65
+ reserveSourceCollateral: Address
66
+ reserveCollateralMint: Address
67
+ reserveLiquiditySupply: Address
68
+ userDestinationLiquidity: Address
69
+ placeholderUserDestinationCollateral: Option<Address>
70
+ collateralTokenProgram: Address
71
+ liquidityTokenProgram: Address
72
+ instructionSysvarAccount: Address
73
+ }
74
+ depositFarmsAccounts: {
75
+ obligationFarmUserState: Option<Address>
76
+ reserveFarmState: Option<Address>
77
+ }
78
+ withdrawFarmsAccounts: {
79
+ obligationFarmUserState: Option<Address>
80
+ reserveFarmState: Option<Address>
81
+ }
82
+ farmsProgram: Address
83
+ }
84
+ }
85
+
86
+ export const layout = borsh.struct<UnstakeLstCollateralStartArgs>([
87
+ borsh.u64("lstToConvert"),
88
+ ])
89
+
90
+ export function unstakeLstCollateralStart(
91
+ args: UnstakeLstCollateralStartArgs,
92
+ accounts: UnstakeLstCollateralStartAccounts,
93
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
94
+ programAddress: Address = PROGRAM_ID
95
+ ) {
96
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
97
+ {
98
+ address: accounts.depositStakedSolAccounts.owner.address,
99
+ role: 3,
100
+ signer: accounts.depositStakedSolAccounts.owner,
101
+ },
102
+ { address: accounts.depositStakedSolAccounts.unstakeTicket, role: 1 },
103
+ {
104
+ address: accounts.depositStakedSolAccounts.unstakingPoolAuthority,
105
+ role: 0,
106
+ },
107
+ { address: accounts.depositStakedSolAccounts.ownerStakedSolToken, role: 1 },
108
+ {
109
+ address: accounts.depositStakedSolAccounts.ownerUnstakingSolToken,
110
+ role: 1,
111
+ },
112
+ { address: accounts.depositStakedSolAccounts.stakedSolMint, role: 1 },
113
+ { address: accounts.depositStakedSolAccounts.poolState, role: 1 },
114
+ { address: accounts.depositStakedSolAccounts.unstakingSolMint, role: 1 },
115
+ { address: accounts.depositStakedSolAccounts.basePoolAuthority, role: 1 },
116
+ {
117
+ address: accounts.depositStakedSolAccounts.unstakingTicketBurnAuthority,
118
+ role: 0,
119
+ },
120
+ { address: accounts.depositStakedSolAccounts.systemProgram, role: 0 },
121
+ {
122
+ address: accounts.depositStakedSolAccounts.unstakingSolTokenProgram,
123
+ role: 0,
124
+ },
125
+ {
126
+ address: accounts.depositStakedSolAccounts.stakedSolTokenProgram,
127
+ role: 0,
128
+ },
129
+ { address: accounts.unstakingPoolProgram, role: 0 },
130
+ {
131
+ address:
132
+ accounts.depositAndWithdrawAccounts.depositAccounts.owner.address,
133
+ role: 3,
134
+ signer: accounts.depositAndWithdrawAccounts.depositAccounts.owner,
135
+ },
136
+ {
137
+ address: accounts.depositAndWithdrawAccounts.depositAccounts.obligation,
138
+ role: 1,
139
+ },
140
+ {
141
+ address:
142
+ accounts.depositAndWithdrawAccounts.depositAccounts.lendingMarket,
143
+ role: 0,
144
+ },
145
+ {
146
+ address:
147
+ accounts.depositAndWithdrawAccounts.depositAccounts
148
+ .lendingMarketAuthority,
149
+ role: 0,
150
+ },
151
+ {
152
+ address: accounts.depositAndWithdrawAccounts.depositAccounts.reserve,
153
+ role: 1,
154
+ },
155
+ {
156
+ address:
157
+ accounts.depositAndWithdrawAccounts.depositAccounts
158
+ .reserveLiquidityMint,
159
+ role: 0,
160
+ },
161
+ {
162
+ address:
163
+ accounts.depositAndWithdrawAccounts.depositAccounts
164
+ .reserveLiquiditySupply,
165
+ role: 1,
166
+ },
167
+ {
168
+ address:
169
+ accounts.depositAndWithdrawAccounts.depositAccounts
170
+ .reserveCollateralMint,
171
+ role: 1,
172
+ },
173
+ {
174
+ address:
175
+ accounts.depositAndWithdrawAccounts.depositAccounts
176
+ .reserveDestinationDepositCollateral,
177
+ role: 1,
178
+ },
179
+ {
180
+ address:
181
+ accounts.depositAndWithdrawAccounts.depositAccounts.userSourceLiquidity,
182
+ role: 1,
183
+ },
184
+ isSome(
185
+ accounts.depositAndWithdrawAccounts.depositAccounts
186
+ .placeholderUserDestinationCollateral
187
+ )
188
+ ? {
189
+ address:
190
+ accounts.depositAndWithdrawAccounts.depositAccounts
191
+ .placeholderUserDestinationCollateral.value,
192
+ role: 0,
193
+ }
194
+ : { address: programAddress, role: 0 },
195
+ {
196
+ address:
197
+ accounts.depositAndWithdrawAccounts.depositAccounts
198
+ .collateralTokenProgram,
199
+ role: 0,
200
+ },
201
+ {
202
+ address:
203
+ accounts.depositAndWithdrawAccounts.depositAccounts
204
+ .liquidityTokenProgram,
205
+ role: 0,
206
+ },
207
+ {
208
+ address:
209
+ accounts.depositAndWithdrawAccounts.depositAccounts
210
+ .instructionSysvarAccount,
211
+ role: 0,
212
+ },
213
+ {
214
+ address:
215
+ accounts.depositAndWithdrawAccounts.withdrawAccounts.owner.address,
216
+ role: 3,
217
+ signer: accounts.depositAndWithdrawAccounts.withdrawAccounts.owner,
218
+ },
219
+ {
220
+ address: accounts.depositAndWithdrawAccounts.withdrawAccounts.obligation,
221
+ role: 1,
222
+ },
223
+ {
224
+ address:
225
+ accounts.depositAndWithdrawAccounts.withdrawAccounts.lendingMarket,
226
+ role: 0,
227
+ },
228
+ {
229
+ address:
230
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
231
+ .lendingMarketAuthority,
232
+ role: 0,
233
+ },
234
+ {
235
+ address:
236
+ accounts.depositAndWithdrawAccounts.withdrawAccounts.withdrawReserve,
237
+ role: 1,
238
+ },
239
+ {
240
+ address:
241
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
242
+ .reserveLiquidityMint,
243
+ role: 0,
244
+ },
245
+ {
246
+ address:
247
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
248
+ .reserveSourceCollateral,
249
+ role: 1,
250
+ },
251
+ {
252
+ address:
253
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
254
+ .reserveCollateralMint,
255
+ role: 1,
256
+ },
257
+ {
258
+ address:
259
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
260
+ .reserveLiquiditySupply,
261
+ role: 1,
262
+ },
263
+ {
264
+ address:
265
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
266
+ .userDestinationLiquidity,
267
+ role: 1,
268
+ },
269
+ isSome(
270
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
271
+ .placeholderUserDestinationCollateral
272
+ )
273
+ ? {
274
+ address:
275
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
276
+ .placeholderUserDestinationCollateral.value,
277
+ role: 0,
278
+ }
279
+ : { address: programAddress, role: 0 },
280
+ {
281
+ address:
282
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
283
+ .collateralTokenProgram,
284
+ role: 0,
285
+ },
286
+ {
287
+ address:
288
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
289
+ .liquidityTokenProgram,
290
+ role: 0,
291
+ },
292
+ {
293
+ address:
294
+ accounts.depositAndWithdrawAccounts.withdrawAccounts
295
+ .instructionSysvarAccount,
296
+ role: 0,
297
+ },
298
+ isSome(
299
+ accounts.depositAndWithdrawAccounts.depositFarmsAccounts
300
+ .obligationFarmUserState
301
+ )
302
+ ? {
303
+ address:
304
+ accounts.depositAndWithdrawAccounts.depositFarmsAccounts
305
+ .obligationFarmUserState.value,
306
+ role: 1,
307
+ }
308
+ : { address: programAddress, role: 0 },
309
+ isSome(
310
+ accounts.depositAndWithdrawAccounts.depositFarmsAccounts.reserveFarmState
311
+ )
312
+ ? {
313
+ address:
314
+ accounts.depositAndWithdrawAccounts.depositFarmsAccounts
315
+ .reserveFarmState.value,
316
+ role: 1,
317
+ }
318
+ : { address: programAddress, role: 0 },
319
+ isSome(
320
+ accounts.depositAndWithdrawAccounts.withdrawFarmsAccounts
321
+ .obligationFarmUserState
322
+ )
323
+ ? {
324
+ address:
325
+ accounts.depositAndWithdrawAccounts.withdrawFarmsAccounts
326
+ .obligationFarmUserState.value,
327
+ role: 1,
328
+ }
329
+ : { address: programAddress, role: 0 },
330
+ isSome(
331
+ accounts.depositAndWithdrawAccounts.withdrawFarmsAccounts.reserveFarmState
332
+ )
333
+ ? {
334
+ address:
335
+ accounts.depositAndWithdrawAccounts.withdrawFarmsAccounts
336
+ .reserveFarmState.value,
337
+ role: 1,
338
+ }
339
+ : { address: programAddress, role: 0 },
340
+ { address: accounts.depositAndWithdrawAccounts.farmsProgram, role: 0 },
341
+ ...remainingAccounts,
342
+ ]
343
+ const buffer = Buffer.alloc(1000)
344
+ const len = layout.encode(
345
+ {
346
+ lstToConvert: args.lstToConvert,
347
+ },
348
+ buffer
349
+ )
350
+ const data = Buffer.concat([DISCRIMINATOR, buffer]).slice(0, 8 + len)
351
+ const ix: Instruction = { accounts: keys, programAddress, data }
352
+ return ix
353
+ }
@@ -27,7 +27,7 @@ export interface UpdateGlobalConfigAccounts {
27
27
  globalConfig: Address
28
28
  }
29
29
 
30
- export const layout = borsh.struct([
30
+ export const layout = borsh.struct<UpdateGlobalConfigArgs>([
31
31
  types.UpdateGlobalConfigMode.layout("mode"),
32
32
  borsh.vecU8("value"),
33
33
  ])
@@ -50,6 +50,7 @@ export function updateGlobalConfig(
50
50
  const buffer = Buffer.alloc(1000)
51
51
  const len = layout.encode(
52
52
  {
53
+ // @ts-ignore
53
54
  mode: args.mode.toEncodable(),
54
55
  value: Buffer.from(
55
56
  args.value.buffer,
@@ -30,7 +30,7 @@ export interface UpdateReserveConfigAccounts {
30
30
  reserve: Address
31
31
  }
32
32
 
33
- export const layout = borsh.struct([
33
+ export const layout = borsh.struct<UpdateReserveConfigArgs>([
34
34
  types.UpdateConfigMode.layout("mode"),
35
35
  borsh.vecU8("value"),
36
36
  borsh.bool("skipConfigIntegrityValidation"),
@@ -52,6 +52,7 @@ export function updateReserveConfig(
52
52
  const buffer = Buffer.alloc(1000)
53
53
  const len = layout.encode(
54
54
  {
55
+ // @ts-ignore
55
56
  mode: args.mode.toEncodable(),
56
57
  value: Buffer.from(
57
58
  args.value.buffer,
@@ -44,7 +44,7 @@ export function withdrawObligationCollateral(
44
44
  programAddress: Address = PROGRAM_ID
45
45
  ) {
46
46
  const keys: Array<AccountMeta | AccountSignerMeta> = [
47
- { address: accounts.owner.address, role: 2, signer: accounts.owner },
47
+ { address: accounts.owner.address, role: 3, signer: accounts.owner },
48
48
  { address: accounts.obligation, role: 1 },
49
49
  { address: accounts.lendingMarket, role: 0 },
50
50
  { address: accounts.lendingMarketAuthority, role: 0 },
@@ -55,7 +55,7 @@ export function withdrawObligationCollateralV2(
55
55
  const keys: Array<AccountMeta | AccountSignerMeta> = [
56
56
  {
57
57
  address: accounts.withdrawAccounts.owner.address,
58
- role: 2,
58
+ role: 3,
59
59
  signer: accounts.withdrawAccounts.owner,
60
60
  },
61
61
  { address: accounts.withdrawAccounts.obligation, role: 1 },
@@ -0,0 +1,168 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([94, 105, 108, 179, 208, 96, 22, 79])
19
+
20
+ export interface WithdrawObligationUsolArgs {
21
+ collateralAmount: BN
22
+ }
23
+
24
+ export interface WithdrawObligationUsolAccounts {
25
+ withdrawAccounts: {
26
+ withdrawAccounts: {
27
+ owner: TransactionSigner
28
+ obligation: Address
29
+ lendingMarket: Address
30
+ lendingMarketAuthority: Address
31
+ withdrawReserve: Address
32
+ reserveLiquidityMint: Address
33
+ reserveSourceCollateral: Address
34
+ reserveCollateralMint: Address
35
+ reserveLiquiditySupply: Address
36
+ userDestinationLiquidity: Address
37
+ placeholderUserDestinationCollateral: Option<Address>
38
+ collateralTokenProgram: Address
39
+ liquidityTokenProgram: Address
40
+ instructionSysvarAccount: Address
41
+ }
42
+ farmsAccounts: {
43
+ obligationFarmUserState: Option<Address>
44
+ reserveFarmState: Option<Address>
45
+ }
46
+ farmsProgram: Address
47
+ }
48
+ extraAccounts: {
49
+ unstakeTicket: Address
50
+ emptyUnstakeTicket: Address
51
+ unstakingPoolAuthority: Address
52
+ unstakingPoolProgram: Address
53
+ systemProgram: Address
54
+ }
55
+ }
56
+
57
+ export const layout = borsh.struct<WithdrawObligationUsolArgs>([
58
+ borsh.u64("collateralAmount"),
59
+ ])
60
+
61
+ export function withdrawObligationUsol(
62
+ args: WithdrawObligationUsolArgs,
63
+ accounts: WithdrawObligationUsolAccounts,
64
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
65
+ programAddress: Address = PROGRAM_ID
66
+ ) {
67
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
68
+ {
69
+ address: accounts.withdrawAccounts.withdrawAccounts.owner.address,
70
+ role: 3,
71
+ signer: accounts.withdrawAccounts.withdrawAccounts.owner,
72
+ },
73
+ { address: accounts.withdrawAccounts.withdrawAccounts.obligation, role: 1 },
74
+ {
75
+ address: accounts.withdrawAccounts.withdrawAccounts.lendingMarket,
76
+ role: 0,
77
+ },
78
+ {
79
+ address:
80
+ accounts.withdrawAccounts.withdrawAccounts.lendingMarketAuthority,
81
+ role: 0,
82
+ },
83
+ {
84
+ address: accounts.withdrawAccounts.withdrawAccounts.withdrawReserve,
85
+ role: 1,
86
+ },
87
+ {
88
+ address: accounts.withdrawAccounts.withdrawAccounts.reserveLiquidityMint,
89
+ role: 0,
90
+ },
91
+ {
92
+ address:
93
+ accounts.withdrawAccounts.withdrawAccounts.reserveSourceCollateral,
94
+ role: 1,
95
+ },
96
+ {
97
+ address: accounts.withdrawAccounts.withdrawAccounts.reserveCollateralMint,
98
+ role: 1,
99
+ },
100
+ {
101
+ address:
102
+ accounts.withdrawAccounts.withdrawAccounts.reserveLiquiditySupply,
103
+ role: 1,
104
+ },
105
+ {
106
+ address:
107
+ accounts.withdrawAccounts.withdrawAccounts.userDestinationLiquidity,
108
+ role: 1,
109
+ },
110
+ isSome(
111
+ accounts.withdrawAccounts.withdrawAccounts
112
+ .placeholderUserDestinationCollateral
113
+ )
114
+ ? {
115
+ address:
116
+ accounts.withdrawAccounts.withdrawAccounts
117
+ .placeholderUserDestinationCollateral.value,
118
+ role: 0,
119
+ }
120
+ : { address: programAddress, role: 0 },
121
+ {
122
+ address:
123
+ accounts.withdrawAccounts.withdrawAccounts.collateralTokenProgram,
124
+ role: 0,
125
+ },
126
+ {
127
+ address: accounts.withdrawAccounts.withdrawAccounts.liquidityTokenProgram,
128
+ role: 0,
129
+ },
130
+ {
131
+ address:
132
+ accounts.withdrawAccounts.withdrawAccounts.instructionSysvarAccount,
133
+ role: 0,
134
+ },
135
+ isSome(accounts.withdrawAccounts.farmsAccounts.obligationFarmUserState)
136
+ ? {
137
+ address:
138
+ accounts.withdrawAccounts.farmsAccounts.obligationFarmUserState
139
+ .value,
140
+ role: 1,
141
+ }
142
+ : { address: programAddress, role: 0 },
143
+ isSome(accounts.withdrawAccounts.farmsAccounts.reserveFarmState)
144
+ ? {
145
+ address:
146
+ accounts.withdrawAccounts.farmsAccounts.reserveFarmState.value,
147
+ role: 1,
148
+ }
149
+ : { address: programAddress, role: 0 },
150
+ { address: accounts.withdrawAccounts.farmsProgram, role: 0 },
151
+ { address: accounts.extraAccounts.unstakeTicket, role: 1 },
152
+ { address: accounts.extraAccounts.emptyUnstakeTicket, role: 1 },
153
+ { address: accounts.extraAccounts.unstakingPoolAuthority, role: 1 },
154
+ { address: accounts.extraAccounts.unstakingPoolProgram, role: 0 },
155
+ { address: accounts.extraAccounts.systemProgram, role: 0 },
156
+ ...remainingAccounts,
157
+ ]
158
+ const buffer = Buffer.alloc(1000)
159
+ const len = layout.encode(
160
+ {
161
+ collateralAmount: args.collateralAmount,
162
+ },
163
+ buffer
164
+ )
165
+ const data = Buffer.concat([DISCRIMINATOR, buffer]).slice(0, 8 + len)
166
+ const ix: Instruction = { accounts: keys, programAddress, data }
167
+ return ix
168
+ }
@@ -0,0 +1,92 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import {
3
+ Address,
4
+ isSome,
5
+ AccountMeta,
6
+ AccountSignerMeta,
7
+ Instruction,
8
+ Option,
9
+ TransactionSigner,
10
+ } from "@solana/kit"
11
+ /* eslint-enable @typescript-eslint/no-unused-vars */
12
+ import BN from "bn.js" // eslint-disable-line @typescript-eslint/no-unused-vars
13
+ import * as borsh from "@coral-xyz/borsh" // eslint-disable-line @typescript-eslint/no-unused-vars
14
+ import { borshAddress } from "../utils" // eslint-disable-line @typescript-eslint/no-unused-vars
15
+ import * as types from "../types" // eslint-disable-line @typescript-eslint/no-unused-vars
16
+ import { PROGRAM_ID } from "../programId"
17
+
18
+ export const DISCRIMINATOR = Buffer.from([66, 149, 187, 201, 74, 191, 174, 120])
19
+
20
+ export interface WithdrawQueuedLiquidityAccounts {
21
+ /** The executor of the permissionless tx (not necessarily the ticket owner). */
22
+ payer: TransactionSigner
23
+ /** The lending market. */
24
+ lendingMarket: Address
25
+ /**
26
+ * The market's authority, needed for burning the collateral (from
27
+ * [Self::owner_queued_collateral_vault]) and transferring the liquidity (from
28
+ * [Self::reserve_liquidity_supply]).
29
+ */
30
+ lendingMarketAuthority: Address
31
+ /** The reserve. */
32
+ reserve: Address
33
+ /** The liquidity mint, needed to invoke the transfer. */
34
+ reserveLiquidityMint: Address
35
+ /** The collateral mint, needed to burn (`mut`!) the queued collateral. */
36
+ reserveCollateralMint: Address
37
+ /** The liquidity supply vault (to withdraw the liquidity from). */
38
+ reserveLiquiditySupply: Address
39
+ /**
40
+ * The per-owner "this reserve's queued collateral" vault (from which the collateral will be
41
+ * burnt).
42
+ */
43
+ ownerQueuedCollateralVault: Address
44
+ /**
45
+ * The token account to which the liquidity should be transferred (the one recorded in the
46
+ * ticket).
47
+ */
48
+ userDestinationLiquidity: Address
49
+ /** The program of [Self::reserve_collateral_mint], needed for transfer. */
50
+ collateralTokenProgram: Address
51
+ /** The program of [Self::reserve_liquidity_mint], needed for transfer. */
52
+ liquidityTokenProgram: Address
53
+ /**
54
+ * The ticket's data itself.
55
+ *
56
+ * Note: in case of complete withdrawal, this account will be closed. In case of partial
57
+ * withdrawal, its [WithdrawTicket::queued_collateral_amount] will simply be reduced, and the
58
+ * ticket will maintain its position in the queue.
59
+ */
60
+ withdrawTicket: Address
61
+ /**
62
+ * The owner of the [Self::withdraw_ticket]; needed only to return the rent of the
63
+ * [WithdrawTicket] account (if it is getting fully-consumed and closed here).
64
+ */
65
+ withdrawTicketOwner: Address
66
+ }
67
+
68
+ export function withdrawQueuedLiquidity(
69
+ accounts: WithdrawQueuedLiquidityAccounts,
70
+ remainingAccounts: Array<AccountMeta | AccountSignerMeta> = [],
71
+ programAddress: Address = PROGRAM_ID
72
+ ) {
73
+ const keys: Array<AccountMeta | AccountSignerMeta> = [
74
+ { address: accounts.payer.address, role: 3, signer: accounts.payer },
75
+ { address: accounts.lendingMarket, role: 0 },
76
+ { address: accounts.lendingMarketAuthority, role: 0 },
77
+ { address: accounts.reserve, role: 1 },
78
+ { address: accounts.reserveLiquidityMint, role: 0 },
79
+ { address: accounts.reserveCollateralMint, role: 1 },
80
+ { address: accounts.reserveLiquiditySupply, role: 1 },
81
+ { address: accounts.ownerQueuedCollateralVault, role: 1 },
82
+ { address: accounts.userDestinationLiquidity, role: 1 },
83
+ { address: accounts.collateralTokenProgram, role: 0 },
84
+ { address: accounts.liquidityTokenProgram, role: 0 },
85
+ { address: accounts.withdrawTicket, role: 1 },
86
+ { address: accounts.withdrawTicketOwner, role: 1 },
87
+ ...remainingAccounts,
88
+ ]
89
+ const data = DISCRIMINATOR
90
+ const ix: Instruction = { accounts: keys, programAddress, data }
91
+ return ix
92
+ }