@exponent-labs/exponent-sdk 0.9.2 → 0.9.3

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 (1119) hide show
  1. package/build/addressLookupTableUtil.d.ts +13 -13
  2. package/build/addressLookupTableUtil.js +5 -5
  3. package/build/addressLookupTableUtil.js.map +1 -1
  4. package/build/client/clmm/accounts/lpPosition.js +5 -6
  5. package/build/client/clmm/accounts/lpPosition.js.map +1 -1
  6. package/build/client/clmm/accounts/marketThree.js +5 -6
  7. package/build/client/clmm/accounts/marketThree.js.map +1 -1
  8. package/build/client/clmm/accounts/vault.js +5 -6
  9. package/build/client/clmm/accounts/vault.js.map +1 -1
  10. package/build/client/clmm/index.d.ts +1 -2
  11. package/build/client/clmm/instructions/addFarm.js +1 -2
  12. package/build/client/clmm/instructions/addFarm.js.map +1 -1
  13. package/build/client/clmm/instructions/addLiquidity.js +1 -2
  14. package/build/client/clmm/instructions/addLiquidity.js.map +1 -1
  15. package/build/client/clmm/instructions/addMarketEmission.js +1 -2
  16. package/build/client/clmm/instructions/addMarketEmission.js.map +1 -1
  17. package/build/client/clmm/instructions/buyPt.js +1 -2
  18. package/build/client/clmm/instructions/buyPt.js.map +1 -1
  19. package/build/client/clmm/instructions/buyYt.js +1 -2
  20. package/build/client/clmm/instructions/buyYt.js.map +1 -1
  21. package/build/client/clmm/instructions/claimFarmEmission.js +1 -2
  22. package/build/client/clmm/instructions/claimFarmEmission.js.map +1 -1
  23. package/build/client/clmm/instructions/closeMarket.js +1 -2
  24. package/build/client/clmm/instructions/closeMarket.js.map +1 -1
  25. package/build/client/clmm/instructions/depositLiquidity.js +1 -2
  26. package/build/client/clmm/instructions/depositLiquidity.js.map +1 -1
  27. package/build/client/clmm/instructions/initializeMarket.js +1 -2
  28. package/build/client/clmm/instructions/initializeMarket.js.map +1 -1
  29. package/build/client/clmm/instructions/marketAccrueEmission.js +1 -2
  30. package/build/client/clmm/instructions/marketAccrueEmission.js.map +1 -1
  31. package/build/client/clmm/instructions/marketCollectEmission.js +1 -2
  32. package/build/client/clmm/instructions/marketCollectEmission.js.map +1 -1
  33. package/build/client/clmm/instructions/modifyFarm.js +1 -2
  34. package/build/client/clmm/instructions/modifyFarm.js.map +1 -1
  35. package/build/client/clmm/instructions/modifyMarketSetting.js +1 -2
  36. package/build/client/clmm/instructions/modifyMarketSetting.js.map +1 -1
  37. package/build/client/clmm/instructions/sellPt.js +1 -2
  38. package/build/client/clmm/instructions/sellPt.js.map +1 -1
  39. package/build/client/clmm/instructions/sellYt.js +1 -2
  40. package/build/client/clmm/instructions/sellYt.js.map +1 -1
  41. package/build/client/clmm/instructions/tradePt.js +1 -2
  42. package/build/client/clmm/instructions/tradePt.js.map +1 -1
  43. package/build/client/clmm/instructions/tradePtExactOut.js +1 -2
  44. package/build/client/clmm/instructions/tradePtExactOut.js.map +1 -1
  45. package/build/client/clmm/instructions/withdrawLiquidity.js +1 -2
  46. package/build/client/clmm/instructions/withdrawLiquidity.js.map +1 -1
  47. package/build/client/clmm/instructions/wrapperBuyYt.js +1 -2
  48. package/build/client/clmm/instructions/wrapperBuyYt.js.map +1 -1
  49. package/build/client/clmm/instructions/wrapperProvideLiquidity.js +1 -2
  50. package/build/client/clmm/instructions/wrapperProvideLiquidity.js.map +1 -1
  51. package/build/client/clmm/instructions/wrapperProvideLiquidityBase.js +1 -2
  52. package/build/client/clmm/instructions/wrapperProvideLiquidityBase.js.map +1 -1
  53. package/build/client/clmm/instructions/wrapperProvideLiquidityClassic.js +1 -2
  54. package/build/client/clmm/instructions/wrapperProvideLiquidityClassic.js.map +1 -1
  55. package/build/client/clmm/instructions/wrapperSellYt.js +1 -2
  56. package/build/client/clmm/instructions/wrapperSellYt.js.map +1 -1
  57. package/build/client/clmm/instructions/wrapperWithdrawLiquidity.js +1 -2
  58. package/build/client/clmm/instructions/wrapperWithdrawLiquidity.js.map +1 -1
  59. package/build/client/clmm/instructions/wrapperWithdrawLiquidityClassic.js +1 -2
  60. package/build/client/clmm/instructions/wrapperWithdrawLiquidityClassic.js.map +1 -1
  61. package/build/client/clmm/types/addFarmEvent.d.ts +1 -25
  62. package/build/client/clmm/types/amount.d.ts +1 -19
  63. package/build/client/clmm/types/amount.js +3 -3
  64. package/build/client/clmm/types/amount.js.map +1 -1
  65. package/build/client/clmm/types/buyPtEvent.d.ts +1 -16
  66. package/build/client/clmm/types/buyYtEvent.d.ts +1 -40
  67. package/build/client/clmm/types/claimFarmEmissionsEvent.d.ts +1 -149
  68. package/build/client/clmm/types/claimLimits.d.ts +1 -16
  69. package/build/client/clmm/types/closeMarketEvent.d.ts +1 -16
  70. package/build/client/clmm/types/configurationOptions.d.ts +1 -25
  71. package/build/client/clmm/types/cpiAccounts.d.ts +1 -99
  72. package/build/client/clmm/types/cpiCoreAccounts.d.ts +1 -42
  73. package/build/client/clmm/types/cpiInterfaceContext.d.ts +1 -13
  74. package/build/client/clmm/types/crossingSplit.d.ts +1 -109
  75. package/build/client/clmm/types/depositLiquidityEvent.d.ts +1 -149
  76. package/build/client/clmm/types/depositLiquidityReturnData.d.ts +1 -49
  77. package/build/client/clmm/types/emissionInfo.d.ts +1 -25
  78. package/build/client/clmm/types/farmEmission.d.ts +1 -16
  79. package/build/client/clmm/types/liquidityNetBalanceLimits.d.ts +1 -19
  80. package/build/client/clmm/types/lpFarm.d.ts +1 -30
  81. package/build/client/clmm/types/marketAccrueEmissionEvent.d.ts +1 -134
  82. package/build/client/clmm/types/marketAdminAction.d.ts +1 -306
  83. package/build/client/clmm/types/marketAdminAction.js +3 -3
  84. package/build/client/clmm/types/marketAdminAction.js.map +1 -1
  85. package/build/client/clmm/types/marketCollectEmissionEvent.d.ts +1 -143
  86. package/build/client/clmm/types/marketEmission.d.ts +1 -13
  87. package/build/client/clmm/types/marketEmissions.d.ts +1 -23
  88. package/build/client/clmm/types/marketFinancials.d.ts +1 -19
  89. package/build/client/clmm/types/marketThreeInitEvent.d.ts +1 -52
  90. package/build/client/clmm/types/mergeEvent.d.ts +1 -61
  91. package/build/client/clmm/types/modifiedTick.d.ts +1 -13
  92. package/build/client/clmm/types/modifiedTicks.d.ts +1 -35
  93. package/build/client/clmm/types/modifyFarmEvent.d.ts +1 -31
  94. package/build/client/clmm/types/number.d.ts +1 -1
  95. package/build/client/clmm/types/personalYieldTracker.d.ts +1 -10
  96. package/build/client/clmm/types/personalYieldTrackers.d.ts +1 -19
  97. package/build/client/clmm/types/principalShare.d.ts +1 -42
  98. package/build/client/clmm/types/principalShareTrackers.d.ts +1 -59
  99. package/build/client/clmm/types/sellPtEvent.d.ts +1 -16
  100. package/build/client/clmm/types/sellYtEvent.d.ts +1 -34
  101. package/build/client/clmm/types/stripEvent.d.ts +1 -61
  102. package/build/client/clmm/types/swapDirection.d.ts +1 -1
  103. package/build/client/clmm/types/tradePtEvent.d.ts +1 -90
  104. package/build/client/clmm/types/withdrawLiquidityEvent.d.ts +1 -158
  105. package/build/client/clmm/types/withdrawLiquidityReturnData.d.ts +1 -34
  106. package/build/client/clmm/types/wrapperBuyYtEvent.d.ts +1 -16
  107. package/build/client/clmm/types/wrapperProvideLiquidityBaseEvent.d.ts +1 -40
  108. package/build/client/clmm/types/wrapperProvideLiquidityClassicEvent.d.ts +1 -37
  109. package/build/client/clmm/types/wrapperProvideLiquidityEvent.d.ts +1 -40
  110. package/build/client/clmm/types/wrapperSellYtEvent.d.ts +1 -16
  111. package/build/client/clmm/types/wrapperWithdrawLiquidityClassicEvent.d.ts +1 -43
  112. package/build/client/clmm/types/wrapperWithdrawLiquidityEvent.d.ts +1 -43
  113. package/build/client/core/accounts/admin.js +5 -6
  114. package/build/client/core/accounts/admin.js.map +1 -1
  115. package/build/client/core/accounts/lpPosition.js +5 -6
  116. package/build/client/core/accounts/lpPosition.js.map +1 -1
  117. package/build/client/core/accounts/marketTwo.js +5 -6
  118. package/build/client/core/accounts/marketTwo.js.map +1 -1
  119. package/build/client/core/accounts/vault.js +5 -6
  120. package/build/client/core/accounts/vault.js.map +1 -1
  121. package/build/client/core/accounts/yieldTokenPosition.js +5 -6
  122. package/build/client/core/accounts/yieldTokenPosition.js.map +1 -1
  123. package/build/client/core/index.d.ts +1 -2
  124. package/build/client/core/instructions/addEmission.js +1 -2
  125. package/build/client/core/instructions/addEmission.js.map +1 -1
  126. package/build/client/core/instructions/addFarm.js +1 -2
  127. package/build/client/core/instructions/addFarm.js.map +1 -1
  128. package/build/client/core/instructions/addLpTokensMetadata.js +1 -2
  129. package/build/client/core/instructions/addLpTokensMetadata.js.map +1 -1
  130. package/build/client/core/instructions/addMarketEmission.js +1 -2
  131. package/build/client/core/instructions/addMarketEmission.js.map +1 -1
  132. package/build/client/core/instructions/buyYt.js +1 -2
  133. package/build/client/core/instructions/buyYt.js.map +1 -1
  134. package/build/client/core/instructions/claimFarmEmissions.js +1 -2
  135. package/build/client/core/instructions/claimFarmEmissions.js.map +1 -1
  136. package/build/client/core/instructions/collectEmission.js +1 -2
  137. package/build/client/core/instructions/collectEmission.js.map +1 -1
  138. package/build/client/core/instructions/collectInterest.js +1 -2
  139. package/build/client/core/instructions/collectInterest.js.map +1 -1
  140. package/build/client/core/instructions/collectTreasuryEmission.js +1 -2
  141. package/build/client/core/instructions/collectTreasuryEmission.js.map +1 -1
  142. package/build/client/core/instructions/collectTreasuryInterest.js +1 -2
  143. package/build/client/core/instructions/collectTreasuryInterest.js.map +1 -1
  144. package/build/client/core/instructions/depositYt.js +1 -2
  145. package/build/client/core/instructions/depositYt.js.map +1 -1
  146. package/build/client/core/instructions/initLpPosition.js +1 -2
  147. package/build/client/core/instructions/initLpPosition.js.map +1 -1
  148. package/build/client/core/instructions/initMarketTwo.js +1 -2
  149. package/build/client/core/instructions/initMarketTwo.js.map +1 -1
  150. package/build/client/core/instructions/initializeVault.js +1 -2
  151. package/build/client/core/instructions/initializeVault.js.map +1 -1
  152. package/build/client/core/instructions/initializeYieldPosition.js +1 -2
  153. package/build/client/core/instructions/initializeYieldPosition.js.map +1 -1
  154. package/build/client/core/instructions/marketCollectEmission.js +1 -2
  155. package/build/client/core/instructions/marketCollectEmission.js.map +1 -1
  156. package/build/client/core/instructions/marketDepositLp.js +1 -2
  157. package/build/client/core/instructions/marketDepositLp.js.map +1 -1
  158. package/build/client/core/instructions/marketTwoDepositLiquidity.js +1 -2
  159. package/build/client/core/instructions/marketTwoDepositLiquidity.js.map +1 -1
  160. package/build/client/core/instructions/marketTwoWithdrawLiquidity.js +1 -2
  161. package/build/client/core/instructions/marketTwoWithdrawLiquidity.js.map +1 -1
  162. package/build/client/core/instructions/marketWithdrawLp.js +1 -2
  163. package/build/client/core/instructions/marketWithdrawLp.js.map +1 -1
  164. package/build/client/core/instructions/merge.js +1 -2
  165. package/build/client/core/instructions/merge.js.map +1 -1
  166. package/build/client/core/instructions/modifyFarm.js +1 -2
  167. package/build/client/core/instructions/modifyFarm.js.map +1 -1
  168. package/build/client/core/instructions/modifyMarketSetting.js +1 -2
  169. package/build/client/core/instructions/modifyMarketSetting.js.map +1 -1
  170. package/build/client/core/instructions/modifyVaultSetting.js +1 -2
  171. package/build/client/core/instructions/modifyVaultSetting.js.map +1 -1
  172. package/build/client/core/instructions/reallocMarket.js +1 -2
  173. package/build/client/core/instructions/reallocMarket.js.map +1 -1
  174. package/build/client/core/instructions/sellYt.js +1 -2
  175. package/build/client/core/instructions/sellYt.js.map +1 -1
  176. package/build/client/core/instructions/stageYtYield.js +1 -2
  177. package/build/client/core/instructions/stageYtYield.js.map +1 -1
  178. package/build/client/core/instructions/strip.js +1 -2
  179. package/build/client/core/instructions/strip.js.map +1 -1
  180. package/build/client/core/instructions/tradePt.js +1 -2
  181. package/build/client/core/instructions/tradePt.js.map +1 -1
  182. package/build/client/core/instructions/withdrawYt.js +1 -2
  183. package/build/client/core/instructions/withdrawYt.js.map +1 -1
  184. package/build/client/core/instructions/wrapperBuyPt.js +1 -2
  185. package/build/client/core/instructions/wrapperBuyPt.js.map +1 -1
  186. package/build/client/core/instructions/wrapperBuyYt.js +1 -2
  187. package/build/client/core/instructions/wrapperBuyYt.js.map +1 -1
  188. package/build/client/core/instructions/wrapperCollectInterest.js +1 -2
  189. package/build/client/core/instructions/wrapperCollectInterest.js.map +1 -1
  190. package/build/client/core/instructions/wrapperMerge.js +1 -2
  191. package/build/client/core/instructions/wrapperMerge.js.map +1 -1
  192. package/build/client/core/instructions/wrapperProvideLiquidity.js +1 -2
  193. package/build/client/core/instructions/wrapperProvideLiquidity.js.map +1 -1
  194. package/build/client/core/instructions/wrapperProvideLiquidityBase.js +1 -2
  195. package/build/client/core/instructions/wrapperProvideLiquidityBase.js.map +1 -1
  196. package/build/client/core/instructions/wrapperProvideLiquidityClassic.js +1 -2
  197. package/build/client/core/instructions/wrapperProvideLiquidityClassic.js.map +1 -1
  198. package/build/client/core/instructions/wrapperSellPt.js +1 -2
  199. package/build/client/core/instructions/wrapperSellPt.js.map +1 -1
  200. package/build/client/core/instructions/wrapperSellYt.js +1 -2
  201. package/build/client/core/instructions/wrapperSellYt.js.map +1 -1
  202. package/build/client/core/instructions/wrapperStrip.js +1 -2
  203. package/build/client/core/instructions/wrapperStrip.js.map +1 -1
  204. package/build/client/core/instructions/wrapperWithdrawLiquidity.js +1 -2
  205. package/build/client/core/instructions/wrapperWithdrawLiquidity.js.map +1 -1
  206. package/build/client/core/instructions/wrapperWithdrawLiquidityClassic.js +1 -2
  207. package/build/client/core/instructions/wrapperWithdrawLiquidityClassic.js.map +1 -1
  208. package/build/client/core/types/adminAction.d.ts +1 -269
  209. package/build/client/core/types/adminAction.js +3 -3
  210. package/build/client/core/types/adminAction.js.map +1 -1
  211. package/build/client/core/types/amount.d.ts +1 -19
  212. package/build/client/core/types/amount.js +3 -3
  213. package/build/client/core/types/amount.js.map +1 -1
  214. package/build/client/core/types/buyPtEvent.d.ts +1 -19
  215. package/build/client/core/types/buyYtEvent.d.ts +1 -49
  216. package/build/client/core/types/claimFarmEmissionsEvent.d.ts +1 -31
  217. package/build/client/core/types/claimFarmEmissionsEventV2.d.ts +1 -83
  218. package/build/client/core/types/claimLimits.d.ts +1 -16
  219. package/build/client/core/types/collectEmissionEvent.d.ts +1 -25
  220. package/build/client/core/types/collectEmissionEventV2.d.ts +1 -55
  221. package/build/client/core/types/collectInterestEvent.d.ts +1 -22
  222. package/build/client/core/types/collectInterestEventV2.d.ts +1 -52
  223. package/build/client/core/types/collectTreasuryEmissionKind.d.ts +1 -1
  224. package/build/client/core/types/collectTreasuryInterestKind.d.ts +1 -1
  225. package/build/client/core/types/cpiAccounts.d.ts +1 -99
  226. package/build/client/core/types/cpiInterfaceContext.d.ts +1 -13
  227. package/build/client/core/types/depositLiquidityEvent.d.ts +1 -49
  228. package/build/client/core/types/depositLpEvent.d.ts +1 -31
  229. package/build/client/core/types/depositLpEventV2.d.ts +1 -83
  230. package/build/client/core/types/depositYtEvent.d.ts +1 -40
  231. package/build/client/core/types/depositYtEventV2.d.ts +1 -70
  232. package/build/client/core/types/emissionInfo.d.ts +1 -25
  233. package/build/client/core/types/farmEmission.d.ts +1 -16
  234. package/build/client/core/types/initLpPositionEvent.d.ts +1 -25
  235. package/build/client/core/types/initializeYieldPositionEvent.d.ts +1 -16
  236. package/build/client/core/types/liquidityNetBalanceLimits.d.ts +1 -19
  237. package/build/client/core/types/lpFarm.d.ts +1 -30
  238. package/build/client/core/types/marketAdminAction.d.ts +1 -239
  239. package/build/client/core/types/marketAdminAction.js +3 -3
  240. package/build/client/core/types/marketAdminAction.js.map +1 -1
  241. package/build/client/core/types/marketCollectEmissionEvent.d.ts +1 -28
  242. package/build/client/core/types/marketCollectEmissionEventV2.d.ts +1 -80
  243. package/build/client/core/types/marketEmission.d.ts +1 -13
  244. package/build/client/core/types/marketEmissions.d.ts +1 -23
  245. package/build/client/core/types/marketFinancials.d.ts +1 -22
  246. package/build/client/core/types/mergeEvent.d.ts +1 -61
  247. package/build/client/core/types/number.d.ts +1 -1
  248. package/build/client/core/types/personalYieldTracker.d.ts +1 -10
  249. package/build/client/core/types/personalYieldTrackers.d.ts +1 -19
  250. package/build/client/core/types/principleDetails.d.ts +1 -7
  251. package/build/client/core/types/principles.d.ts +1 -70
  252. package/build/client/core/types/sellPtEvent.d.ts +1 -19
  253. package/build/client/core/types/sellYtEvent.d.ts +1 -43
  254. package/build/client/core/types/stageYieldEvent.d.ts +1 -31
  255. package/build/client/core/types/stageYieldEventV2.d.ts +1 -58
  256. package/build/client/core/types/stripEvent.d.ts +1 -61
  257. package/build/client/core/types/tradePtEvent.d.ts +1 -37
  258. package/build/client/core/types/withdrawLiquidityEvent.d.ts +1 -43
  259. package/build/client/core/types/withdrawLpEvent.d.ts +1 -31
  260. package/build/client/core/types/withdrawLpEventV2.d.ts +1 -83
  261. package/build/client/core/types/withdrawYtEvent.d.ts +1 -40
  262. package/build/client/core/types/withdrawYtEventV2.d.ts +1 -70
  263. package/build/client/core/types/wrapperBuyYtEvent.d.ts +1 -19
  264. package/build/client/core/types/wrapperCollectInterestEvent.d.ts +1 -16
  265. package/build/client/core/types/wrapperMergeEvent.d.ts +1 -19
  266. package/build/client/core/types/wrapperProvideLiquidityBaseEvent.d.ts +1 -25
  267. package/build/client/core/types/wrapperProvideLiquidityClassicEvent.d.ts +1 -22
  268. package/build/client/core/types/wrapperProvideLiquidityEvent.d.ts +1 -22
  269. package/build/client/core/types/wrapperSellYtEvent.d.ts +1 -19
  270. package/build/client/core/types/wrapperStripEvent.d.ts +1 -19
  271. package/build/client/core/types/wrapperWithdrawLiquidityClassicEvent.d.ts +1 -22
  272. package/build/client/core/types/wrapperWithdrawLiquidityEvent.d.ts +1 -19
  273. package/build/client/core/types/yieldTokenTracker.d.ts +1 -10
  274. package/build/client/orderbook/accounts/cpiAccountsOrderbook.js +5 -6
  275. package/build/client/orderbook/accounts/cpiAccountsOrderbook.js.map +1 -1
  276. package/build/client/orderbook/accounts/vault.js +5 -6
  277. package/build/client/orderbook/accounts/vault.js.map +1 -1
  278. package/build/client/orderbook/index.d.ts +1 -2
  279. package/build/client/orderbook/instructions/collectAdminEmission.js +1 -2
  280. package/build/client/orderbook/instructions/collectAdminEmission.js.map +1 -1
  281. package/build/client/orderbook/instructions/collectAdminFee.js +1 -2
  282. package/build/client/orderbook/instructions/collectAdminFee.js.map +1 -1
  283. package/build/client/orderbook/instructions/collectInterest.js +1 -2
  284. package/build/client/orderbook/instructions/collectInterest.js.map +1 -1
  285. package/build/client/orderbook/instructions/initializeOrderbook.js +1 -2
  286. package/build/client/orderbook/instructions/initializeOrderbook.js.map +1 -1
  287. package/build/client/orderbook/instructions/marketOffer.js +1 -2
  288. package/build/client/orderbook/instructions/marketOffer.js.map +1 -1
  289. package/build/client/orderbook/instructions/postOffer.js +1 -2
  290. package/build/client/orderbook/instructions/postOffer.js.map +1 -1
  291. package/build/client/orderbook/instructions/reallocOrderbookAccount.js +1 -2
  292. package/build/client/orderbook/instructions/reallocOrderbookAccount.js.map +1 -1
  293. package/build/client/orderbook/instructions/removeExpiredOffers.js +1 -2
  294. package/build/client/orderbook/instructions/removeExpiredOffers.js.map +1 -1
  295. package/build/client/orderbook/instructions/removeOffer.js +1 -2
  296. package/build/client/orderbook/instructions/removeOffer.js.map +1 -1
  297. package/build/client/orderbook/instructions/setConfigurationOptions.js +1 -2
  298. package/build/client/orderbook/instructions/setConfigurationOptions.js.map +1 -1
  299. package/build/client/orderbook/instructions/withdrawFunds.js +1 -2
  300. package/build/client/orderbook/instructions/withdrawFunds.js.map +1 -1
  301. package/build/client/orderbook/instructions/wrapperCollectAdminFee.js +1 -2
  302. package/build/client/orderbook/instructions/wrapperCollectAdminFee.js.map +1 -1
  303. package/build/client/orderbook/instructions/wrapperCollectInterest.js +1 -2
  304. package/build/client/orderbook/instructions/wrapperCollectInterest.js.map +1 -1
  305. package/build/client/orderbook/instructions/wrapperMarketOffer.js +1 -2
  306. package/build/client/orderbook/instructions/wrapperMarketOffer.js.map +1 -1
  307. package/build/client/orderbook/instructions/wrapperPostOffer.js +1 -2
  308. package/build/client/orderbook/instructions/wrapperPostOffer.js.map +1 -1
  309. package/build/client/orderbook/instructions/wrapperRemoveOffer.js +1 -2
  310. package/build/client/orderbook/instructions/wrapperRemoveOffer.js.map +1 -1
  311. package/build/client/orderbook/instructions/wrapperWithdrawFunds.js +1 -2
  312. package/build/client/orderbook/instructions/wrapperWithdrawFunds.js.map +1 -1
  313. package/build/client/orderbook/types/amount.d.ts +1 -19
  314. package/build/client/orderbook/types/amount.js +3 -3
  315. package/build/client/orderbook/types/amount.js.map +1 -1
  316. package/build/client/orderbook/types/claimLimits.d.ts +1 -16
  317. package/build/client/orderbook/types/collectAdminEmissionEvent.d.ts +1 -19
  318. package/build/client/orderbook/types/collectAdminFeeEvent.d.ts +1 -19
  319. package/build/client/orderbook/types/collectEmissionEventV2.d.ts +1 -55
  320. package/build/client/orderbook/types/collectInterestEventV2.d.ts +1 -52
  321. package/build/client/orderbook/types/collectUserInterestEvent.d.ts +1 -16
  322. package/build/client/orderbook/types/cpiAccounts.d.ts +1 -99
  323. package/build/client/orderbook/types/cpiInterfaceContext.d.ts +1 -13
  324. package/build/client/orderbook/types/emissionInfo.d.ts +1 -25
  325. package/build/client/orderbook/types/exponentCoreCpiAccounts.d.ts +1 -99
  326. package/build/client/orderbook/types/filledOffersEvent.d.ts +1 -22
  327. package/build/client/orderbook/types/marketOfferEvent.d.ts +1 -74
  328. package/build/client/orderbook/types/mergeEvent.d.ts +1 -61
  329. package/build/client/orderbook/types/number.d.ts +1 -1
  330. package/build/client/orderbook/types/offerOptions.d.ts +1 -13
  331. package/build/client/orderbook/types/offerOptions.js +3 -3
  332. package/build/client/orderbook/types/offerOptions.js.map +1 -1
  333. package/build/client/orderbook/types/offerType.d.ts +1 -1
  334. package/build/client/orderbook/types/orderbookInitEvent.d.ts +1 -28
  335. package/build/client/orderbook/types/postOfferEvent.d.ts +1 -96
  336. package/build/client/orderbook/types/removeOfferEvent.d.ts +1 -28
  337. package/build/client/orderbook/types/setConfigurationOptionsEnum.d.ts +1 -49
  338. package/build/client/orderbook/types/setConfigurationOptionsEnum.js +3 -3
  339. package/build/client/orderbook/types/setConfigurationOptionsEnum.js.map +1 -1
  340. package/build/client/orderbook/types/stripEvent.d.ts +1 -61
  341. package/build/client/orderbook/types/withdrawFundsEvent.d.ts +1 -28
  342. package/build/client/orderbook/types/wrapperCollectAdminFeeEvent.d.ts +1 -13
  343. package/build/client/orderbook/types/wrapperCollectInterestEvent.d.ts +1 -10
  344. package/build/client/orderbook/types/wrapperMarketOfferEvent.d.ts +1 -13
  345. package/build/client/orderbook/types/wrapperPostOfferEvent.d.ts +1 -28
  346. package/build/client/orderbook/types/wrapperRemoveOfferEvent.d.ts +1 -10
  347. package/build/client/orderbook/types/wrapperWithdrawFundsEvent.d.ts +1 -19
  348. package/build/client/orderbook/types/yieldTokenTracker.d.ts +1 -10
  349. package/build/client/vaults/accounts/actionProposal.js +5 -6
  350. package/build/client/vaults/accounts/actionProposal.js.map +1 -1
  351. package/build/client/vaults/accounts/exponentStrategyVault.js +5 -6
  352. package/build/client/vaults/accounts/exponentStrategyVault.js.map +1 -1
  353. package/build/client/vaults/accounts/programConfig.js +5 -6
  354. package/build/client/vaults/accounts/programConfig.js.map +1 -1
  355. package/build/client/vaults/accounts/voteAccount.js +5 -6
  356. package/build/client/vaults/accounts/voteAccount.js.map +1 -1
  357. package/build/client/vaults/accounts/withdrawalAccount.js +5 -6
  358. package/build/client/vaults/accounts/withdrawalAccount.js.map +1 -1
  359. package/build/client/vaults/eventRegistry.d.ts +8 -2
  360. package/build/client/vaults/eventRegistry.js +6 -0
  361. package/build/client/vaults/eventRegistry.js.map +1 -1
  362. package/build/client/vaults/index.d.ts +4 -2
  363. package/build/client/vaults/index.js +3 -0
  364. package/build/client/vaults/index.js.map +1 -1
  365. package/build/client/vaults/instructions/activateProposal.d.ts +2 -0
  366. package/build/client/vaults/instructions/activateProposal.js +3 -2
  367. package/build/client/vaults/instructions/activateProposal.js.map +1 -1
  368. package/build/client/vaults/instructions/addPolicy.js +1 -2
  369. package/build/client/vaults/instructions/addPolicy.js.map +1 -1
  370. package/build/client/vaults/instructions/appendProposalActions.js +1 -2
  371. package/build/client/vaults/instructions/appendProposalActions.js.map +1 -1
  372. package/build/client/vaults/instructions/cancelProposal.d.ts +2 -0
  373. package/build/client/vaults/instructions/cancelProposal.js +3 -2
  374. package/build/client/vaults/instructions/cancelProposal.js.map +1 -1
  375. package/build/client/vaults/instructions/cancelWithdrawal.d.ts +2 -0
  376. package/build/client/vaults/instructions/cancelWithdrawal.js +3 -2
  377. package/build/client/vaults/instructions/cancelWithdrawal.js.map +1 -1
  378. package/build/client/vaults/instructions/collectManagementFee.js +1 -2
  379. package/build/client/vaults/instructions/collectManagementFee.js.map +1 -1
  380. package/build/client/vaults/instructions/depositLiquidity.js +1 -2
  381. package/build/client/vaults/instructions/depositLiquidity.js.map +1 -1
  382. package/build/client/vaults/instructions/executeProposal.d.ts +2 -0
  383. package/build/client/vaults/instructions/executeProposal.js +3 -2
  384. package/build/client/vaults/instructions/executeProposal.js.map +1 -1
  385. package/build/client/vaults/instructions/executeWithdrawal.js +1 -2
  386. package/build/client/vaults/instructions/executeWithdrawal.js.map +1 -1
  387. package/build/client/vaults/instructions/executeWithdrawalFromReserves.d.ts +2 -0
  388. package/build/client/vaults/instructions/executeWithdrawalFromReserves.js +3 -2
  389. package/build/client/vaults/instructions/executeWithdrawalFromReserves.js.map +1 -1
  390. package/build/client/vaults/instructions/fillWithdrawal.js +1 -2
  391. package/build/client/vaults/instructions/fillWithdrawal.js.map +1 -1
  392. package/build/client/vaults/instructions/finalizeProposal.d.ts +2 -0
  393. package/build/client/vaults/instructions/finalizeProposal.js +3 -2
  394. package/build/client/vaults/instructions/finalizeProposal.js.map +1 -1
  395. package/build/client/vaults/instructions/initProposal.js +1 -2
  396. package/build/client/vaults/instructions/initProposal.js.map +1 -1
  397. package/build/client/vaults/instructions/initializePrices.js +1 -2
  398. package/build/client/vaults/instructions/initializePrices.js.map +1 -1
  399. package/build/client/vaults/instructions/initializeVault.js +1 -2
  400. package/build/client/vaults/instructions/initializeVault.js.map +1 -1
  401. package/build/client/vaults/instructions/makeSentienelManager.js +1 -2
  402. package/build/client/vaults/instructions/makeSentienelManager.js.map +1 -1
  403. package/build/client/vaults/instructions/managePrices.js +1 -2
  404. package/build/client/vaults/instructions/managePrices.js.map +1 -1
  405. package/build/client/vaults/instructions/manageVaultSettings.js +1 -2
  406. package/build/client/vaults/instructions/manageVaultSettings.js.map +1 -1
  407. package/build/client/vaults/instructions/managerUpdatePosition.js +1 -2
  408. package/build/client/vaults/instructions/managerUpdatePosition.js.map +1 -1
  409. package/build/client/vaults/instructions/queueWithdrawal.d.ts +2 -0
  410. package/build/client/vaults/instructions/queueWithdrawal.js +3 -2
  411. package/build/client/vaults/instructions/queueWithdrawal.js.map +1 -1
  412. package/build/client/vaults/instructions/removePolicy.js +1 -2
  413. package/build/client/vaults/instructions/removePolicy.js.map +1 -1
  414. package/build/client/vaults/instructions/sentinelSetVaultFlags.d.ts +2 -0
  415. package/build/client/vaults/instructions/sentinelSetVaultFlags.js +3 -2
  416. package/build/client/vaults/instructions/sentinelSetVaultFlags.js.map +1 -1
  417. package/build/client/vaults/instructions/stakeVote.d.ts +2 -0
  418. package/build/client/vaults/instructions/stakeVote.js +3 -2
  419. package/build/client/vaults/instructions/stakeVote.js.map +1 -1
  420. package/build/client/vaults/instructions/unstakeVote.js +1 -2
  421. package/build/client/vaults/instructions/unstakeVote.js.map +1 -1
  422. package/build/client/vaults/instructions/updatePolicy.js +1 -2
  423. package/build/client/vaults/instructions/updatePolicy.js.map +1 -1
  424. package/build/client/vaults/instructions/updatePolicyManager.js +1 -2
  425. package/build/client/vaults/instructions/updatePolicyManager.js.map +1 -1
  426. package/build/client/vaults/instructions/updatePrice.js +1 -2
  427. package/build/client/vaults/instructions/updatePrice.js.map +1 -1
  428. package/build/client/vaults/instructions/validateInteractionHook.js +1 -2
  429. package/build/client/vaults/instructions/validateInteractionHook.js.map +1 -1
  430. package/build/client/vaults/instructions/wrapperAddPolicy.js +1 -2
  431. package/build/client/vaults/instructions/wrapperAddPolicy.js.map +1 -1
  432. package/build/client/vaults/instructions/wrapperExecuteWithdrawal.js +1 -2
  433. package/build/client/vaults/instructions/wrapperExecuteWithdrawal.js.map +1 -1
  434. package/build/client/vaults/instructions/wrapperManageVaultSettings.js +1 -2
  435. package/build/client/vaults/instructions/wrapperManageVaultSettings.js.map +1 -1
  436. package/build/client/vaults/instructions/wrapperManagerUpdatePosition.js +1 -2
  437. package/build/client/vaults/instructions/wrapperManagerUpdatePosition.js.map +1 -1
  438. package/build/client/vaults/instructions/wrapperRemovePolicy.js +1 -2
  439. package/build/client/vaults/instructions/wrapperRemovePolicy.js.map +1 -1
  440. package/build/client/vaults/instructions/wrapperUpdatePolicy.js +1 -2
  441. package/build/client/vaults/instructions/wrapperUpdatePolicy.js.map +1 -1
  442. package/build/client/vaults/types/accountConstraint.d.ts +1 -13
  443. package/build/client/vaults/types/accountConstraintType.d.ts +1 -1
  444. package/build/client/vaults/types/accountConstraintType.js +3 -3
  445. package/build/client/vaults/types/accountConstraintType.js.map +1 -1
  446. package/build/client/vaults/types/allowedSettingsChange.d.ts +1 -54
  447. package/build/client/vaults/types/allowedSettingsChange.js +3 -3
  448. package/build/client/vaults/types/allowedSettingsChange.js.map +1 -1
  449. package/build/client/vaults/types/cancelProposalEvent.d.ts +1 -19
  450. package/build/client/vaults/types/cancelWithdrawalEvent.d.ts +12 -0
  451. package/build/client/vaults/types/cancelWithdrawalEvent.js +29 -0
  452. package/build/client/vaults/types/cancelWithdrawalEvent.js.map +1 -0
  453. package/build/client/vaults/types/clmmPositionEntry.d.ts +1 -80
  454. package/build/client/vaults/types/dataConstraint.d.ts +1 -109
  455. package/build/client/vaults/types/dataOperator.d.ts +1 -1
  456. package/build/client/vaults/types/dataValue.d.ts +1 -73
  457. package/build/client/vaults/types/dataValue.js +3 -3
  458. package/build/client/vaults/types/dataValue.js.map +1 -1
  459. package/build/client/vaults/types/depositLiquidityEvent.d.ts +1 -40
  460. package/build/client/vaults/types/executeProposalEvent.d.ts +1 -19
  461. package/build/client/vaults/types/executeWithdrawalEvent.d.ts +8 -10
  462. package/build/client/vaults/types/executeWithdrawalEvent.js +19 -0
  463. package/build/client/vaults/types/executeWithdrawalEvent.js.map +1 -1
  464. package/build/client/vaults/types/executeWithdrawalFromReservesEvent.d.ts +19 -0
  465. package/build/client/vaults/types/executeWithdrawalFromReservesEvent.js +48 -0
  466. package/build/client/vaults/types/executeWithdrawalFromReservesEvent.js.map +1 -0
  467. package/build/client/vaults/types/fillParam.d.ts +1 -10
  468. package/build/client/vaults/types/finalizeProposalEvent.d.ts +1 -34
  469. package/build/client/vaults/types/hook.d.ts +1 -35
  470. package/build/client/vaults/types/hookCompiledInstruction.d.ts +1 -13
  471. package/build/client/vaults/types/index.d.ts +3 -0
  472. package/build/client/vaults/types/index.js +3 -0
  473. package/build/client/vaults/types/index.js.map +1 -1
  474. package/build/client/vaults/types/instructionConstraint.d.ts +1 -165
  475. package/build/client/vaults/types/internalFundTransferPolicyCreationPayload.d.ts +1 -13
  476. package/build/client/vaults/types/kaminoFarmEntry.d.ts +1 -10
  477. package/build/client/vaults/types/kaminoObligationEntry.d.ts +1 -122
  478. package/build/client/vaults/types/limitedQuantityConstraints.d.ts +1 -7
  479. package/build/client/vaults/types/limitedSpendingLimit.d.ts +1 -97
  480. package/build/client/vaults/types/limitedTimeConstraints.d.ts +1 -61
  481. package/build/client/vaults/types/loopscaleLoanEntry.d.ts +1 -7
  482. package/build/client/vaults/types/loopscaleStrategyEntry.d.ts +1 -7
  483. package/build/client/vaults/types/number.d.ts +1 -1
  484. package/build/client/vaults/types/obligationType.d.ts +1 -1
  485. package/build/client/vaults/types/obligationType.js +3 -3
  486. package/build/client/vaults/types/obligationType.js.map +1 -1
  487. package/build/client/vaults/types/orderbookEntry.d.ts +1 -54
  488. package/build/client/vaults/types/periodV2.d.ts +1 -37
  489. package/build/client/vaults/types/periodV2.js +3 -3
  490. package/build/client/vaults/types/periodV2.js.map +1 -1
  491. package/build/client/vaults/types/permissions.d.ts +1 -7
  492. package/build/client/vaults/types/policyAction.d.ts +1 -40
  493. package/build/client/vaults/types/policyAction.js +3 -3
  494. package/build/client/vaults/types/policyAction.js.map +1 -1
  495. package/build/client/vaults/types/policyCreationPayload.d.ts +1 -260
  496. package/build/client/vaults/types/policyCreationPayload.js +3 -3
  497. package/build/client/vaults/types/policyCreationPayload.js.map +1 -1
  498. package/build/client/vaults/types/policyExpirationArgs.d.ts +1 -19
  499. package/build/client/vaults/types/policyExpirationArgs.js +3 -3
  500. package/build/client/vaults/types/policyExpirationArgs.js.map +1 -1
  501. package/build/client/vaults/types/positionUpdate.js +3 -3
  502. package/build/client/vaults/types/positionUpdate.js.map +1 -1
  503. package/build/client/vaults/types/priceId.d.ts +1 -25
  504. package/build/client/vaults/types/priceId.js +3 -3
  505. package/build/client/vaults/types/priceId.js.map +1 -1
  506. package/build/client/vaults/types/priceType.d.ts +1 -1
  507. package/build/client/vaults/types/proposalAction.d.ts +2 -204
  508. package/build/client/vaults/types/proposalAction.js +6 -3
  509. package/build/client/vaults/types/proposalAction.js.map +1 -1
  510. package/build/client/vaults/types/proposalActionKind.d.ts +1 -1
  511. package/build/client/vaults/types/proposalStatus.d.ts +1 -1
  512. package/build/client/vaults/types/proposalVoteConfig.d.ts +1 -34
  513. package/build/client/vaults/types/proposeActionEvent.d.ts +1 -34
  514. package/build/client/vaults/types/quantityConstraints.d.ts +1 -13
  515. package/build/client/vaults/types/queueWithdrawalEvent.d.ts +11 -0
  516. package/build/client/vaults/types/queueWithdrawalEvent.js +31 -0
  517. package/build/client/vaults/types/queueWithdrawalEvent.js.map +1 -0
  518. package/build/client/vaults/types/reserveFarmMapping.d.ts +1 -13
  519. package/build/client/vaults/types/reservePriceMapping.d.ts +1 -42
  520. package/build/client/vaults/types/settingsChangePolicyCreationPayload.d.ts +1 -77
  521. package/build/client/vaults/types/spendingLimitPolicyCreationPayload.d.ts +1 -130
  522. package/build/client/vaults/types/stakeVoteEvent.d.ts +1 -28
  523. package/build/client/vaults/types/strategyPosition.d.ts +1 -1
  524. package/build/client/vaults/types/strategyPosition.js +3 -3
  525. package/build/client/vaults/types/strategyPosition.js.map +1 -1
  526. package/build/client/vaults/types/timeConstraints.d.ts +1 -64
  527. package/build/client/vaults/types/tokenAccountBalance.d.ts +1 -45
  528. package/build/client/vaults/types/tokenAccountEntry.d.ts +1 -66
  529. package/build/client/vaults/types/tokenEntry.d.ts +1 -51
  530. package/build/client/vaults/types/unstakeVoteEvent.d.ts +1 -25
  531. package/build/client/vaults/types/updatePriceAction.d.ts +1 -124
  532. package/build/client/vaults/types/updatePriceAction.js +3 -3
  533. package/build/client/vaults/types/updatePriceAction.js.map +1 -1
  534. package/build/client/vaults/types/updatePriceInput.d.ts +1 -10
  535. package/build/client/vaults/types/usageState.d.ts +1 -10
  536. package/build/client/vaults/types/vaultConfig.d.ts +1 -74
  537. package/build/client/vaults/types/vaultFinancials.d.ts +1 -43
  538. package/build/client/vaults/types/vaultFlagAction.d.ts +1 -37
  539. package/build/client/vaults/types/vaultFlagAction.js +3 -3
  540. package/build/client/vaults/types/vaultFlagAction.js.map +1 -1
  541. package/build/client/vaults/types/vaultFlagsUpdatedEvent.d.ts +1 -16
  542. package/build/client/vaults/types/vaultRoleKind.d.ts +1 -1
  543. package/build/client/vaults/types/vaultRoles.d.ts +1 -16
  544. package/build/client/vaults/types/vaultSettingsAction.js +3 -3
  545. package/build/client/vaults/types/vaultSettingsAction.js.map +1 -1
  546. package/build/client/vaults/types/voteChoice.d.ts +1 -1
  547. package/build/client/vaults/types/withdrawalPeriodSettings.d.ts +1 -31
  548. package/build/client/vaults/types/withdrawalPeriodSettings.js +3 -3
  549. package/build/client/vaults/types/withdrawalPeriodSettings.js.map +1 -1
  550. package/build/client/vaults/types/withdrawalTokenFill.d.ts +1 -13
  551. package/build/client/vaults/types/yieldPositionEntry.d.ts +1 -45
  552. package/build/clmm/codamaEvents.d.ts +1 -2
  553. package/build/codamaEvents.d.ts +1 -2
  554. package/build/exponentVaults/aumCalculator.d.ts +0 -2
  555. package/build/exponentVaults/aumCalculator.js +20 -10
  556. package/build/exponentVaults/aumCalculator.js.map +1 -1
  557. package/build/exponentVaults/events.d.ts +1 -2
  558. package/build/exponentVaults/fetcher.js +4 -4
  559. package/build/exponentVaults/fetcher.js.map +1 -1
  560. package/build/exponentVaults/index.js +17 -7
  561. package/build/exponentVaults/index.js.map +1 -1
  562. package/build/exponentVaults/kamino-farms.d.ts +0 -2
  563. package/build/exponentVaults/kamino-farms.js +14 -14
  564. package/build/exponentVaults/kamino-farms.js.map +1 -1
  565. package/build/exponentVaults/kamino-markets.d.ts +394 -394
  566. package/build/exponentVaults/kamino-markets.js +2 -2
  567. package/build/exponentVaults/kamino-markets.js.map +1 -1
  568. package/build/exponentVaults/loopscale/helpers.js +6 -7
  569. package/build/exponentVaults/loopscale/helpers.js.map +1 -1
  570. package/build/exponentVaults/loopscale/prepared-transactions.js +1 -2
  571. package/build/exponentVaults/loopscale/prepared-transactions.js.map +1 -1
  572. package/build/exponentVaults/policyBuilders.d.ts +73 -75
  573. package/build/exponentVaults/policyBuilders.js +26 -27
  574. package/build/exponentVaults/policyBuilders.js.map +1 -1
  575. package/build/exponentVaults/policyMatcher.js +6 -7
  576. package/build/exponentVaults/policyMatcher.js.map +1 -1
  577. package/build/exponentVaults/pricePathResolver.js +7 -8
  578. package/build/exponentVaults/pricePathResolver.js.map +1 -1
  579. package/build/exponentVaults/scope-refresh.js +1 -2
  580. package/build/exponentVaults/scope-refresh.js.map +1 -1
  581. package/build/exponentVaults/squadsVaultTxnResolver/helpers.js +6 -7
  582. package/build/exponentVaults/squadsVaultTxnResolver/helpers.js.map +1 -1
  583. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/exponent.js +5 -6
  584. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/exponent.js.map +1 -1
  585. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/helpers.js +1 -2
  586. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/helpers.js.map +1 -1
  587. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/kamino.js +1 -2
  588. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/kamino.js.map +1 -1
  589. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/loopscale.js +1 -2
  590. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/loopscale.js.map +1 -1
  591. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/titan.js +1 -2
  592. package/build/exponentVaults/squadsVaultTxnResolver/resolvers/titan.js.map +1 -1
  593. package/build/exponentVaults/squadsVaultTxnResolver/utils.d.ts +1 -3
  594. package/build/exponentVaults/squadsVaultTxnResolver/utils.js +1 -2
  595. package/build/exponentVaults/squadsVaultTxnResolver/utils.js.map +1 -1
  596. package/build/exponentVaults/syncTransaction.d.ts +1 -1
  597. package/build/exponentVaults/syncTransaction.js +4 -4
  598. package/build/exponentVaults/syncTransaction.js.map +1 -1
  599. package/build/exponentVaults/titan-quote.js +1 -2
  600. package/build/exponentVaults/titan-quote.js.map +1 -1
  601. package/build/exponentVaults/vault-interaction.d.ts +3 -2538
  602. package/build/exponentVaults/vault-interaction.js +34 -24
  603. package/build/exponentVaults/vault-interaction.js.map +1 -1
  604. package/build/exponentVaults/vault.d.ts +9 -25
  605. package/build/exponentVaults/vault.js +28 -12
  606. package/build/exponentVaults/vault.js.map +1 -1
  607. package/build/flavors.js +19 -20
  608. package/build/flavors.js.map +1 -1
  609. package/build/index.js +17 -7
  610. package/build/index.js.map +1 -1
  611. package/build/market.d.ts +31 -31
  612. package/build/market.js +17 -7
  613. package/build/market.js.map +1 -1
  614. package/build/marketThree.d.ts +42 -48
  615. package/build/marketThree.js +20 -8
  616. package/build/marketThree.js.map +1 -1
  617. package/build/orderbook/codamaEvents.d.ts +1 -2
  618. package/build/orderbook/index.js +17 -7
  619. package/build/orderbook/index.js.map +1 -1
  620. package/build/orderbook/math.d.ts +4 -4
  621. package/build/orderbook/math.js +13 -13
  622. package/build/orderbook/math.js.map +1 -1
  623. package/build/orderbook/orderbook.d.ts +19 -21
  624. package/build/orderbook/orderbook.js +17 -7
  625. package/build/orderbook/orderbook.js.map +1 -1
  626. package/build/orderbook/types.js +17 -7
  627. package/build/orderbook/types.js.map +1 -1
  628. package/build/orderbook/utils.js +6 -7
  629. package/build/orderbook/utils.js.map +1 -1
  630. package/build/syPosition.js +3 -4
  631. package/build/syPosition.js.map +1 -1
  632. package/build/tokenUtil.js +2 -3
  633. package/build/tokenUtil.js.map +1 -1
  634. package/build/utils/altUtil.js +2 -3
  635. package/build/utils/altUtil.js.map +1 -1
  636. package/build/utils/binSolver.js +1 -2
  637. package/build/utils/binSolver.js.map +1 -1
  638. package/build/utils/index.d.ts +2 -2
  639. package/build/utils/index.js +3 -4
  640. package/build/utils/index.js.map +1 -1
  641. package/build/vault.d.ts +11 -12
  642. package/build/vault.js +20 -10
  643. package/build/vault.js.map +1 -1
  644. package/build/ytPosition.d.ts +7 -7
  645. package/build/ytPosition.js +17 -7
  646. package/build/ytPosition.js.map +1 -1
  647. package/package.json +35 -33
  648. package/build/client/vaults/instructions/proposeAction.d.ts +0 -16
  649. package/build/client/vaults/instructions/proposeAction.js +0 -29
  650. package/build/client/vaults/instructions/proposeAction.js.map +0 -1
  651. package/build/exponentVaults/loopscale/client.test.d.ts +0 -1
  652. package/build/exponentVaults/loopscale/client.test.js +0 -183
  653. package/build/exponentVaults/loopscale/client.test.js.map +0 -1
  654. package/build/exponentVaults/loopscale/prepared-transactions.test.d.ts +0 -1
  655. package/build/exponentVaults/loopscale/prepared-transactions.test.js +0 -400
  656. package/build/exponentVaults/loopscale/prepared-transactions.test.js.map +0 -1
  657. package/build/exponentVaults/loopscale/response-plan.d.ts +0 -69
  658. package/build/exponentVaults/loopscale/response-plan.js +0 -141
  659. package/build/exponentVaults/loopscale/response-plan.js.map +0 -1
  660. package/build/exponentVaults/loopscale/response-plan.test.d.ts +0 -1
  661. package/build/exponentVaults/loopscale/response-plan.test.js +0 -139
  662. package/build/exponentVaults/loopscale/response-plan.test.js.map +0 -1
  663. package/build/exponentVaults/loopscale/send-plan.d.ts +0 -75
  664. package/build/exponentVaults/loopscale/send-plan.js +0 -235
  665. package/build/exponentVaults/loopscale/send-plan.js.map +0 -1
  666. package/build/exponentVaults/loopscale-client.d.ts +0 -130
  667. package/build/exponentVaults/loopscale-client.js +0 -489
  668. package/build/exponentVaults/loopscale-client.js.map +0 -1
  669. package/build/exponentVaults/loopscale-client.test.d.ts +0 -1
  670. package/build/exponentVaults/loopscale-client.test.js +0 -162
  671. package/build/exponentVaults/loopscale-client.test.js.map +0 -1
  672. package/build/exponentVaults/loopscale-client.types.d.ts +0 -425
  673. package/build/exponentVaults/loopscale-client.types.js +0 -3
  674. package/build/exponentVaults/loopscale-client.types.js.map +0 -1
  675. package/build/exponentVaults/loopscale-execution.d.ts +0 -125
  676. package/build/exponentVaults/loopscale-execution.js +0 -341
  677. package/build/exponentVaults/loopscale-execution.js.map +0 -1
  678. package/build/exponentVaults/loopscale-execution.test.d.ts +0 -1
  679. package/build/exponentVaults/loopscale-execution.test.js +0 -139
  680. package/build/exponentVaults/loopscale-execution.test.js.map +0 -1
  681. package/build/exponentVaults/loopscale-vault.d.ts +0 -115
  682. package/build/exponentVaults/loopscale-vault.js +0 -275
  683. package/build/exponentVaults/loopscale-vault.js.map +0 -1
  684. package/build/exponentVaults/loopscale-vault.test.d.ts +0 -1
  685. package/build/exponentVaults/loopscale-vault.test.js +0 -102
  686. package/build/exponentVaults/loopscale-vault.test.js.map +0 -1
  687. package/build/exponentVaults/pricePathResolver.test.d.ts +0 -1
  688. package/build/exponentVaults/pricePathResolver.test.js +0 -369
  689. package/build/exponentVaults/pricePathResolver.test.js.map +0 -1
  690. package/build/exponentVaults/vault-interaction.kamino-vault.test.d.ts +0 -1
  691. package/build/exponentVaults/vault-interaction.kamino-vault.test.js +0 -143
  692. package/build/exponentVaults/vault-interaction.kamino-vault.test.js.map +0 -1
  693. package/build/exponentVaults/vaultTransactionBuilder.test.d.ts +0 -1
  694. package/build/exponentVaults/vaultTransactionBuilder.test.js +0 -297
  695. package/build/exponentVaults/vaultTransactionBuilder.test.js.map +0 -1
  696. package/build/marketThree.test.d.ts +0 -1
  697. package/build/marketThree.test.js +0 -166
  698. package/build/marketThree.test.js.map +0 -1
  699. package/build/utils/binSolver.test.d.ts +0 -1
  700. package/build/utils/binSolver.test.js +0 -16
  701. package/build/utils/binSolver.test.js.map +0 -1
  702. package/jest.config.js +0 -5
  703. package/src/CodamaEventDecoder.ts +0 -151
  704. package/src/addressLookupTableUtil.ts +0 -110
  705. package/src/client/clmm/accounts/lpPosition.ts +0 -143
  706. package/src/client/clmm/accounts/marketThree.ts +0 -274
  707. package/src/client/clmm/accounts/vault.ts +0 -234
  708. package/src/client/clmm/eventRegistry.ts +0 -92
  709. package/src/client/clmm/index.ts +0 -82
  710. package/src/client/clmm/instructions/addFarm.ts +0 -57
  711. package/src/client/clmm/instructions/addLiquidity.ts +0 -78
  712. package/src/client/clmm/instructions/addMarketEmission.ts +0 -50
  713. package/src/client/clmm/instructions/buyPt.ts +0 -73
  714. package/src/client/clmm/instructions/buyYt.ts +0 -80
  715. package/src/client/clmm/instructions/claimFarmEmission.ts +0 -56
  716. package/src/client/clmm/instructions/closeMarket.ts +0 -47
  717. package/src/client/clmm/instructions/depositLiquidity.ts +0 -71
  718. package/src/client/clmm/instructions/initializeMarket.ts +0 -127
  719. package/src/client/clmm/instructions/marketAccrueEmission.ts +0 -39
  720. package/src/client/clmm/instructions/marketCollectEmission.ts +0 -57
  721. package/src/client/clmm/instructions/modifyFarm.ts +0 -55
  722. package/src/client/clmm/instructions/modifyMarketSetting.ts +0 -45
  723. package/src/client/clmm/instructions/sellPt.ts +0 -73
  724. package/src/client/clmm/instructions/sellYt.ts +0 -80
  725. package/src/client/clmm/instructions/tradePt.ts +0 -73
  726. package/src/client/clmm/instructions/tradePtExactOut.ts +0 -75
  727. package/src/client/clmm/instructions/withdrawLiquidity.ts +0 -67
  728. package/src/client/clmm/instructions/wrapperBuyYt.ts +0 -85
  729. package/src/client/clmm/instructions/wrapperProvideLiquidity.ts +0 -100
  730. package/src/client/clmm/instructions/wrapperProvideLiquidityBase.ts +0 -98
  731. package/src/client/clmm/instructions/wrapperProvideLiquidityClassic.ts +0 -86
  732. package/src/client/clmm/instructions/wrapperSellYt.ts +0 -83
  733. package/src/client/clmm/instructions/wrapperWithdrawLiquidity.ts +0 -75
  734. package/src/client/clmm/instructions/wrapperWithdrawLiquidityClassic.ts +0 -69
  735. package/src/client/clmm/types/addFarmEvent.ts +0 -51
  736. package/src/client/clmm/types/amount.ts +0 -51
  737. package/src/client/clmm/types/buyPtEvent.ts +0 -36
  738. package/src/client/clmm/types/buyYtEvent.ts +0 -74
  739. package/src/client/clmm/types/claimFarmEmissionsEvent.ts +0 -94
  740. package/src/client/clmm/types/claimLimits.ts +0 -15
  741. package/src/client/clmm/types/closeMarketEvent.ts +0 -36
  742. package/src/client/clmm/types/configurationOptions.ts +0 -29
  743. package/src/client/clmm/types/cpiAccounts.ts +0 -21
  744. package/src/client/clmm/types/cpiCoreAccounts.ts +0 -15
  745. package/src/client/clmm/types/cpiInterfaceContext.ts +0 -13
  746. package/src/client/clmm/types/crossingSplit.ts +0 -40
  747. package/src/client/clmm/types/depositLiquidityEvent.ts +0 -93
  748. package/src/client/clmm/types/depositLiquidityReturnData.ts +0 -81
  749. package/src/client/clmm/types/emissionInfo.ts +0 -44
  750. package/src/client/clmm/types/farmEmission.ts +0 -31
  751. package/src/client/clmm/types/index.ts +0 -48
  752. package/src/client/clmm/types/liquidityNetBalanceLimits.ts +0 -22
  753. package/src/client/clmm/types/lpFarm.ts +0 -12
  754. package/src/client/clmm/types/marketAccrueEmissionEvent.ts +0 -69
  755. package/src/client/clmm/types/marketAdminAction.ts +0 -239
  756. package/src/client/clmm/types/marketCollectEmissionEvent.ts +0 -83
  757. package/src/client/clmm/types/marketEmission.ts +0 -28
  758. package/src/client/clmm/types/marketEmissions.ts +0 -10
  759. package/src/client/clmm/types/marketFinancials.ts +0 -17
  760. package/src/client/clmm/types/marketThreeInitEvent.ts +0 -92
  761. package/src/client/clmm/types/mergeEvent.ts +0 -118
  762. package/src/client/clmm/types/modifiedTick.ts +0 -13
  763. package/src/client/clmm/types/modifiedTicks.ts +0 -18
  764. package/src/client/clmm/types/modifyFarmEvent.ts +0 -56
  765. package/src/client/clmm/types/number.ts +0 -7
  766. package/src/client/clmm/types/personalYieldTracker.ts +0 -12
  767. package/src/client/clmm/types/personalYieldTrackers.ts +0 -13
  768. package/src/client/clmm/types/principalShare.ts +0 -22
  769. package/src/client/clmm/types/principalShareTrackers.ts +0 -10
  770. package/src/client/clmm/types/sellPtEvent.ts +0 -36
  771. package/src/client/clmm/types/sellYtEvent.ts +0 -69
  772. package/src/client/clmm/types/stripEvent.ts +0 -124
  773. package/src/client/clmm/types/swapDirection.ts +0 -8
  774. package/src/client/clmm/types/tradePtEvent.ts +0 -76
  775. package/src/client/clmm/types/withdrawLiquidityEvent.ts +0 -99
  776. package/src/client/clmm/types/withdrawLiquidityReturnData.ts +0 -27
  777. package/src/client/clmm/types/wrapperBuyYtEvent.ts +0 -36
  778. package/src/client/clmm/types/wrapperProvideLiquidityBaseEvent.ts +0 -60
  779. package/src/client/clmm/types/wrapperProvideLiquidityClassicEvent.ts +0 -58
  780. package/src/client/clmm/types/wrapperProvideLiquidityEvent.ts +0 -60
  781. package/src/client/clmm/types/wrapperSellYtEvent.ts +0 -36
  782. package/src/client/clmm/types/wrapperWithdrawLiquidityClassicEvent.ts +0 -62
  783. package/src/client/clmm/types/wrapperWithdrawLiquidityEvent.ts +0 -62
  784. package/src/client/core/accounts/admin.ts +0 -112
  785. package/src/client/core/accounts/lpPosition.ts +0 -122
  786. package/src/client/core/accounts/marketTwo.ts +0 -234
  787. package/src/client/core/accounts/vault.ts +0 -234
  788. package/src/client/core/accounts/yieldTokenPosition.ts +0 -126
  789. package/src/client/core/eventRegistry.ts +0 -134
  790. package/src/client/core/index.ts +0 -113
  791. package/src/client/core/instructions/addEmission.ts +0 -62
  792. package/src/client/core/instructions/addFarm.ts +0 -53
  793. package/src/client/core/instructions/addLpTokensMetadata.ts +0 -62
  794. package/src/client/core/instructions/addMarketEmission.ts +0 -52
  795. package/src/client/core/instructions/buyYt.ts +0 -79
  796. package/src/client/core/instructions/claimFarmEmissions.ts +0 -54
  797. package/src/client/core/instructions/collectEmission.ts +0 -66
  798. package/src/client/core/instructions/collectInterest.ts +0 -64
  799. package/src/client/core/instructions/collectTreasuryEmission.ts +0 -64
  800. package/src/client/core/instructions/collectTreasuryInterest.ts +0 -62
  801. package/src/client/core/instructions/depositYt.ts +0 -59
  802. package/src/client/core/instructions/initLpPosition.ts +0 -35
  803. package/src/client/core/instructions/initMarketTwo.ts +0 -103
  804. package/src/client/core/instructions/initializeVault.ts +0 -107
  805. package/src/client/core/instructions/initializeYieldPosition.ts +0 -33
  806. package/src/client/core/instructions/marketCollectEmission.ts +0 -55
  807. package/src/client/core/instructions/marketDepositLp.ts +0 -59
  808. package/src/client/core/instructions/marketTwoDepositLiquidity.ts +0 -65
  809. package/src/client/core/instructions/marketTwoWithdrawLiquidity.ts +0 -65
  810. package/src/client/core/instructions/marketWithdrawLp.ts +0 -59
  811. package/src/client/core/instructions/merge.ts +0 -61
  812. package/src/client/core/instructions/modifyFarm.ts +0 -51
  813. package/src/client/core/instructions/modifyMarketSetting.ts +0 -47
  814. package/src/client/core/instructions/modifyVaultSetting.ts +0 -44
  815. package/src/client/core/instructions/reallocMarket.ts +0 -45
  816. package/src/client/core/instructions/sellYt.ts +0 -79
  817. package/src/client/core/instructions/stageYtYield.ts +0 -39
  818. package/src/client/core/instructions/strip.ts +0 -61
  819. package/src/client/core/instructions/tradePt.ts +0 -59
  820. package/src/client/core/instructions/withdrawYt.ts +0 -61
  821. package/src/client/core/instructions/wrapperBuyPt.ts +0 -63
  822. package/src/client/core/instructions/wrapperBuyYt.ts +0 -93
  823. package/src/client/core/instructions/wrapperCollectInterest.ts +0 -63
  824. package/src/client/core/instructions/wrapperMerge.ts +0 -77
  825. package/src/client/core/instructions/wrapperProvideLiquidity.ts +0 -103
  826. package/src/client/core/instructions/wrapperProvideLiquidityBase.ts +0 -81
  827. package/src/client/core/instructions/wrapperProvideLiquidityClassic.ts +0 -77
  828. package/src/client/core/instructions/wrapperSellPt.ts +0 -63
  829. package/src/client/core/instructions/wrapperSellYt.ts +0 -87
  830. package/src/client/core/instructions/wrapperStrip.ts +0 -81
  831. package/src/client/core/instructions/wrapperWithdrawLiquidity.ts +0 -77
  832. package/src/client/core/instructions/wrapperWithdrawLiquidityClassic.ts +0 -73
  833. package/src/client/core/types/adminAction.ts +0 -255
  834. package/src/client/core/types/amount.ts +0 -51
  835. package/src/client/core/types/buyPtEvent.ts +0 -39
  836. package/src/client/core/types/buyYtEvent.ts +0 -95
  837. package/src/client/core/types/claimFarmEmissionsEvent.ts +0 -75
  838. package/src/client/core/types/claimFarmEmissionsEventV2.ts +0 -83
  839. package/src/client/core/types/claimLimits.ts +0 -15
  840. package/src/client/core/types/collectEmissionEvent.ts +0 -51
  841. package/src/client/core/types/collectEmissionEventV2.ts +0 -60
  842. package/src/client/core/types/collectInterestEvent.ts +0 -48
  843. package/src/client/core/types/collectInterestEventV2.ts +0 -57
  844. package/src/client/core/types/collectTreasuryEmissionKind.ts +0 -8
  845. package/src/client/core/types/collectTreasuryInterestKind.ts +0 -8
  846. package/src/client/core/types/cpiAccounts.ts +0 -21
  847. package/src/client/core/types/cpiInterfaceContext.ts +0 -13
  848. package/src/client/core/types/depositLiquidityEvent.ts +0 -101
  849. package/src/client/core/types/depositLpEvent.ts +0 -75
  850. package/src/client/core/types/depositLpEventV2.ts +0 -83
  851. package/src/client/core/types/depositYtEvent.ts +0 -82
  852. package/src/client/core/types/depositYtEventV2.ts +0 -91
  853. package/src/client/core/types/emissionInfo.ts +0 -44
  854. package/src/client/core/types/farmEmission.ts +0 -31
  855. package/src/client/core/types/index.ts +0 -60
  856. package/src/client/core/types/initLpPositionEvent.ts +0 -57
  857. package/src/client/core/types/initializeYieldPositionEvent.ts +0 -43
  858. package/src/client/core/types/liquidityNetBalanceLimits.ts +0 -22
  859. package/src/client/core/types/lpFarm.ts +0 -12
  860. package/src/client/core/types/marketAdminAction.ts +0 -212
  861. package/src/client/core/types/marketCollectEmissionEvent.ts +0 -67
  862. package/src/client/core/types/marketCollectEmissionEventV2.ts +0 -75
  863. package/src/client/core/types/marketEmission.ts +0 -28
  864. package/src/client/core/types/marketEmissions.ts +0 -10
  865. package/src/client/core/types/marketFinancials.ts +0 -19
  866. package/src/client/core/types/mergeEvent.ts +0 -118
  867. package/src/client/core/types/number.ts +0 -7
  868. package/src/client/core/types/personalYieldTracker.ts +0 -12
  869. package/src/client/core/types/personalYieldTrackers.ts +0 -13
  870. package/src/client/core/types/principleDetails.ts +0 -25
  871. package/src/client/core/types/principles.ts +0 -23
  872. package/src/client/core/types/sellPtEvent.ts +0 -39
  873. package/src/client/core/types/sellYtEvent.ts +0 -90
  874. package/src/client/core/types/stageYieldEvent.ts +0 -63
  875. package/src/client/core/types/stageYieldEventV2.ts +0 -69
  876. package/src/client/core/types/stripEvent.ts +0 -124
  877. package/src/client/core/types/tradePtEvent.ts +0 -80
  878. package/src/client/core/types/withdrawLiquidityEvent.ts +0 -97
  879. package/src/client/core/types/withdrawLpEvent.ts +0 -75
  880. package/src/client/core/types/withdrawLpEventV2.ts +0 -83
  881. package/src/client/core/types/withdrawYtEvent.ts +0 -82
  882. package/src/client/core/types/withdrawYtEventV2.ts +0 -91
  883. package/src/client/core/types/wrapperBuyYtEvent.ts +0 -39
  884. package/src/client/core/types/wrapperCollectInterestEvent.ts +0 -37
  885. package/src/client/core/types/wrapperMergeEvent.ts +0 -38
  886. package/src/client/core/types/wrapperProvideLiquidityBaseEvent.ts +0 -43
  887. package/src/client/core/types/wrapperProvideLiquidityClassicEvent.ts +0 -41
  888. package/src/client/core/types/wrapperProvideLiquidityEvent.ts +0 -41
  889. package/src/client/core/types/wrapperSellYtEvent.ts +0 -39
  890. package/src/client/core/types/wrapperStripEvent.ts +0 -38
  891. package/src/client/core/types/wrapperWithdrawLiquidityClassicEvent.ts +0 -41
  892. package/src/client/core/types/wrapperWithdrawLiquidityEvent.ts +0 -39
  893. package/src/client/core/types/yieldTokenTracker.ts +0 -12
  894. package/src/client/orderbook/accounts/cpiAccountsOrderbook.ts +0 -101
  895. package/src/client/orderbook/accounts/vault.ts +0 -234
  896. package/src/client/orderbook/eventRegistry.ts +0 -71
  897. package/src/client/orderbook/index.ts +0 -55
  898. package/src/client/orderbook/instructions/collectAdminEmission.ts +0 -48
  899. package/src/client/orderbook/instructions/collectAdminFee.ts +0 -59
  900. package/src/client/orderbook/instructions/collectInterest.ts +0 -66
  901. package/src/client/orderbook/instructions/initializeOrderbook.ts +0 -104
  902. package/src/client/orderbook/instructions/marketOffer.ts +0 -89
  903. package/src/client/orderbook/instructions/postOffer.ts +0 -96
  904. package/src/client/orderbook/instructions/reallocOrderbookAccount.ts +0 -45
  905. package/src/client/orderbook/instructions/removeExpiredOffers.ts +0 -37
  906. package/src/client/orderbook/instructions/removeOffer.ts +0 -73
  907. package/src/client/orderbook/instructions/setConfigurationOptions.ts +0 -43
  908. package/src/client/orderbook/instructions/withdrawFunds.ts +0 -78
  909. package/src/client/orderbook/instructions/wrapperCollectAdminFee.ts +0 -73
  910. package/src/client/orderbook/instructions/wrapperCollectInterest.ts +0 -65
  911. package/src/client/orderbook/instructions/wrapperMarketOffer.ts +0 -94
  912. package/src/client/orderbook/instructions/wrapperPostOffer.ts +0 -99
  913. package/src/client/orderbook/instructions/wrapperRemoveOffer.ts +0 -75
  914. package/src/client/orderbook/instructions/wrapperWithdrawFunds.ts +0 -80
  915. package/src/client/orderbook/types/amount.ts +0 -51
  916. package/src/client/orderbook/types/claimLimits.ts +0 -15
  917. package/src/client/orderbook/types/collectAdminEmissionEvent.ts +0 -39
  918. package/src/client/orderbook/types/collectAdminFeeEvent.ts +0 -17
  919. package/src/client/orderbook/types/collectEmissionEventV2.ts +0 -60
  920. package/src/client/orderbook/types/collectInterestEventV2.ts +0 -57
  921. package/src/client/orderbook/types/collectUserInterestEvent.ts +0 -36
  922. package/src/client/orderbook/types/cpiAccounts.ts +0 -21
  923. package/src/client/orderbook/types/cpiInterfaceContext.ts +0 -13
  924. package/src/client/orderbook/types/emissionInfo.ts +0 -44
  925. package/src/client/orderbook/types/exponentCoreCpiAccounts.ts +0 -21
  926. package/src/client/orderbook/types/filledOffersEvent.ts +0 -19
  927. package/src/client/orderbook/types/index.ts +0 -30
  928. package/src/client/orderbook/types/marketOfferEvent.ts +0 -72
  929. package/src/client/orderbook/types/mergeEvent.ts +0 -118
  930. package/src/client/orderbook/types/number.ts +0 -7
  931. package/src/client/orderbook/types/offerOptions.ts +0 -56
  932. package/src/client/orderbook/types/offerType.ts +0 -8
  933. package/src/client/orderbook/types/orderbookInitEvent.ts +0 -54
  934. package/src/client/orderbook/types/postOfferEvent.ts +0 -78
  935. package/src/client/orderbook/types/removeOfferEvent.ts +0 -67
  936. package/src/client/orderbook/types/setConfigurationOptionsEnum.ts +0 -116
  937. package/src/client/orderbook/types/stripEvent.ts +0 -124
  938. package/src/client/orderbook/types/withdrawFundsEvent.ts +0 -65
  939. package/src/client/orderbook/types/wrapperCollectAdminFeeEvent.ts +0 -13
  940. package/src/client/orderbook/types/wrapperCollectInterestEvent.ts +0 -25
  941. package/src/client/orderbook/types/wrapperMarketOfferEvent.ts +0 -27
  942. package/src/client/orderbook/types/wrapperPostOfferEvent.ts +0 -72
  943. package/src/client/orderbook/types/wrapperRemoveOfferEvent.ts +0 -25
  944. package/src/client/orderbook/types/wrapperWithdrawFundsEvent.ts +0 -38
  945. package/src/client/orderbook/types/yieldTokenTracker.ts +0 -12
  946. package/src/client/vaults/accounts/actionProposal.ts +0 -144
  947. package/src/client/vaults/accounts/exponentStrategyVault.ts +0 -211
  948. package/src/client/vaults/accounts/programConfig.ts +0 -123
  949. package/src/client/vaults/accounts/voteAccount.ts +0 -132
  950. package/src/client/vaults/accounts/withdrawalAccount.ts +0 -132
  951. package/src/client/vaults/eventRegistry.ts +0 -45
  952. package/src/client/vaults/index.ts +0 -113
  953. package/src/client/vaults/instructions/activateProposal.ts +0 -46
  954. package/src/client/vaults/instructions/addPolicy.ts +0 -57
  955. package/src/client/vaults/instructions/appendProposalActions.ts +0 -47
  956. package/src/client/vaults/instructions/cancelProposal.ts +0 -28
  957. package/src/client/vaults/instructions/cancelWithdrawal.ts +0 -34
  958. package/src/client/vaults/instructions/collectManagementFee.ts +0 -32
  959. package/src/client/vaults/instructions/depositLiquidity.ts +0 -62
  960. package/src/client/vaults/instructions/executeProposal.ts +0 -36
  961. package/src/client/vaults/instructions/executeWithdrawal.ts +0 -58
  962. package/src/client/vaults/instructions/executeWithdrawalFromReserves.ts +0 -66
  963. package/src/client/vaults/instructions/fillWithdrawal.ts +0 -59
  964. package/src/client/vaults/instructions/finalizeProposal.ts +0 -28
  965. package/src/client/vaults/instructions/initProposal.ts +0 -46
  966. package/src/client/vaults/instructions/initializePrices.ts +0 -28
  967. package/src/client/vaults/instructions/initializeVault.ts +0 -148
  968. package/src/client/vaults/instructions/makeSentienelManager.ts +0 -28
  969. package/src/client/vaults/instructions/managePrices.ts +0 -46
  970. package/src/client/vaults/instructions/manageVaultSettings.ts +0 -48
  971. package/src/client/vaults/instructions/managerUpdatePosition.ts +0 -45
  972. package/src/client/vaults/instructions/queueWithdrawal.ts +0 -50
  973. package/src/client/vaults/instructions/removePolicy.ts +0 -44
  974. package/src/client/vaults/instructions/sentinelSetVaultFlags.ts +0 -44
  975. package/src/client/vaults/instructions/stakeVote.ts +0 -57
  976. package/src/client/vaults/instructions/unstakeVote.ts +0 -42
  977. package/src/client/vaults/instructions/updatePolicy.ts +0 -59
  978. package/src/client/vaults/instructions/updatePolicyManager.ts +0 -44
  979. package/src/client/vaults/instructions/updatePrice.ts +0 -42
  980. package/src/client/vaults/instructions/validateInteractionHook.ts +0 -60
  981. package/src/client/vaults/instructions/wrapperAddPolicy.ts +0 -57
  982. package/src/client/vaults/instructions/wrapperExecuteWithdrawal.ts +0 -76
  983. package/src/client/vaults/instructions/wrapperManageVaultSettings.ts +0 -48
  984. package/src/client/vaults/instructions/wrapperManagerUpdatePosition.ts +0 -45
  985. package/src/client/vaults/instructions/wrapperRemovePolicy.ts +0 -44
  986. package/src/client/vaults/instructions/wrapperUpdatePolicy.ts +0 -59
  987. package/src/client/vaults/types/accountConstraint.ts +0 -35
  988. package/src/client/vaults/types/accountConstraintType.ts +0 -93
  989. package/src/client/vaults/types/allowedSettingsChange.ts +0 -136
  990. package/src/client/vaults/types/cancelProposalEvent.ts +0 -47
  991. package/src/client/vaults/types/clmmPositionEntry.ts +0 -37
  992. package/src/client/vaults/types/dataConstraint.ts +0 -16
  993. package/src/client/vaults/types/dataOperator.ts +0 -13
  994. package/src/client/vaults/types/dataValue.ts +0 -119
  995. package/src/client/vaults/types/depositLiquidityEvent.ts +0 -89
  996. package/src/client/vaults/types/executeProposalEvent.ts +0 -47
  997. package/src/client/vaults/types/executeWithdrawalEvent.ts +0 -12
  998. package/src/client/vaults/types/fillParam.ts +0 -12
  999. package/src/client/vaults/types/finalizeProposalEvent.ts +0 -51
  1000. package/src/client/vaults/types/hook.ts +0 -40
  1001. package/src/client/vaults/types/hookCompiledInstruction.ts +0 -20
  1002. package/src/client/vaults/types/index.ts +0 -68
  1003. package/src/client/vaults/types/instructionConstraint.ts +0 -33
  1004. package/src/client/vaults/types/internalFundTransferPolicyCreationPayload.ts +0 -35
  1005. package/src/client/vaults/types/kaminoFarmEntry.ts +0 -32
  1006. package/src/client/vaults/types/kaminoObligationEntry.ts +0 -51
  1007. package/src/client/vaults/types/limitedQuantityConstraints.ts +0 -10
  1008. package/src/client/vaults/types/limitedSpendingLimit.ts +0 -35
  1009. package/src/client/vaults/types/limitedTimeConstraints.ts +0 -15
  1010. package/src/client/vaults/types/loopscaleLoanEntry.ts +0 -23
  1011. package/src/client/vaults/types/loopscaleStrategyEntry.ts +0 -23
  1012. package/src/client/vaults/types/number.ts +0 -8
  1013. package/src/client/vaults/types/obligationType.ts +0 -63
  1014. package/src/client/vaults/types/orderbookEntry.ts +0 -50
  1015. package/src/client/vaults/types/periodV2.ts +0 -76
  1016. package/src/client/vaults/types/permissions.ts +0 -8
  1017. package/src/client/vaults/types/policyAction.ts +0 -74
  1018. package/src/client/vaults/types/policyConfig.ts +0 -32
  1019. package/src/client/vaults/types/policyCreationPayload.ts +0 -147
  1020. package/src/client/vaults/types/policyExpirationArgs.ts +0 -67
  1021. package/src/client/vaults/types/positionUpdate.ts +0 -313
  1022. package/src/client/vaults/types/priceId.ts +0 -57
  1023. package/src/client/vaults/types/priceType.ts +0 -23
  1024. package/src/client/vaults/types/programInteractionPolicyCreationPayload.ts +0 -32
  1025. package/src/client/vaults/types/proposalAction.ts +0 -97
  1026. package/src/client/vaults/types/proposalActionKind.ts +0 -11
  1027. package/src/client/vaults/types/proposalStatus.ts +0 -13
  1028. package/src/client/vaults/types/proposalVoteConfig.ts +0 -36
  1029. package/src/client/vaults/types/proposeActionEvent.ts +0 -62
  1030. package/src/client/vaults/types/quantityConstraints.ts +0 -14
  1031. package/src/client/vaults/types/reserveFarmMapping.ts +0 -35
  1032. package/src/client/vaults/types/reservePriceMapping.ts +0 -26
  1033. package/src/client/vaults/types/settingsChangePolicyCreationPayload.ts +0 -14
  1034. package/src/client/vaults/types/spendingLimitPolicyCreationPayload.ts +0 -54
  1035. package/src/client/vaults/types/stakeVoteEvent.ts +0 -54
  1036. package/src/client/vaults/types/strategyPosition.ts +0 -178
  1037. package/src/client/vaults/types/timeConstraints.ts +0 -22
  1038. package/src/client/vaults/types/tokenAccountBalance.ts +0 -35
  1039. package/src/client/vaults/types/tokenAccountEntry.ts +0 -30
  1040. package/src/client/vaults/types/tokenEntry.ts +0 -48
  1041. package/src/client/vaults/types/unstakeVoteEvent.ts +0 -53
  1042. package/src/client/vaults/types/updatePriceAction.ts +0 -268
  1043. package/src/client/vaults/types/updatePriceInput.ts +0 -12
  1044. package/src/client/vaults/types/usageState.ts +0 -12
  1045. package/src/client/vaults/types/vaultConfig.ts +0 -38
  1046. package/src/client/vaults/types/vaultFinancials.ts +0 -40
  1047. package/src/client/vaults/types/vaultFlagAction.ts +0 -75
  1048. package/src/client/vaults/types/vaultFlagsUpdatedEvent.ts +0 -37
  1049. package/src/client/vaults/types/vaultRoleKind.ts +0 -11
  1050. package/src/client/vaults/types/vaultRoles.ts +0 -59
  1051. package/src/client/vaults/types/vaultSettingsAction.ts +0 -533
  1052. package/src/client/vaults/types/voteChoice.ts +0 -9
  1053. package/src/client/vaults/types/withdrawalPeriodSettings.ts +0 -83
  1054. package/src/client/vaults/types/withdrawalTokenFill.ts +0 -35
  1055. package/src/client/vaults/types/yieldPositionEntry.ts +0 -35
  1056. package/src/clmm/codamaEvents.ts +0 -34
  1057. package/src/clmm/index.ts +0 -1
  1058. package/src/codamaEvents.ts +0 -27
  1059. package/src/environment.ts +0 -21
  1060. package/src/exponentVaults/aumCalculator.ts +0 -1350
  1061. package/src/exponentVaults/events.ts +0 -15
  1062. package/src/exponentVaults/fetcher.ts +0 -257
  1063. package/src/exponentVaults/index.ts +0 -323
  1064. package/src/exponentVaults/kamino-farms.ts +0 -538
  1065. package/src/exponentVaults/kamino-markets.ts +0 -363
  1066. package/src/exponentVaults/loopscale/client.ts +0 -808
  1067. package/src/exponentVaults/loopscale/helpers.ts +0 -172
  1068. package/src/exponentVaults/loopscale/index.ts +0 -57
  1069. package/src/exponentVaults/loopscale/prepared-transactions.ts +0 -435
  1070. package/src/exponentVaults/loopscale/prepared-types.ts +0 -73
  1071. package/src/exponentVaults/loopscale/types.ts +0 -466
  1072. package/src/exponentVaults/policyBuilders.ts +0 -1729
  1073. package/src/exponentVaults/policyMatcher.ts +0 -895
  1074. package/src/exponentVaults/pricePathResolver.test.ts +0 -466
  1075. package/src/exponentVaults/pricePathResolver.ts +0 -273
  1076. package/src/exponentVaults/scope-refresh.ts +0 -169
  1077. package/src/exponentVaults/squadsVaultTxnResolver/constants.ts +0 -59
  1078. package/src/exponentVaults/squadsVaultTxnResolver/helpers.ts +0 -355
  1079. package/src/exponentVaults/squadsVaultTxnResolver/index.ts +0 -16
  1080. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/exponent.ts +0 -472
  1081. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/helpers.ts +0 -33
  1082. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/index.ts +0 -38
  1083. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/kamino.ts +0 -83
  1084. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/loopscale.ts +0 -94
  1085. package/src/exponentVaults/squadsVaultTxnResolver/resolvers/titan.ts +0 -41
  1086. package/src/exponentVaults/squadsVaultTxnResolver/squadsVaultTxnResolver.ts +0 -91
  1087. package/src/exponentVaults/squadsVaultTxnResolver/types.ts +0 -171
  1088. package/src/exponentVaults/squadsVaultTxnResolver/utils.ts +0 -3
  1089. package/src/exponentVaults/syncTransaction.ts +0 -500
  1090. package/src/exponentVaults/titan-quote.ts +0 -446
  1091. package/src/exponentVaults/vault-instruction-types.ts +0 -493
  1092. package/src/exponentVaults/vault-interaction.kamino-vault.test.ts +0 -149
  1093. package/src/exponentVaults/vault-interaction.ts +0 -5498
  1094. package/src/exponentVaults/vault.ts +0 -2667
  1095. package/src/exponentVaults/vaultTransactionBuilder.test.ts +0 -349
  1096. package/src/exponentVaults/vaultTransactionBuilder.ts +0 -933
  1097. package/src/flavors.ts +0 -841
  1098. package/src/index.ts +0 -26
  1099. package/src/lpPosition.ts +0 -155
  1100. package/src/market.ts +0 -2432
  1101. package/src/marketThree.test.ts +0 -210
  1102. package/src/marketThree.ts +0 -2861
  1103. package/src/orderbook/codamaEvents.ts +0 -28
  1104. package/src/orderbook/index.ts +0 -13
  1105. package/src/orderbook/math.ts +0 -138
  1106. package/src/orderbook/orderbook.ts +0 -1354
  1107. package/src/orderbook/types.ts +0 -40
  1108. package/src/orderbook/utils.ts +0 -66
  1109. package/src/router.ts +0 -810
  1110. package/src/syPosition.ts +0 -182
  1111. package/src/tokenUtil.ts +0 -23
  1112. package/src/utils/altUtil.ts +0 -52
  1113. package/src/utils/binSolver.test.ts +0 -17
  1114. package/src/utils/binSolver.ts +0 -44
  1115. package/src/utils/index.ts +0 -33
  1116. package/src/utils/ix.ts +0 -7
  1117. package/src/vault.ts +0 -1033
  1118. package/src/ytPosition.ts +0 -319
  1119. package/tsconfig.json +0 -46
@@ -1,1729 +0,0 @@
1
- import { PublicKey } from "@solana/web3.js"
2
-
3
- import { AccountConstraint, DataConstraint, InstructionConstraint, PolicyConfig, SpendingLimit } from "./vault"
4
-
5
- // ============================================================================
6
- // Known Program IDs
7
- // ============================================================================
8
-
9
- export const KAMINO_LENDING_PROGRAM_ID = new PublicKey("KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD")
10
- export const KAMINO_VAULT_PROGRAM_ID = new PublicKey("KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd")
11
- export const KAMINO_FARMS_PROGRAM_ID = new PublicKey("FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr")
12
-
13
- // ============================================================================
14
- // Instruction Discriminators (first 8 bytes of sha256("global:<method_name>"))
15
- // ============================================================================
16
-
17
- /**
18
- * Common Kamino Lending instruction discriminators.
19
- * These can be used for data constraints to match specific instructions.
20
- */
21
- export const KAMINO_DISCRIMINATORS = {
22
- initUserMetadata: Buffer.from([117, 169, 176, 69, 197, 23, 15, 162]),
23
- depositReserveLiquidity: Buffer.from([171, 234, 45, 51, 25, 117, 180, 182]),
24
- depositReserveLiquidityAndObligationCollateral: Buffer.from([129, 199, 4, 2, 222, 39, 26, 46]),
25
- depositReserveLiquidityAndObligationCollateralV2: Buffer.from([216, 224, 191, 27, 204, 151, 102, 175]),
26
- withdrawObligationCollateralAndRedeemReserveCollateral: Buffer.from([75, 93, 93, 220, 34, 150, 218, 196]),
27
- withdrawObligationCollateralAndRedeemReserveCollateralV2: Buffer.from([235, 52, 119, 152, 149, 197, 20, 7]),
28
- borrowObligationLiquidity: Buffer.from([121, 127, 18, 204, 73, 245, 225, 65]),
29
- borrowObligationLiquidityV2: Buffer.from([161, 128, 143, 245, 171, 199, 194, 6]),
30
- repayObligationLiquidity: Buffer.from([145, 178, 13, 225, 76, 240, 147, 72]),
31
- repayObligationLiquidityV2: Buffer.from([116, 174, 213, 76, 180, 53, 210, 144]),
32
- initObligation: Buffer.from([251, 10, 231, 76, 27, 11, 159, 96]),
33
- initObligationFarmsForReserve: Buffer.from([1, 152, 226, 239, 191, 47, 250, 194]),
34
- refreshReserve: Buffer.from([2, 218, 138, 235, 79, 201, 25, 102]),
35
- refreshObligation: Buffer.from([33, 132, 147, 228, 151, 192, 72, 89]),
36
- }
37
-
38
- export const KAMINO_VAULT_DISCRIMINATORS = {
39
- deposit: Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]),
40
- withdraw: Buffer.from([183, 18, 70, 156, 148, 109, 161, 34]),
41
- }
42
-
43
- export const KAMINO_FARM_DISCRIMINATORS = {
44
- initializeUser: Buffer.from([111, 17, 185, 250, 60, 122, 38, 254]),
45
- stake: Buffer.from([206, 176, 202, 18, 200, 209, 179, 108]),
46
- unstake: Buffer.from([90, 95, 107, 42, 205, 124, 50, 225]),
47
- withdrawUnstakedDeposits: Buffer.from([36, 102, 187, 49, 220, 36, 132, 67]),
48
- harvestReward: Buffer.from([68, 200, 228, 233, 184, 32, 226, 188]),
49
- }
50
-
51
- // ============================================================================
52
- // Policy Builder Functions
53
- // ============================================================================
54
-
55
- /**
56
- * Creates a basic ProgramInteraction policy configuration.
57
- */
58
- export function createProgramInteractionPolicy(params: {
59
- /** Index of the vault account that will sign (typically 0) */
60
- accountIndex?: number
61
- /** Instruction constraints (which programs/instructions are allowed) */
62
- instructionsConstraints: InstructionConstraint[]
63
- /** Spending limits (optional) */
64
- spendingLimits?: SpendingLimit[]
65
- /** Threshold (number of signers required, typically 1) */
66
- threshold?: number
67
- /** Time lock in seconds (typically 0 for instant execution) */
68
- timeLock?: number
69
- }): PolicyConfig {
70
- return {
71
- policyType: {
72
- programInteraction: {
73
- accountIndex: params.accountIndex ?? 0,
74
- instructionsConstraints: params.instructionsConstraints,
75
- spendingLimits: params.spendingLimits ?? [],
76
- },
77
- },
78
- threshold: params.threshold ?? 1,
79
- timeLock: params.timeLock ?? 0,
80
- startTimestamp: null,
81
- expiration: null,
82
- }
83
- }
84
-
85
- /**
86
- * Creates an instruction constraint for a specific program.
87
- */
88
- export function createInstructionConstraint(params: {
89
- programId: PublicKey
90
- accountConstraints?: AccountConstraint[]
91
- dataConstraints?: DataConstraint[]
92
- }): InstructionConstraint {
93
- return {
94
- programId: params.programId,
95
- accountConstraints: params.accountConstraints ?? [],
96
- dataConstraints: params.dataConstraints ?? [],
97
- }
98
- }
99
-
100
- /**
101
- * Creates an account constraint for a specific account index.
102
- */
103
- export function createAccountConstraint(accountIndex: number, allowedKeys: PublicKey[]): AccountConstraint {
104
- return {
105
- accountIndex,
106
- accountKeys: allowedKeys,
107
- }
108
- }
109
-
110
- /**
111
- * Creates an account-data constraint for a specific account index.
112
- */
113
- export function createAccountDataConstraint(accountIndex: number, accountDataConstraints: DataConstraint[]): AccountConstraint {
114
- return {
115
- accountIndex,
116
- accountDataConstraints,
117
- }
118
- }
119
-
120
- /**
121
- * Creates a data constraint to match instruction discriminator (first 8 bytes).
122
- */
123
- export function createDiscriminatorConstraint(discriminator: Buffer | number[]): DataConstraint {
124
- return {
125
- dataOffset: 0n,
126
- dataValue: { u8Slice: Array.from(discriminator) },
127
- operator: "Equals",
128
- }
129
- }
130
-
131
- // ============================================================================
132
- // Kamino Lending Policy Builders
133
- // ============================================================================
134
-
135
- /**
136
- * Account indices in Kamino Lending instructions
137
- */
138
- export const KAMINO_ACCOUNT_INDICES = {
139
- initObligation: {
140
- owner: 0,
141
- feePayer: 1,
142
- obligation: 2,
143
- lendingMarket: 3,
144
- seed1Account: 4,
145
- seed2Account: 5,
146
- ownerUserMetadata: 6,
147
- rent: 7,
148
- systemProgram: 8,
149
- },
150
- // depositReserveLiquidityAndObligationCollateral
151
- depositCollateral: {
152
- owner: 0,
153
- obligation: 1,
154
- lendingMarket: 2,
155
- lendingMarketAuthority: 3,
156
- reserve: 4,
157
- reserveLiquidityMint: 5,
158
- reserveLiquiditySupply: 6,
159
- reserveCollateralMint: 7,
160
- reserveDestinationDepositCollateral: 8,
161
- obligationCollateralTokenAccount: 9,
162
- userSourceLiquidity: 10,
163
- placeholderUserDestinationCollateral: 11,
164
- collateralTokenProgram: 12,
165
- liquidityTokenProgram: 13,
166
- instructionSysvarAccount: 14,
167
- },
168
- // withdrawObligationCollateralAndRedeemReserveCollateral
169
- withdrawCollateral: {
170
- owner: 0,
171
- obligation: 1,
172
- lendingMarket: 2,
173
- lendingMarketAuthority: 3,
174
- withdrawReserve: 4,
175
- reserveLiquidityMint: 5,
176
- reserveSourceCollateral: 6,
177
- reserveCollateralMint: 7,
178
- reserveLiquiditySupply: 8,
179
- userDestinationLiquidity: 9,
180
- placeholderUserDestinationCollateral: 10,
181
- obligationCollateralTokenAccount: 11,
182
- collateralTokenProgram: 12,
183
- liquidityTokenProgram: 13,
184
- instructionSysvarAccount: 14,
185
- },
186
- // borrowObligationLiquidity
187
- borrow: {
188
- owner: 0,
189
- obligation: 1,
190
- lendingMarket: 2,
191
- lendingMarketAuthority: 3,
192
- borrowReserve: 4,
193
- borrowReserveLiquidityMint: 5,
194
- reserveSourceLiquidity: 6,
195
- borrowReserveLiquidityFeeReceiver: 7,
196
- userDestinationLiquidity: 8,
197
- referrerTokenState: 9,
198
- liquidityTokenProgram: 10,
199
- instructionSysvarAccount: 11,
200
- },
201
- // repayObligationLiquidity
202
- repay: {
203
- owner: 0,
204
- obligation: 1,
205
- lendingMarket: 2,
206
- repayReserve: 3,
207
- reserveLiquidityMint: 4,
208
- reserveDestinationLiquidity: 5,
209
- userSourceLiquidity: 6,
210
- liquidityTokenProgram: 7,
211
- instructionSysvarAccount: 8,
212
- },
213
- }
214
-
215
- /**
216
- * Creates a policy that allows Kamino account initialization for specific lending markets.
217
- */
218
- export function createKaminoInitPolicy(params: {
219
- /** Optional: allowed lending markets for init_obligation */
220
- allowedLendingMarkets?: PublicKey[]
221
- /** Threshold (default 1) */
222
- threshold?: number
223
- /** Time lock in seconds (default 0) */
224
- timeLock?: number
225
- } = {}): PolicyConfig {
226
- const initObligationAccountConstraints: AccountConstraint[] = []
227
-
228
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
229
- initObligationAccountConstraints.push(
230
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.initObligation.lendingMarket, params.allowedLendingMarkets),
231
- )
232
- }
233
-
234
- return createProgramInteractionPolicy({
235
- threshold: params.threshold,
236
- timeLock: params.timeLock,
237
- instructionsConstraints: [
238
- createInstructionConstraint({
239
- programId: KAMINO_LENDING_PROGRAM_ID,
240
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.initUserMetadata)],
241
- }),
242
- createInstructionConstraint({
243
- programId: KAMINO_LENDING_PROGRAM_ID,
244
- accountConstraints: initObligationAccountConstraints,
245
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.initObligation)],
246
- }),
247
- ],
248
- })
249
- }
250
-
251
- /**
252
- * Creates a policy that allows depositing into specific Kamino reserves.
253
- */
254
- export function createKaminoDepositPolicy(params: {
255
- /** Allowed reserve addresses for deposits */
256
- allowedReserves: PublicKey[]
257
- /** Optional: allowed lending markets (if not specified, any market is allowed) */
258
- allowedLendingMarkets?: PublicKey[]
259
- /** Optional: spending limits */
260
- spendingLimits?: SpendingLimit[]
261
- /** Threshold (default 1) */
262
- threshold?: number
263
- /** Time lock in seconds (default 0) */
264
- timeLock?: number
265
- }): PolicyConfig {
266
- const accountConstraints: AccountConstraint[] = []
267
-
268
- // Constrain on reserve account (index 4 in depositReserveLiquidityAndObligationCollateral)
269
- if (params.allowedReserves.length > 0) {
270
- accountConstraints.push(
271
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.depositCollateral.reserve, params.allowedReserves),
272
- )
273
- }
274
-
275
- // Optionally constrain on lending market
276
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
277
- accountConstraints.push(
278
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.depositCollateral.lendingMarket, params.allowedLendingMarkets),
279
- )
280
- }
281
-
282
- const instructionConstraint = createInstructionConstraint({
283
- programId: KAMINO_LENDING_PROGRAM_ID,
284
- accountConstraints,
285
- // Match the deposit instruction discriminator
286
- dataConstraints: [
287
- createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.depositReserveLiquidityAndObligationCollateralV2),
288
- ],
289
- })
290
-
291
- return createProgramInteractionPolicy({
292
- instructionsConstraints: [instructionConstraint],
293
- spendingLimits: params.spendingLimits,
294
- threshold: params.threshold,
295
- timeLock: params.timeLock,
296
- })
297
- }
298
-
299
- /**
300
- * Creates a policy that allows withdrawing from specific Kamino reserves.
301
- */
302
- export function createKaminoWithdrawPolicy(params: {
303
- /** Allowed reserve addresses for withdrawals */
304
- allowedReserves: PublicKey[]
305
- /** Optional: allowed lending markets */
306
- allowedLendingMarkets?: PublicKey[]
307
- /** Optional: spending limits */
308
- spendingLimits?: SpendingLimit[]
309
- /** Threshold (default 1) */
310
- threshold?: number
311
- /** Time lock in seconds (default 0) */
312
- timeLock?: number
313
- }): PolicyConfig {
314
- const accountConstraints: AccountConstraint[] = []
315
-
316
- // Constrain on withdraw reserve account (index 4)
317
- if (params.allowedReserves.length > 0) {
318
- accountConstraints.push(
319
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.withdrawCollateral.withdrawReserve, params.allowedReserves),
320
- )
321
- }
322
-
323
- // Optionally constrain on lending market
324
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
325
- accountConstraints.push(
326
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.withdrawCollateral.lendingMarket, params.allowedLendingMarkets),
327
- )
328
- }
329
-
330
- const instructionConstraint = createInstructionConstraint({
331
- programId: KAMINO_LENDING_PROGRAM_ID,
332
- accountConstraints,
333
- dataConstraints: [
334
- createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.withdrawObligationCollateralAndRedeemReserveCollateralV2),
335
- ],
336
- })
337
-
338
- return createProgramInteractionPolicy({
339
- instructionsConstraints: [instructionConstraint],
340
- spendingLimits: params.spendingLimits,
341
- threshold: params.threshold,
342
- timeLock: params.timeLock,
343
- })
344
- }
345
-
346
- /**
347
- * Creates a policy that allows borrowing from specific Kamino reserves.
348
- */
349
- export function createKaminoBorrowPolicy(params: {
350
- /** Allowed reserve addresses for borrowing */
351
- allowedReserves: PublicKey[]
352
- /** Optional: allowed lending markets */
353
- allowedLendingMarkets?: PublicKey[]
354
- /** Optional: spending limits */
355
- spendingLimits?: SpendingLimit[]
356
- /** Threshold (default 1) */
357
- threshold?: number
358
- /** Time lock in seconds (default 0) */
359
- timeLock?: number
360
- }): PolicyConfig {
361
- const accountConstraints: AccountConstraint[] = []
362
-
363
- // Constrain on borrow reserve account (index 4)
364
- if (params.allowedReserves.length > 0) {
365
- accountConstraints.push(
366
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.borrow.borrowReserve, params.allowedReserves),
367
- )
368
- }
369
-
370
- // Optionally constrain on lending market
371
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
372
- accountConstraints.push(
373
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.borrow.lendingMarket, params.allowedLendingMarkets),
374
- )
375
- }
376
-
377
- const instructionConstraint = createInstructionConstraint({
378
- programId: KAMINO_LENDING_PROGRAM_ID,
379
- accountConstraints,
380
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.borrowObligationLiquidityV2)],
381
- })
382
-
383
- return createProgramInteractionPolicy({
384
- instructionsConstraints: [instructionConstraint],
385
- spendingLimits: params.spendingLimits,
386
- threshold: params.threshold,
387
- timeLock: params.timeLock,
388
- })
389
- }
390
-
391
- /**
392
- * Creates a policy that allows repaying on specific Kamino reserves.
393
- */
394
- export function createKaminoRepayPolicy(params: {
395
- /** Allowed reserve addresses for repaying */
396
- allowedReserves: PublicKey[]
397
- /** Optional: allowed lending markets */
398
- allowedLendingMarkets?: PublicKey[]
399
- /** Optional: spending limits */
400
- spendingLimits?: SpendingLimit[]
401
- /** Threshold (default 1) */
402
- threshold?: number
403
- /** Time lock in seconds (default 0) */
404
- timeLock?: number
405
- }): PolicyConfig {
406
- const accountConstraints: AccountConstraint[] = []
407
-
408
- // Constrain on repay reserve account (index 3)
409
- if (params.allowedReserves.length > 0) {
410
- accountConstraints.push(createAccountConstraint(KAMINO_ACCOUNT_INDICES.repay.repayReserve, params.allowedReserves))
411
- }
412
-
413
- // Optionally constrain on lending market
414
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
415
- accountConstraints.push(
416
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.repay.lendingMarket, params.allowedLendingMarkets),
417
- )
418
- }
419
-
420
- const instructionConstraint = createInstructionConstraint({
421
- programId: KAMINO_LENDING_PROGRAM_ID,
422
- accountConstraints,
423
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.repayObligationLiquidityV2)],
424
- })
425
-
426
- return createProgramInteractionPolicy({
427
- instructionsConstraints: [instructionConstraint],
428
- spendingLimits: params.spendingLimits,
429
- threshold: params.threshold,
430
- timeLock: params.timeLock,
431
- })
432
- }
433
-
434
- /**
435
- * Creates a combined Kamino policy that allows multiple actions on the same reserves.
436
- */
437
- export function createKaminoFullAccessPolicy(params: {
438
- /** Allowed reserve addresses */
439
- allowedReserves: PublicKey[]
440
- /** Which actions to allow */
441
- allowedActions: ("deposit" | "withdraw" | "borrow" | "repay")[]
442
- /** Optional: allowed lending markets */
443
- allowedLendingMarkets?: PublicKey[]
444
- /** Optional: spending limits */
445
- spendingLimits?: SpendingLimit[]
446
- /** Threshold (default 1) */
447
- threshold?: number
448
- /** Time lock in seconds (default 0) */
449
- timeLock?: number
450
- }): PolicyConfig {
451
- const instructionsConstraints: InstructionConstraint[] = []
452
-
453
- for (const action of params.allowedActions) {
454
- const accountConstraints: AccountConstraint[] = []
455
-
456
- switch (action) {
457
- case "deposit":
458
- if (params.allowedReserves.length > 0) {
459
- accountConstraints.push(
460
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.depositCollateral.reserve, params.allowedReserves),
461
- )
462
- }
463
- instructionsConstraints.push(
464
- createInstructionConstraint({
465
- programId: KAMINO_LENDING_PROGRAM_ID,
466
- accountConstraints,
467
- dataConstraints: [
468
- createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.depositReserveLiquidityAndObligationCollateralV2),
469
- ],
470
- }),
471
- )
472
- break
473
- case "withdraw":
474
- if (params.allowedReserves.length > 0) {
475
- accountConstraints.push(
476
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.withdrawCollateral.withdrawReserve, params.allowedReserves),
477
- )
478
- }
479
- instructionsConstraints.push(
480
- createInstructionConstraint({
481
- programId: KAMINO_LENDING_PROGRAM_ID,
482
- accountConstraints,
483
- dataConstraints: [
484
- createDiscriminatorConstraint(
485
- KAMINO_DISCRIMINATORS.withdrawObligationCollateralAndRedeemReserveCollateralV2,
486
- ),
487
- ],
488
- }),
489
- )
490
- break
491
- case "borrow":
492
- if (params.allowedReserves.length > 0) {
493
- accountConstraints.push(
494
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.borrow.borrowReserve, params.allowedReserves),
495
- )
496
- }
497
- instructionsConstraints.push(
498
- createInstructionConstraint({
499
- programId: KAMINO_LENDING_PROGRAM_ID,
500
- accountConstraints,
501
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.borrowObligationLiquidityV2)],
502
- }),
503
- )
504
- break
505
- case "repay":
506
- if (params.allowedReserves.length > 0) {
507
- accountConstraints.push(
508
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.repay.repayReserve, params.allowedReserves),
509
- )
510
- }
511
- instructionsConstraints.push(
512
- createInstructionConstraint({
513
- programId: KAMINO_LENDING_PROGRAM_ID,
514
- accountConstraints,
515
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.repayObligationLiquidityV2)],
516
- }),
517
- )
518
- break
519
- }
520
- }
521
-
522
- return createProgramInteractionPolicy({
523
- instructionsConstraints,
524
- spendingLimits: params.spendingLimits,
525
- threshold: params.threshold,
526
- timeLock: params.timeLock,
527
- })
528
- }
529
-
530
- /** Kamino actions that can be included in a policy */
531
- export type KaminoPolicyAction = "deposit" | "withdraw" | "borrow" | "repay"
532
-
533
- /**
534
- * Creates a Kamino policy configuration (unified API, similar to createCorePolicy).
535
- * Both allowedReserves and allowedDepositMints are optional; omit both to allow any reserve/mint.
536
- */
537
- export function createKaminoPolicy(params: {
538
- /** Allowed reserve addresses (optional) */
539
- allowedReserves?: PublicKey[]
540
- /** Allowed liquidity mints for deposits/withdrawals/borrows/repays (optional) */
541
- allowedDepositMints?: PublicKey[]
542
- /** Which actions to allow */
543
- actions: KaminoPolicyAction[]
544
- /** Optional: allowed lending markets */
545
- allowedLendingMarkets?: PublicKey[]
546
- /** Optional: spending limits */
547
- spendingLimits?: SpendingLimit[]
548
- /** Threshold (default 1) */
549
- threshold?: number
550
- /** Time lock in seconds (default 0) */
551
- timeLock?: number
552
- }): PolicyConfig {
553
- const instructionsConstraints: InstructionConstraint[] = []
554
-
555
- for (const action of params.actions) {
556
- const accountConstraints: AccountConstraint[] = []
557
-
558
- switch (action) {
559
- case "deposit":
560
- if (params.allowedReserves && params.allowedReserves.length > 0) {
561
- accountConstraints.push(
562
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.depositCollateral.reserve, params.allowedReserves),
563
- )
564
- }
565
- if (params.allowedDepositMints && params.allowedDepositMints.length > 0) {
566
- accountConstraints.push(
567
- createAccountConstraint(
568
- KAMINO_ACCOUNT_INDICES.depositCollateral.reserveLiquidityMint,
569
- params.allowedDepositMints,
570
- ),
571
- )
572
- }
573
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
574
- accountConstraints.push(
575
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.depositCollateral.lendingMarket, params.allowedLendingMarkets),
576
- )
577
- }
578
- instructionsConstraints.push(
579
- createInstructionConstraint({
580
- programId: KAMINO_LENDING_PROGRAM_ID,
581
- accountConstraints,
582
- dataConstraints: [
583
- createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.depositReserveLiquidityAndObligationCollateralV2),
584
- ],
585
- }),
586
- )
587
- break
588
- case "withdraw":
589
- if (params.allowedReserves && params.allowedReserves.length > 0) {
590
- accountConstraints.push(
591
- createAccountConstraint(
592
- KAMINO_ACCOUNT_INDICES.withdrawCollateral.withdrawReserve,
593
- params.allowedReserves,
594
- ),
595
- )
596
- }
597
- if (params.allowedDepositMints && params.allowedDepositMints.length > 0) {
598
- accountConstraints.push(
599
- createAccountConstraint(
600
- KAMINO_ACCOUNT_INDICES.withdrawCollateral.reserveLiquidityMint,
601
- params.allowedDepositMints,
602
- ),
603
- )
604
- }
605
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
606
- accountConstraints.push(
607
- createAccountConstraint(
608
- KAMINO_ACCOUNT_INDICES.withdrawCollateral.lendingMarket,
609
- params.allowedLendingMarkets,
610
- ),
611
- )
612
- }
613
- instructionsConstraints.push(
614
- createInstructionConstraint({
615
- programId: KAMINO_LENDING_PROGRAM_ID,
616
- accountConstraints,
617
- dataConstraints: [
618
- createDiscriminatorConstraint(
619
- KAMINO_DISCRIMINATORS.withdrawObligationCollateralAndRedeemReserveCollateralV2,
620
- ),
621
- ],
622
- }),
623
- )
624
- break
625
- case "borrow":
626
- if (params.allowedReserves && params.allowedReserves.length > 0) {
627
- accountConstraints.push(
628
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.borrow.borrowReserve, params.allowedReserves),
629
- )
630
- }
631
- if (params.allowedDepositMints && params.allowedDepositMints.length > 0) {
632
- accountConstraints.push(
633
- createAccountConstraint(
634
- KAMINO_ACCOUNT_INDICES.borrow.borrowReserveLiquidityMint,
635
- params.allowedDepositMints,
636
- ),
637
- )
638
- }
639
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
640
- accountConstraints.push(
641
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.borrow.lendingMarket, params.allowedLendingMarkets),
642
- )
643
- }
644
- instructionsConstraints.push(
645
- createInstructionConstraint({
646
- programId: KAMINO_LENDING_PROGRAM_ID,
647
- accountConstraints,
648
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.borrowObligationLiquidityV2)],
649
- }),
650
- )
651
- break
652
- case "repay":
653
- if (params.allowedReserves && params.allowedReserves.length > 0) {
654
- accountConstraints.push(
655
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.repay.repayReserve, params.allowedReserves),
656
- )
657
- }
658
- if (params.allowedDepositMints && params.allowedDepositMints.length > 0) {
659
- accountConstraints.push(
660
- createAccountConstraint(
661
- KAMINO_ACCOUNT_INDICES.repay.reserveLiquidityMint,
662
- params.allowedDepositMints,
663
- ),
664
- )
665
- }
666
- if (params.allowedLendingMarkets && params.allowedLendingMarkets.length > 0) {
667
- accountConstraints.push(
668
- createAccountConstraint(KAMINO_ACCOUNT_INDICES.repay.lendingMarket, params.allowedLendingMarkets),
669
- )
670
- }
671
- instructionsConstraints.push(
672
- createInstructionConstraint({
673
- programId: KAMINO_LENDING_PROGRAM_ID,
674
- accountConstraints,
675
- dataConstraints: [createDiscriminatorConstraint(KAMINO_DISCRIMINATORS.repayObligationLiquidityV2)],
676
- }),
677
- )
678
- break
679
- }
680
- }
681
-
682
- return createProgramInteractionPolicy({
683
- instructionsConstraints,
684
- spendingLimits: params.spendingLimits,
685
- threshold: params.threshold,
686
- timeLock: params.timeLock,
687
- })
688
- }
689
-
690
- export const KAMINO_VAULT_ACCOUNT_INDICES = {
691
- deposit: {
692
- vaultState: 1,
693
- tokenMint: 3,
694
- },
695
- withdraw: {
696
- vaultState: 1,
697
- tokenMint: 6,
698
- reserve: 15,
699
- },
700
- }
701
-
702
- export type KaminoVaultPolicyAction = "deposit" | "withdraw"
703
-
704
- export function createKaminoVaultPolicy(params: {
705
- allowedVaults?: PublicKey[]
706
- allowedDepositMints?: PublicKey[]
707
- actions: KaminoVaultPolicyAction[]
708
- spendingLimits?: SpendingLimit[]
709
- threshold?: number
710
- timeLock?: number
711
- }): PolicyConfig {
712
- const instructionsConstraints: InstructionConstraint[] = []
713
-
714
- for (const action of params.actions) {
715
- const accountConstraints: AccountConstraint[] = []
716
- const accountIndices =
717
- action === "deposit" ? KAMINO_VAULT_ACCOUNT_INDICES.deposit : KAMINO_VAULT_ACCOUNT_INDICES.withdraw
718
-
719
- if (params.allowedVaults && params.allowedVaults.length > 0) {
720
- accountConstraints.push(createAccountConstraint(accountIndices.vaultState, params.allowedVaults))
721
- }
722
- if (params.allowedDepositMints && params.allowedDepositMints.length > 0) {
723
- accountConstraints.push(createAccountConstraint(accountIndices.tokenMint, params.allowedDepositMints))
724
- }
725
-
726
- instructionsConstraints.push(
727
- createInstructionConstraint({
728
- programId: KAMINO_VAULT_PROGRAM_ID,
729
- accountConstraints,
730
- dataConstraints: [
731
- createDiscriminatorConstraint(
732
- action === "deposit"
733
- ? KAMINO_VAULT_DISCRIMINATORS.deposit
734
- : KAMINO_VAULT_DISCRIMINATORS.withdraw,
735
- ),
736
- ],
737
- }),
738
- )
739
- }
740
-
741
- return createProgramInteractionPolicy({
742
- instructionsConstraints,
743
- spendingLimits: params.spendingLimits,
744
- threshold: params.threshold,
745
- timeLock: params.timeLock,
746
- })
747
- }
748
-
749
- export const KAMINO_FARM_ACCOUNT_INDICES = {
750
- initializeUser: {
751
- farmState: 5,
752
- },
753
- stake: {
754
- farmState: 2,
755
- tokenMint: 5,
756
- },
757
- unstake: {
758
- farmState: 2,
759
- },
760
- withdrawUnstakedDeposits: {
761
- farmState: 2,
762
- },
763
- harvestReward: {
764
- farmState: 2,
765
- rewardMint: 4,
766
- },
767
- }
768
-
769
- export type KaminoFarmPolicyAction =
770
- | "initializeUser"
771
- | "stake"
772
- | "unstake"
773
- | "withdrawUnstakedDeposits"
774
- | "harvestReward"
775
-
776
- export function createKaminoFarmPolicy(params: {
777
- allowedFarmStates?: PublicKey[]
778
- allowedUnderlyingMints?: PublicKey[]
779
- allowedRewardMints?: PublicKey[]
780
- actions: KaminoFarmPolicyAction[]
781
- spendingLimits?: SpendingLimit[]
782
- threshold?: number
783
- timeLock?: number
784
- }): PolicyConfig {
785
- const instructionsConstraints: InstructionConstraint[] = []
786
-
787
- for (const action of params.actions) {
788
- const accountConstraints: AccountConstraint[] = []
789
-
790
- const farmIndex =
791
- action === "initializeUser"
792
- ? KAMINO_FARM_ACCOUNT_INDICES.initializeUser.farmState
793
- : action === "stake"
794
- ? KAMINO_FARM_ACCOUNT_INDICES.stake.farmState
795
- : action === "unstake"
796
- ? KAMINO_FARM_ACCOUNT_INDICES.unstake.farmState
797
- : action === "withdrawUnstakedDeposits"
798
- ? KAMINO_FARM_ACCOUNT_INDICES.withdrawUnstakedDeposits.farmState
799
- : KAMINO_FARM_ACCOUNT_INDICES.harvestReward.farmState
800
-
801
- if (params.allowedFarmStates && params.allowedFarmStates.length > 0) {
802
- accountConstraints.push(createAccountConstraint(farmIndex, params.allowedFarmStates))
803
- }
804
-
805
- if (action === "stake" && params.allowedUnderlyingMints && params.allowedUnderlyingMints.length > 0) {
806
- accountConstraints.push(
807
- createAccountConstraint(KAMINO_FARM_ACCOUNT_INDICES.stake.tokenMint, params.allowedUnderlyingMints),
808
- )
809
- }
810
-
811
- if (action === "harvestReward" && params.allowedRewardMints && params.allowedRewardMints.length > 0) {
812
- accountConstraints.push(
813
- createAccountConstraint(KAMINO_FARM_ACCOUNT_INDICES.harvestReward.rewardMint, params.allowedRewardMints),
814
- )
815
- }
816
-
817
- const discriminator =
818
- action === "initializeUser"
819
- ? KAMINO_FARM_DISCRIMINATORS.initializeUser
820
- : action === "stake"
821
- ? KAMINO_FARM_DISCRIMINATORS.stake
822
- : action === "unstake"
823
- ? KAMINO_FARM_DISCRIMINATORS.unstake
824
- : action === "withdrawUnstakedDeposits"
825
- ? KAMINO_FARM_DISCRIMINATORS.withdrawUnstakedDeposits
826
- : KAMINO_FARM_DISCRIMINATORS.harvestReward
827
-
828
- instructionsConstraints.push(
829
- createInstructionConstraint({
830
- programId: KAMINO_FARMS_PROGRAM_ID,
831
- accountConstraints,
832
- dataConstraints: [createDiscriminatorConstraint(discriminator)],
833
- }),
834
- )
835
- }
836
-
837
- return createProgramInteractionPolicy({
838
- instructionsConstraints,
839
- spendingLimits: params.spendingLimits,
840
- threshold: params.threshold,
841
- timeLock: params.timeLock,
842
- })
843
- }
844
-
845
- // ============================================================================
846
- // Exponent Core Policy Builders (Strip/Merge)
847
- // ============================================================================
848
-
849
- export const EXPONENT_CORE_PROGRAM_ID = new PublicKey("ExponentnaRg3CQbW6dqQNZKXp7gtZ9DGMp1cwC4HAS7")
850
-
851
- /**
852
- * Single-byte discriminators for Exponent Core wrapper instructions.
853
- */
854
- export const EXPONENT_CORE_DISCRIMINATORS = {
855
- initializeYieldPosition: Buffer.from([3]),
856
- collectInterest: Buffer.from([6]),
857
- depositYt: Buffer.from([7]),
858
- withdrawYt: Buffer.from([8]),
859
- wrapperCollectInterest: Buffer.from([33]),
860
- wrapperStrip: Buffer.from([38]),
861
- wrapperMerge: Buffer.from([39]),
862
- }
863
-
864
- /**
865
- * Account indices in Exponent Core initialize_yield_position instruction.
866
- */
867
- export const EXPONENT_CORE_INITIALIZE_YIELD_POSITION_ACCOUNT_INDICES = {
868
- owner: 0,
869
- vault: 1,
870
- yieldPosition: 2,
871
- systemProgram: 3,
872
- eventAuthority: 4,
873
- program: 5,
874
- }
875
-
876
- /**
877
- * Account indices in Exponent Core wrapper_strip instruction.
878
- */
879
- export const EXPONENT_CORE_STRIP_ACCOUNT_INDICES = {
880
- depositor: 0,
881
- tokenSyDepositor: 1,
882
- vault: 2,
883
- escrowSy: 3,
884
- tokenYtDepositor: 4,
885
- tokenPtDepositor: 5,
886
- mintYt: 6,
887
- mintPt: 7,
888
- authority: 8,
889
- vaultAddressLookupTable: 9,
890
- tokenProgram: 10,
891
- escrowYt: 11,
892
- userYieldPosition: 12,
893
- vaultRobotYieldPosition: 13,
894
- syProgram: 14,
895
- systemProgram: 15,
896
- }
897
-
898
- /**
899
- * Account indices in Exponent Core wrapper_merge instruction.
900
- */
901
- export const EXPONENT_CORE_MERGE_ACCOUNT_INDICES = {
902
- merger: 0,
903
- tokenSyMerger: 1,
904
- vault: 2,
905
- escrowSy: 3,
906
- tokenYtMerger: 4,
907
- tokenPtMerger: 5,
908
- mintYt: 6,
909
- mintPt: 7,
910
- authority: 8,
911
- vaultAddressLookupTable: 9,
912
- tokenProgram: 10,
913
- vaultRobotYieldPosition: 11,
914
- syProgram: 12,
915
- systemProgram: 13,
916
- }
917
-
918
- export const EXPONENT_CORE_DEPOSIT_YT_ACCOUNT_INDICES = {
919
- depositor: 0,
920
- vault: 1,
921
- }
922
-
923
- export const EXPONENT_CORE_COLLECT_INTEREST_ACCOUNT_INDICES = {
924
- owner: 0,
925
- vault: 2,
926
- }
927
-
928
- export const EXPONENT_CORE_WITHDRAW_YT_ACCOUNT_INDICES = {
929
- owner: 0,
930
- vault: 1,
931
- }
932
-
933
- export const EXPONENT_CORE_WRAPPER_COLLECT_INTEREST_ACCOUNT_INDICES = {
934
- claimer: 0,
935
- vault: 2,
936
- }
937
-
938
- export const EXPONENT_VAULT_ACCOUNT_DATA_OFFSETS = {
939
- mintSy: 40n,
940
- } as const
941
-
942
- /** Core actions that can be included in a policy */
943
- export type CorePolicyAction =
944
- | "initializeYieldPosition"
945
- | "collectInterest"
946
- | "depositYt"
947
- | "withdrawYt"
948
- | "wrapperCollectInterest"
949
- | "strip"
950
- | "merge"
951
-
952
- function createExponentVaultMintSyConstraint(accountIndex: number, allowedSyMint: PublicKey): AccountConstraint {
953
- return createAccountDataConstraint(accountIndex, [
954
- {
955
- dataOffset: EXPONENT_VAULT_ACCOUNT_DATA_OFFSETS.mintSy,
956
- dataValue: { u8Slice: Array.from(allowedSyMint.toBytes()) },
957
- operator: "Equals",
958
- },
959
- ])
960
- }
961
-
962
- function resolveExponentAccountConstraintVariants(params: {
963
- accountIndex: number
964
- allowedVaults?: PublicKey[]
965
- allowedSyMints?: PublicKey[]
966
- }): AccountConstraint[][] {
967
- if (params.allowedVaults && params.allowedVaults.length > 0) {
968
- return [[createAccountConstraint(params.accountIndex, params.allowedVaults)]]
969
- }
970
-
971
- if (params.allowedSyMints && params.allowedSyMints.length > 0) {
972
- return params.allowedSyMints.map((allowedSyMint) => [
973
- createExponentVaultMintSyConstraint(params.accountIndex, allowedSyMint),
974
- ])
975
- }
976
-
977
- return [[]]
978
- }
979
-
980
- /**
981
- * Creates instruction constraints for Exponent Core operations.
982
- */
983
- export function createCoreInstructionConstraints(params: {
984
- /** Allowed vault addresses (optional) */
985
- allowedVaults?: PublicKey[]
986
- /** Allowed SY mints - constrains the vault account's mintSy field directly */
987
- allowedSyMints?: PublicKey[]
988
- /** Deprecated: no longer required when constraining by SY mint */
989
- vaultsForSyMints?: PublicKey[]
990
- /** Which actions to allow */
991
- actions: CorePolicyAction[]
992
- }): InstructionConstraint[] {
993
- const instructionsConstraints: InstructionConstraint[] = []
994
-
995
- for (const action of params.actions) {
996
- const accountIndex =
997
- action === "initializeYieldPosition"
998
- ? EXPONENT_CORE_INITIALIZE_YIELD_POSITION_ACCOUNT_INDICES.vault
999
- : action === "collectInterest"
1000
- ? EXPONENT_CORE_COLLECT_INTEREST_ACCOUNT_INDICES.vault
1001
- : action === "depositYt"
1002
- ? EXPONENT_CORE_DEPOSIT_YT_ACCOUNT_INDICES.vault
1003
- : action === "withdrawYt"
1004
- ? EXPONENT_CORE_WITHDRAW_YT_ACCOUNT_INDICES.vault
1005
- : action === "wrapperCollectInterest"
1006
- ? EXPONENT_CORE_WRAPPER_COLLECT_INTEREST_ACCOUNT_INDICES.vault
1007
- : action === "strip"
1008
- ? EXPONENT_CORE_STRIP_ACCOUNT_INDICES.vault
1009
- : EXPONENT_CORE_MERGE_ACCOUNT_INDICES.vault
1010
- const accountConstraintVariants = resolveExponentAccountConstraintVariants({
1011
- accountIndex,
1012
- allowedVaults: params.allowedVaults,
1013
- allowedSyMints: params.allowedSyMints,
1014
- })
1015
- const discriminator =
1016
- action === "initializeYieldPosition"
1017
- ? EXPONENT_CORE_DISCRIMINATORS.initializeYieldPosition
1018
- : action === "collectInterest"
1019
- ? EXPONENT_CORE_DISCRIMINATORS.collectInterest
1020
- : action === "depositYt"
1021
- ? EXPONENT_CORE_DISCRIMINATORS.depositYt
1022
- : action === "withdrawYt"
1023
- ? EXPONENT_CORE_DISCRIMINATORS.withdrawYt
1024
- : action === "wrapperCollectInterest"
1025
- ? EXPONENT_CORE_DISCRIMINATORS.wrapperCollectInterest
1026
- : action === "strip"
1027
- ? EXPONENT_CORE_DISCRIMINATORS.wrapperStrip
1028
- : EXPONENT_CORE_DISCRIMINATORS.wrapperMerge
1029
-
1030
- switch (action) {
1031
- case "initializeYieldPosition":
1032
- case "collectInterest":
1033
- case "depositYt":
1034
- case "withdrawYt":
1035
- case "wrapperCollectInterest":
1036
- accountConstraintVariants.forEach((accountConstraints) => {
1037
- instructionsConstraints.push(
1038
- createInstructionConstraint({
1039
- programId: EXPONENT_CORE_PROGRAM_ID,
1040
- accountConstraints,
1041
- dataConstraints: [createDiscriminatorConstraint(discriminator)],
1042
- }),
1043
- )
1044
- })
1045
- break
1046
- case "strip":
1047
- accountConstraintVariants.forEach((accountConstraints) => {
1048
- instructionsConstraints.push(
1049
- createInstructionConstraint({
1050
- programId: EXPONENT_CORE_PROGRAM_ID,
1051
- accountConstraints,
1052
- dataConstraints: [createDiscriminatorConstraint(discriminator)],
1053
- }),
1054
- )
1055
- })
1056
- break
1057
- case "merge":
1058
- accountConstraintVariants.forEach((accountConstraints) => {
1059
- instructionsConstraints.push(
1060
- createInstructionConstraint({
1061
- programId: EXPONENT_CORE_PROGRAM_ID,
1062
- accountConstraints,
1063
- dataConstraints: [createDiscriminatorConstraint(discriminator)],
1064
- }),
1065
- )
1066
- })
1067
- break
1068
- }
1069
- }
1070
-
1071
- return instructionsConstraints
1072
- }
1073
-
1074
- /**
1075
- * Creates a complete Exponent Core strip/merge policy configuration.
1076
- */
1077
- export function createCorePolicy(params: {
1078
- /** Allowed vault addresses (optional) */
1079
- allowedVaults?: PublicKey[]
1080
- /** Allowed SY mints - constrains the vault account's mintSy field directly */
1081
- allowedSyMints?: PublicKey[]
1082
- /** Deprecated: no longer required when constraining by SY mint */
1083
- vaultsForSyMints?: PublicKey[]
1084
- /** Which actions to allow */
1085
- actions: CorePolicyAction[]
1086
- /** Spending limits (optional) */
1087
- spendingLimits?: SpendingLimit[]
1088
- /** Threshold (default 1) */
1089
- threshold?: number
1090
- /** Time lock in seconds (default 0) */
1091
- timeLock?: number
1092
- }): PolicyConfig {
1093
- const instructionsConstraints = createCoreInstructionConstraints({
1094
- allowedVaults: params.allowedVaults,
1095
- allowedSyMints: params.allowedSyMints,
1096
- vaultsForSyMints: params.vaultsForSyMints,
1097
- actions: params.actions,
1098
- })
1099
-
1100
- return createProgramInteractionPolicy({
1101
- instructionsConstraints,
1102
- spendingLimits: params.spendingLimits,
1103
- threshold: params.threshold,
1104
- timeLock: params.timeLock,
1105
- })
1106
- }
1107
-
1108
- // ============================================================================
1109
- // Exponent Orderbook Policy Builders
1110
- // ============================================================================
1111
-
1112
- export const EXPONENT_ORDERBOOK_PROGRAM_ID = new PublicKey("XPBookgQTN2p8Yw1C2La35XkPMmZTCEYH77AdReVvK1")
1113
- export const MARGINFI_STANDARD_PROGRAM_ID = new PublicKey("XPMfipyhcbq3DBvgvxkbZY7GekwmGNJLMD3wdiCkBc7")
1114
- export const KAMINO_STANDARD_PROGRAM_ID = new PublicKey("XPK1ndTK1xrgRg99ifvdPP1exrx8D1mRXTuxBkkroCx")
1115
- export const JITO_RESTAKING_STANDARD_PROGRAM_ID = new PublicKey("XPJitopeUEhMZVF72CvswnwrS2U2akQvk5s26aEfWv2")
1116
- export const PERENA_STANDARD_PROGRAM_ID = new PublicKey("XPerenaJPyvnjseLCn7rgzxFEum6zX1k89C13SPTyGZ")
1117
- export const GENERIC_STANDARD_PROGRAM_ID = new PublicKey("XP1BRLn8eCYSygrd8er5P4GKdzqKbC3DLoSsS5UYVZy")
1118
-
1119
- /**
1120
- * Single-byte discriminators for Exponent Orderbook wrapper instructions.
1121
- * The orderbook uses single-byte discriminators, not 8-byte Anchor discriminators.
1122
- */
1123
- export const ORDERBOOK_DISCRIMINATORS = {
1124
- rawPostOffer: Buffer.from([1]),
1125
- rawMarketOffer: Buffer.from([3]),
1126
- wrapperPostOffer: Buffer.from([7]),
1127
- wrapperMarketOffer: Buffer.from([8]),
1128
- wrapperRemoveOffer: Buffer.from([9]),
1129
- wrapperWithdrawFunds: Buffer.from([11]),
1130
- }
1131
-
1132
- /**
1133
- * Account indices in Exponent Orderbook wrapper instructions.
1134
- * Used for setting up account constraints.
1135
- */
1136
- export const ORDERBOOK_ACCOUNT_INDICES = {
1137
- // Common to all wrapper instructions
1138
- trader: 0,
1139
- orderbook: 1,
1140
- vault: 2,
1141
- }
1142
-
1143
- /** Orderbook actions that can be included in a policy */
1144
- export type OrderbookPolicyAction =
1145
- | "rawPostOffer"
1146
- | "rawMarketOffer"
1147
- | "postOffer"
1148
- | "marketOffer"
1149
- | "removeOffer"
1150
- | "withdrawFunds"
1151
-
1152
- /**
1153
- * Creates instruction constraints for Exponent Orderbook operations.
1154
- *
1155
- * When SY mints are provided, the vault account (account index 2) is constrained
1156
- * by reading its mintSy field from account data instead of hardcoding vault PDAs.
1157
- *
1158
- * @example
1159
- * ```ts
1160
- * const constraints = createOrderbookInstructionConstraints({
1161
- * allowedSyMints: [BULKSOL_SY_MINT],
1162
- * actions: ["postOffer", "marketOffer", "removeOffer", "withdrawFunds"],
1163
- * })
1164
- * ```
1165
- */
1166
- export function createOrderbookInstructionConstraints(params: {
1167
- /** SY mints that are allowed via the vault account's mintSy field */
1168
- allowedSyMints: PublicKey[]
1169
- /** Which orderbook actions to allow */
1170
- actions: OrderbookPolicyAction[]
1171
- }): InstructionConstraint[] {
1172
- const instructionsConstraints: InstructionConstraint[] = []
1173
- const accountConstraintVariants = resolveExponentAccountConstraintVariants({
1174
- accountIndex: ORDERBOOK_ACCOUNT_INDICES.vault,
1175
- allowedSyMints: params.allowedSyMints,
1176
- })
1177
-
1178
- for (const action of params.actions) {
1179
- switch (action) {
1180
- case "rawPostOffer":
1181
- accountConstraintVariants.forEach((accountConstraints) => {
1182
- instructionsConstraints.push(
1183
- createInstructionConstraint({
1184
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1185
- accountConstraints,
1186
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.rawPostOffer)],
1187
- }),
1188
- )
1189
- })
1190
- break
1191
- case "rawMarketOffer":
1192
- accountConstraintVariants.forEach((accountConstraints) => {
1193
- instructionsConstraints.push(
1194
- createInstructionConstraint({
1195
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1196
- accountConstraints,
1197
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.rawMarketOffer)],
1198
- }),
1199
- )
1200
- })
1201
- break
1202
- case "postOffer":
1203
- accountConstraintVariants.forEach((accountConstraints) => {
1204
- instructionsConstraints.push(
1205
- createInstructionConstraint({
1206
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1207
- accountConstraints,
1208
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.wrapperPostOffer)],
1209
- }),
1210
- )
1211
- })
1212
- break
1213
- case "marketOffer":
1214
- accountConstraintVariants.forEach((accountConstraints) => {
1215
- instructionsConstraints.push(
1216
- createInstructionConstraint({
1217
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1218
- accountConstraints,
1219
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.wrapperMarketOffer)],
1220
- }),
1221
- )
1222
- })
1223
- break
1224
- case "removeOffer":
1225
- accountConstraintVariants.forEach((accountConstraints) => {
1226
- instructionsConstraints.push(
1227
- createInstructionConstraint({
1228
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1229
- accountConstraints,
1230
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.wrapperRemoveOffer)],
1231
- }),
1232
- )
1233
- })
1234
- break
1235
- case "withdrawFunds":
1236
- accountConstraintVariants.forEach((accountConstraints) => {
1237
- instructionsConstraints.push(
1238
- createInstructionConstraint({
1239
- programId: EXPONENT_ORDERBOOK_PROGRAM_ID,
1240
- accountConstraints,
1241
- dataConstraints: [createDiscriminatorConstraint(ORDERBOOK_DISCRIMINATORS.wrapperWithdrawFunds)],
1242
- }),
1243
- )
1244
- })
1245
- break
1246
- }
1247
- }
1248
-
1249
- return instructionsConstraints
1250
- }
1251
-
1252
- export const STANDARD_PROGRAM_DISCRIMINATORS = {
1253
- mint: Buffer.from([1]),
1254
- redeem: Buffer.from([2]),
1255
- }
1256
-
1257
- type StandardProgramAccountIndices = {
1258
- mint: {
1259
- mintSy: number
1260
- }
1261
- redeem: {
1262
- mintSy: number
1263
- }
1264
- }
1265
-
1266
- export const STANDARD_PROGRAM_ACCOUNT_INDICES: Record<string, StandardProgramAccountIndices> = {
1267
- [MARGINFI_STANDARD_PROGRAM_ID.toBase58()]: {
1268
- mint: { mintSy: 2 },
1269
- redeem: { mintSy: 5 },
1270
- },
1271
- [KAMINO_STANDARD_PROGRAM_ID.toBase58()]: {
1272
- mint: { mintSy: 6 },
1273
- redeem: { mintSy: 4 },
1274
- },
1275
- [JITO_RESTAKING_STANDARD_PROGRAM_ID.toBase58()]: {
1276
- mint: { mintSy: 2 },
1277
- redeem: { mintSy: 6 },
1278
- },
1279
- [PERENA_STANDARD_PROGRAM_ID.toBase58()]: {
1280
- mint: { mintSy: 2 },
1281
- redeem: { mintSy: 6 },
1282
- },
1283
- [GENERIC_STANDARD_PROGRAM_ID.toBase58()]: {
1284
- mint: { mintSy: 2 },
1285
- redeem: { mintSy: 5 },
1286
- },
1287
- }
1288
-
1289
- export type StandardProgramPolicyAction = "mintSy" | "redeemSy"
1290
-
1291
- export type AllowedSyMintProgram = {
1292
- syMint: PublicKey
1293
- programId: PublicKey
1294
- }
1295
-
1296
- export function createStandardProgramInstructionConstraints(params: {
1297
- allowedSyMints: AllowedSyMintProgram[]
1298
- actions: StandardProgramPolicyAction[]
1299
- }): InstructionConstraint[] {
1300
- const instructionsConstraints: InstructionConstraint[] = []
1301
-
1302
- for (const action of params.actions) {
1303
- for (const allowedMint of params.allowedSyMints) {
1304
- const indices = STANDARD_PROGRAM_ACCOUNT_INDICES[allowedMint.programId.toBase58()]
1305
- if (!indices) {
1306
- continue
1307
- }
1308
-
1309
- const mintAccountIndex = action === "mintSy" ? indices.mint.mintSy : indices.redeem.mintSy
1310
- const discriminator =
1311
- action === "mintSy" ? STANDARD_PROGRAM_DISCRIMINATORS.mint : STANDARD_PROGRAM_DISCRIMINATORS.redeem
1312
-
1313
- instructionsConstraints.push(
1314
- createInstructionConstraint({
1315
- programId: allowedMint.programId,
1316
- accountConstraints: [createAccountConstraint(mintAccountIndex, [allowedMint.syMint])],
1317
- dataConstraints: [createDiscriminatorConstraint(discriminator)],
1318
- }),
1319
- )
1320
- }
1321
- }
1322
-
1323
- return instructionsConstraints
1324
- }
1325
-
1326
- export function createStandardProgramPolicy(params: {
1327
- allowedSyMints: AllowedSyMintProgram[]
1328
- actions: StandardProgramPolicyAction[]
1329
- spendingLimits?: SpendingLimit[]
1330
- threshold?: number
1331
- timeLock?: number
1332
- }): PolicyConfig {
1333
- return createProgramInteractionPolicy({
1334
- instructionsConstraints: createStandardProgramInstructionConstraints({
1335
- allowedSyMints: params.allowedSyMints,
1336
- actions: params.actions,
1337
- }),
1338
- spendingLimits: params.spendingLimits,
1339
- threshold: params.threshold,
1340
- timeLock: params.timeLock,
1341
- })
1342
- }
1343
-
1344
- /**
1345
- * Creates a complete Exponent Orderbook policy configuration.
1346
- *
1347
- * @example
1348
- * ```ts
1349
- * const policy = createOrderbookPolicy({
1350
- * allowedSyMints: [BULKSOL_SY_MINT],
1351
- * actions: ["postOffer", "marketOffer", "removeOffer", "withdrawFunds"],
1352
- * })
1353
- * ```
1354
- */
1355
- // ============================================================================
1356
- // Titan Swap Policy Builders
1357
- // ============================================================================
1358
-
1359
- export const TITAN_PROGRAM_ID = new PublicKey("T1TANpTeScyeqVzzgNViGDNrkQ6qHz9KrSBS4aNXvGT")
1360
-
1361
- export const TITAN_DISCRIMINATORS = {
1362
- swapRouteV2: Buffer.from([249, 91, 84, 33, 69, 22, 0, 135]),
1363
- }
1364
-
1365
- export const TITAN_ACCOUNT_INDICES = {
1366
- inputMint: 2,
1367
- outputMint: 4,
1368
- }
1369
-
1370
- /**
1371
- * Creates a policy that allows Titan SwapRouteV2 swaps.
1372
- * Optional mint constraints can be applied to both the input and output mint.
1373
- * The on-chain post-hook validator separately checks that input/output token
1374
- * accounts are vault-owned tracked accounts.
1375
- */
1376
- export function createTitanSwapPolicy(params?: {
1377
- /** Allowed input/output mints (optional) */
1378
- allowedMints?: PublicKey[]
1379
- /** Threshold (default 1) */
1380
- threshold?: number
1381
- /** Time lock in seconds (default 0) */
1382
- timeLock?: number
1383
- }): PolicyConfig {
1384
- const accountConstraints: AccountConstraint[] = []
1385
-
1386
- if (params?.allowedMints && params.allowedMints.length > 0) {
1387
- accountConstraints.push(
1388
- createAccountConstraint(TITAN_ACCOUNT_INDICES.inputMint, params.allowedMints),
1389
- createAccountConstraint(TITAN_ACCOUNT_INDICES.outputMint, params.allowedMints),
1390
- )
1391
- }
1392
-
1393
- const instructionConstraint = createInstructionConstraint({
1394
- programId: TITAN_PROGRAM_ID,
1395
- accountConstraints,
1396
- dataConstraints: [createDiscriminatorConstraint(TITAN_DISCRIMINATORS.swapRouteV2)],
1397
- })
1398
-
1399
- return createProgramInteractionPolicy({
1400
- instructionsConstraints: [instructionConstraint],
1401
- threshold: params?.threshold,
1402
- timeLock: params?.timeLock,
1403
- })
1404
- }
1405
-
1406
- // ============================================================================
1407
- // Loopscale Policy Builders
1408
- // ============================================================================
1409
-
1410
- /** Loopscale lending protocol program ID. */
1411
- export const LOOPSCALE_PROGRAM_ID = new PublicKey("1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78")
1412
-
1413
- /**
1414
- * Derive a Loopscale Strategy PDA.
1415
- * seeds = ["strategy", nonce] where nonce is a Pubkey (keypair generated at creation).
1416
- */
1417
- export function deriveLoopscaleStrategyAddress(nonce: PublicKey): [PublicKey, number] {
1418
- return PublicKey.findProgramAddressSync(
1419
- [Buffer.from("strategy"), nonce.toBytes()],
1420
- LOOPSCALE_PROGRAM_ID,
1421
- )
1422
- }
1423
-
1424
- /**
1425
- * Derive a Loopscale Loan PDA.
1426
- * seeds = [borrower, nonce] where nonce is a u64 (typically current timestamp).
1427
- */
1428
- export function deriveLoopscaleLoanAddress(borrower: PublicKey, nonce: bigint): [PublicKey, number] {
1429
- const nonceBuf = Buffer.alloc(8)
1430
- nonceBuf.writeBigUInt64LE(nonce)
1431
- return PublicKey.findProgramAddressSync(
1432
- [borrower.toBytes(), nonceBuf],
1433
- LOOPSCALE_PROGRAM_ID,
1434
- )
1435
- }
1436
-
1437
- /**
1438
- * 8-byte Anchor discriminators for Loopscale instructions (loans + strategies).
1439
- * Must match the on-chain constants in `interaction_validations/loopscale.rs`.
1440
- */
1441
- export const LOOPSCALE_DISCRIMINATORS = {
1442
- createLoan: Buffer.from([166, 131, 118, 219, 138, 218, 206, 140]),
1443
- depositCollateral: Buffer.from([156, 131, 142, 116, 146, 247, 162, 120]),
1444
- borrowPrincipal: Buffer.from([106, 10, 38, 204, 139, 188, 124, 50]),
1445
- repayPrincipal: Buffer.from([229, 67, 83, 65, 77, 84, 80, 141]),
1446
- withdrawCollateral: Buffer.from([115, 135, 168, 106, 139, 214, 138, 150]),
1447
- closeLoan: Buffer.from([96, 114, 111, 204, 149, 228, 235, 124]),
1448
- createStrategy: Buffer.from([152, 160, 107, 148, 245, 190, 127, 224]),
1449
- depositStrategy: Buffer.from([246, 82, 57, 226, 131, 222, 253, 249]),
1450
- withdrawStrategy: Buffer.from([31, 45, 162, 5, 193, 217, 134, 188]),
1451
- closeStrategy: Buffer.from([56, 247, 170, 246, 89, 221, 134, 200]),
1452
- updateWeightMatrix: Buffer.from([252, 166, 37, 207, 154, 83, 187, 128]),
1453
- lockLoan: Buffer.from([28, 101, 52, 240, 146, 230, 95, 22]),
1454
- unlockLoan: Buffer.from([121, 226, 178, 98, 215, 209, 240, 38]),
1455
- updateStrategy: Buffer.from([16, 76, 138, 179, 171, 112, 196, 21]),
1456
- refinanceLedger: Buffer.from([103, 41, 134, 43, 140, 152, 253, 74]),
1457
- }
1458
-
1459
- /**
1460
- * Account indices for Loopscale instructions (loans + strategies), matching
1461
- * the on-chain validation in `interaction_validations/loopscale.rs`.
1462
- */
1463
- export const LOOPSCALE_ACCOUNT_INDICES = {
1464
- /** Loan account (BORROWER side) — index 3 for loan instructions, index 2 for update_weight_matrix */
1465
- loan: 3,
1466
- updateWeightMatrixLoan: 2,
1467
- /** Mint indices vary per instruction */
1468
- depositCollateralMint: 6,
1469
- borrowPrincipalMint: 6,
1470
- repayPrincipalMint: 6,
1471
- withdrawCollateralMint: 7,
1472
- strategy: 3,
1473
- depositStrategyMint: 4,
1474
- withdrawStrategyMint: 4,
1475
- lockLoanLoan: 3,
1476
- unlockLoanLoan: 1,
1477
- refinanceLedgerLoan: 2,
1478
- }
1479
-
1480
- export type LoopscalePolicyAction =
1481
- | "createLoan"
1482
- | "depositCollateral"
1483
- | "borrowPrincipal"
1484
- | "repayPrincipal"
1485
- | "withdrawCollateral"
1486
- | "closeLoan"
1487
- | "updateWeightMatrix"
1488
- | "lockLoan"
1489
- | "unlockLoan"
1490
- | "createStrategy"
1491
- | "depositStrategy"
1492
- | "withdrawStrategy"
1493
- | "closeStrategy"
1494
- | "updateStrategy"
1495
- | "refinanceLedger"
1496
-
1497
- const LOOPSCALE_ACTION_DISCRIMINATOR_MAP: Record<LoopscalePolicyAction, Buffer> = {
1498
- createLoan: LOOPSCALE_DISCRIMINATORS.createLoan,
1499
- depositCollateral: LOOPSCALE_DISCRIMINATORS.depositCollateral,
1500
- borrowPrincipal: LOOPSCALE_DISCRIMINATORS.borrowPrincipal,
1501
- repayPrincipal: LOOPSCALE_DISCRIMINATORS.repayPrincipal,
1502
- withdrawCollateral: LOOPSCALE_DISCRIMINATORS.withdrawCollateral,
1503
- closeLoan: LOOPSCALE_DISCRIMINATORS.closeLoan,
1504
- updateWeightMatrix: LOOPSCALE_DISCRIMINATORS.updateWeightMatrix,
1505
- lockLoan: LOOPSCALE_DISCRIMINATORS.lockLoan,
1506
- unlockLoan: LOOPSCALE_DISCRIMINATORS.unlockLoan,
1507
- createStrategy: LOOPSCALE_DISCRIMINATORS.createStrategy,
1508
- depositStrategy: LOOPSCALE_DISCRIMINATORS.depositStrategy,
1509
- withdrawStrategy: LOOPSCALE_DISCRIMINATORS.withdrawStrategy,
1510
- closeStrategy: LOOPSCALE_DISCRIMINATORS.closeStrategy,
1511
- updateStrategy: LOOPSCALE_DISCRIMINATORS.updateStrategy,
1512
- refinanceLedger: LOOPSCALE_DISCRIMINATORS.refinanceLedger,
1513
- }
1514
-
1515
- /** Mint account index for actions that have one, or undefined for create/close. */
1516
- const LOOPSCALE_ACTION_MINT_INDEX: Partial<Record<LoopscalePolicyAction, number>> = {
1517
- depositCollateral: LOOPSCALE_ACCOUNT_INDICES.depositCollateralMint,
1518
- borrowPrincipal: LOOPSCALE_ACCOUNT_INDICES.borrowPrincipalMint,
1519
- repayPrincipal: LOOPSCALE_ACCOUNT_INDICES.repayPrincipalMint,
1520
- withdrawCollateral: LOOPSCALE_ACCOUNT_INDICES.withdrawCollateralMint,
1521
- depositStrategy: LOOPSCALE_ACCOUNT_INDICES.depositStrategyMint,
1522
- withdrawStrategy: LOOPSCALE_ACCOUNT_INDICES.withdrawStrategyMint,
1523
- }
1524
-
1525
- /**
1526
- * Creates a policy that allows Loopscale interactions (loans and/or strategies).
1527
- *
1528
- * Loans (BORROWER side): create/close loan, deposit/withdraw collateral, borrow/repay principal.
1529
- * Strategies (LENDER side): create/close strategy, deposit/withdraw into strategy.
1530
- *
1531
- * Optional mint constraints can restrict which collateral/principal mints are
1532
- * allowed. The on-chain post-hook validator separately checks that positions are
1533
- * tracked and that mints have matching token entries on the vault.
1534
- *
1535
- * @param params.actions - Which Loopscale actions to allow (default: all 15 — 10 loan + 5 strategy).
1536
- * @param params.allowedMints - Optional list of allowed mints for deposit/borrow/repay/withdraw
1537
- * @param params.threshold - Number of signers required (default 1)
1538
- * @param params.timeLock - Time lock in seconds (default 0)
1539
- *
1540
- * @example
1541
- * ```ts
1542
- * // Allow all Loopscale loan actions (borrower side)
1543
- * const policy = createLoopscalePolicy()
1544
- *
1545
- * // Allow only strategy actions (lender side)
1546
- * const policy = createLoopscalePolicy({
1547
- * actions: ["createStrategy", "depositStrategy", "withdrawStrategy", "closeStrategy"],
1548
- * })
1549
- * ```
1550
- */
1551
- export function createLoopscalePolicy(params?: {
1552
- /** Which Loopscale actions to allow (default: all 15) */
1553
- actions?: LoopscalePolicyAction[]
1554
- /** Allowed mints for deposit/borrow/repay/withdraw (optional) */
1555
- allowedMints?: PublicKey[]
1556
- /** Threshold (default 1) */
1557
- threshold?: number
1558
- /** Time lock in seconds (default 0) */
1559
- timeLock?: number
1560
- }): PolicyConfig {
1561
- const actions: LoopscalePolicyAction[] = params?.actions ?? [
1562
- // Loan actions (BORROWER side)
1563
- "createLoan",
1564
- "depositCollateral",
1565
- "borrowPrincipal",
1566
- "repayPrincipal",
1567
- "withdrawCollateral",
1568
- "closeLoan",
1569
- "updateWeightMatrix",
1570
- "lockLoan",
1571
- "unlockLoan",
1572
- // Strategy actions (LENDER side)
1573
- "createStrategy",
1574
- "depositStrategy",
1575
- "withdrawStrategy",
1576
- "closeStrategy",
1577
- "updateStrategy",
1578
- "refinanceLedger",
1579
- ]
1580
-
1581
- const instructionsConstraints: InstructionConstraint[] = actions.map((action) => {
1582
- const accountConstraints: AccountConstraint[] = []
1583
-
1584
- // Add mint constraints for actions that have a mint account
1585
- const mintIndex = LOOPSCALE_ACTION_MINT_INDEX[action]
1586
- if (mintIndex !== undefined && params?.allowedMints && params.allowedMints.length > 0) {
1587
- accountConstraints.push(createAccountConstraint(mintIndex, params.allowedMints))
1588
- }
1589
-
1590
- return createInstructionConstraint({
1591
- programId: LOOPSCALE_PROGRAM_ID,
1592
- accountConstraints,
1593
- dataConstraints: [createDiscriminatorConstraint(LOOPSCALE_ACTION_DISCRIMINATOR_MAP[action])],
1594
- })
1595
- })
1596
-
1597
- return createProgramInteractionPolicy({
1598
- instructionsConstraints,
1599
- threshold: params?.threshold,
1600
- timeLock: params?.timeLock,
1601
- })
1602
- }
1603
-
1604
- export function createOrderbookPolicy(params: {
1605
- /** SY mints that are allowed */
1606
- allowedSyMints: PublicKey[]
1607
- /** Which orderbook actions to allow */
1608
- actions: OrderbookPolicyAction[]
1609
- /** Spending limits (optional) */
1610
- spendingLimits?: SpendingLimit[]
1611
- /** Threshold (number of signers required, typically 1) */
1612
- threshold?: number
1613
- /** Time lock in seconds (typically 0 for instant execution) */
1614
- timeLock?: number
1615
- }): PolicyConfig {
1616
- const instructionsConstraints = createOrderbookInstructionConstraints({
1617
- allowedSyMints: params.allowedSyMints,
1618
- actions: params.actions,
1619
- })
1620
-
1621
- return createProgramInteractionPolicy({
1622
- instructionsConstraints,
1623
- spendingLimits: params.spendingLimits,
1624
- threshold: params.threshold,
1625
- timeLock: params.timeLock,
1626
- })
1627
- }
1628
-
1629
- // ============================================================================
1630
- // CLMM Policy Builders
1631
- // ============================================================================
1632
-
1633
- /** Exponent CLMM program ID. */
1634
- export const EXPONENT_CLMM_PROGRAM_ID = new PublicKey("XPC1MM4dYACDfykNuXYZ5una2DsMDWL24CrYubCvarC")
1635
-
1636
- /**
1637
- * Single-byte discriminators for CLMM instructions.
1638
- * These correspond to the instruction indices in the CLMM program.
1639
- */
1640
- export const CLMM_DISCRIMINATORS = {
1641
- depositLiquidity: Buffer.from([4]),
1642
- addLiquidity: Buffer.from([25]),
1643
- withdrawLiquidity: Buffer.from([5]),
1644
- tradePt: Buffer.from([3]),
1645
- tradePtExactOut: Buffer.from([24]),
1646
- buyYt: Buffer.from([12]),
1647
- sellYt: Buffer.from([13]),
1648
- claimFarmEmission: Buffer.from([6]),
1649
- }
1650
-
1651
- /**
1652
- * Account indices for CLMM instructions (matching the on-chain validation in
1653
- * `interaction_validations/clmm.rs`). Useful for building fine-grained
1654
- * account constraints in policies.
1655
- */
1656
- export const CLMM_ACCOUNT_INDICES = {
1657
- depositLiquidity: { depositor: 0, market: 1, ticks: 2, lpPosition: 3, tokenPtSrc: 4, tokenSySrc: 5 },
1658
- addLiquidity: { owner: 0, market: 1, ticks: 2, lpPosition: 3, tokenPtSrc: 4, tokenSySrc: 5 },
1659
- withdrawLiquidity: { owner: 0, market: 1, lpPosition: 2, ticks: 3, tokenPtDst: 4, tokenSyDst: 5 },
1660
- tradePt: { trader: 0, market: 1, ticks: 2, tokenSyTrader: 3, tokenPtTrader: 4 },
1661
- tradePtExactOut: { trader: 0, market: 1, ticks: 2, tokenSyTrader: 3, tokenPtTrader: 4 },
1662
- buyYt: { trader: 0, market: 1, ticks: 2, tokenSyTrader: 3, tokenYtTrader: 4, tokenPtTrader: 5 },
1663
- sellYt: { trader: 0, market: 1, ticks: 2, tokenYtTrader: 3, tokenPtTrader: 4, tokenSyTrader: 5 },
1664
- claimFarmEmission: { owner: 0, market: 1, ticks: 2, lpPosition: 3, tokenDst: 4, mint: 5, tokenFarm: 6, tokenProgram: 7 },
1665
- }
1666
-
1667
- /**
1668
- * Creates a policy that allows all Exponent CLMM interactions: deposit/add/withdraw
1669
- * liquidity, PT/SY swaps, YT trades, and farm emission claims.
1670
- *
1671
- * Optional market constraints can be applied to restrict which CLMM markets
1672
- * the policy applies to. The on-chain post-hook validator separately checks
1673
- * that token accounts are vault-owned tracked accounts.
1674
- *
1675
- * @param params.allowedMarkets - Optional list of allowed CLMM market addresses
1676
- * @param params.threshold - Number of signers required (default 1)
1677
- * @param params.timeLock - Time lock in seconds (default 0)
1678
- *
1679
- * @example
1680
- * ```ts
1681
- * // Allow all CLMM actions on any market
1682
- * const policy = createClmmPolicy()
1683
- *
1684
- * // Allow CLMM actions only on specific markets
1685
- * const policy = createClmmPolicy({
1686
- * allowedMarkets: [BULKSOL_CLMM_MARKET, ONYC_CLMM_MARKET],
1687
- * })
1688
- * ```
1689
- */
1690
- export function createClmmPolicy(params?: {
1691
- /** Allowed CLMM market addresses (optional — if omitted, all markets are allowed) */
1692
- allowedMarkets?: PublicKey[]
1693
- /** Threshold (default 1) */
1694
- threshold?: number
1695
- /** Time lock in seconds (default 0) */
1696
- timeLock?: number
1697
- }): PolicyConfig {
1698
- const allDiscriminators = [
1699
- CLMM_DISCRIMINATORS.depositLiquidity,
1700
- CLMM_DISCRIMINATORS.addLiquidity,
1701
- CLMM_DISCRIMINATORS.withdrawLiquidity,
1702
- CLMM_DISCRIMINATORS.tradePt,
1703
- CLMM_DISCRIMINATORS.tradePtExactOut,
1704
- CLMM_DISCRIMINATORS.buyYt,
1705
- CLMM_DISCRIMINATORS.sellYt,
1706
- CLMM_DISCRIMINATORS.claimFarmEmission,
1707
- ]
1708
-
1709
- const instructionsConstraints: InstructionConstraint[] = allDiscriminators.map((disc) => {
1710
- const accountConstraints: AccountConstraint[] = []
1711
-
1712
- // Market account is at index 1 for all CLMM instructions
1713
- if (params?.allowedMarkets && params.allowedMarkets.length > 0) {
1714
- accountConstraints.push(createAccountConstraint(1, params.allowedMarkets))
1715
- }
1716
-
1717
- return createInstructionConstraint({
1718
- programId: EXPONENT_CLMM_PROGRAM_ID,
1719
- accountConstraints,
1720
- dataConstraints: [createDiscriminatorConstraint(disc)],
1721
- })
1722
- })
1723
-
1724
- return createProgramInteractionPolicy({
1725
- instructionsConstraints,
1726
- threshold: params?.threshold,
1727
- timeLock: params?.timeLock,
1728
- })
1729
- }