@reflectmoney/stable.ts 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/README.md +257 -126
  2. package/dist/classes/Migration.d.ts +66 -0
  3. package/dist/classes/Migration.js +95 -0
  4. package/dist/classes/PdaClient.d.ts +46 -68
  5. package/dist/classes/PdaClient.js +161 -141
  6. package/dist/classes/Reflect.d.ts +19 -5
  7. package/dist/classes/Reflect.js +23 -6
  8. package/dist/classes/ReflectKeeper.d.ts +73 -60
  9. package/dist/classes/ReflectKeeper.js +181 -164
  10. package/dist/classes/ReflectTokenisedBond.d.ts +37 -50
  11. package/dist/classes/ReflectTokenisedBond.js +70 -130
  12. package/dist/classes/Stablecoin.d.ts +90 -130
  13. package/dist/classes/Stablecoin.js +134 -247
  14. package/dist/classes/index.d.ts +1 -0
  15. package/dist/classes/index.js +1 -0
  16. package/dist/constants/devnet.d.ts +4 -4
  17. package/dist/constants/devnet.js +5 -5
  18. package/dist/constants/drift.d.ts +8 -6
  19. package/dist/constants/drift.js +12 -12
  20. package/dist/constants/index.d.ts +4 -2
  21. package/dist/constants/index.js +4 -2
  22. package/dist/constants/jupiter.d.ts +12 -4
  23. package/dist/constants/jupiter.js +17 -6
  24. package/dist/constants/kamino.d.ts +14 -0
  25. package/dist/constants/kamino.js +39 -0
  26. package/dist/constants/lookupTables.d.ts +3 -4
  27. package/dist/constants/lookupTables.js +5 -5
  28. package/dist/constants/mock.d.ts +2 -0
  29. package/dist/constants/mock.js +5 -0
  30. package/dist/constants/usdc.d.ts +6 -7
  31. package/dist/constants/usdc.js +8 -9
  32. package/dist/constants/usdt.d.ts +6 -0
  33. package/dist/constants/usdt.js +9 -0
  34. package/dist/constants/wsol.d.ts +6 -6
  35. package/dist/constants/wsol.js +6 -6
  36. package/dist/generated/reflect_main/accounts/driftUsdcController.d.ts +31 -0
  37. package/dist/generated/reflect_main/accounts/driftUsdcController.js +77 -0
  38. package/dist/generated/reflect_main/accounts/index.d.ts +11 -38
  39. package/dist/generated/reflect_main/accounts/index.js +11 -39
  40. package/dist/generated/reflect_main/accounts/main.d.ts +62 -0
  41. package/dist/generated/reflect_main/accounts/main.js +91 -0
  42. package/dist/generated/reflect_main/accounts/strategyController.d.ts +31 -0
  43. package/dist/generated/reflect_main/accounts/strategyController.js +77 -0
  44. package/dist/generated/reflect_main/accounts/userPermissions.d.ts +44 -0
  45. package/dist/generated/reflect_main/accounts/userPermissions.js +89 -0
  46. package/dist/generated/reflect_main/errors/index.d.ts +5 -966
  47. package/dist/generated/reflect_main/errors/index.js +21 -1663
  48. package/dist/generated/reflect_main/errors/reflectMain.d.ts +215 -0
  49. package/dist/generated/reflect_main/errors/reflectMain.js +323 -0
  50. package/dist/generated/reflect_main/index.d.ts +9 -16
  51. package/dist/generated/reflect_main/index.js +8 -16
  52. package/dist/generated/reflect_main/instructions/addLstDrift.d.ts +62 -45
  53. package/dist/generated/reflect_main/instructions/addLstDrift.js +155 -104
  54. package/dist/generated/reflect_main/instructions/addSubAccount.d.ts +74 -50
  55. package/dist/generated/reflect_main/instructions/addSubAccount.js +166 -119
  56. package/dist/generated/reflect_main/instructions/captureSpreadDrift.d.ts +70 -59
  57. package/dist/generated/reflect_main/instructions/captureSpreadDrift.js +167 -115
  58. package/dist/generated/reflect_main/instructions/createAdminAccount.d.ts +53 -46
  59. package/dist/generated/reflect_main/instructions/createAdminAccount.js +135 -91
  60. package/dist/generated/reflect_main/instructions/createDriftUserAccount.d.ts +78 -0
  61. package/dist/generated/reflect_main/instructions/createDriftUserAccount.js +184 -0
  62. package/dist/generated/reflect_main/instructions/createDriftUserStatsAccount.d.ts +74 -0
  63. package/dist/generated/reflect_main/instructions/createDriftUserStatsAccount.js +173 -0
  64. package/dist/generated/reflect_main/instructions/createKaminoUserAccounts.d.ts +144 -0
  65. package/dist/generated/reflect_main/instructions/createKaminoUserAccounts.js +395 -0
  66. package/dist/generated/reflect_main/instructions/depositDrift.d.ts +96 -66
  67. package/dist/generated/reflect_main/instructions/depositDrift.js +190 -139
  68. package/dist/generated/reflect_main/instructions/freezeProgram.d.ts +56 -47
  69. package/dist/generated/reflect_main/instructions/freezeProgram.js +139 -94
  70. package/dist/generated/reflect_main/instructions/freezeProtocolAction.d.ts +57 -48
  71. package/dist/generated/reflect_main/instructions/freezeProtocolAction.js +140 -95
  72. package/dist/generated/reflect_main/instructions/freezeStrategyAction.d.ts +61 -51
  73. package/dist/generated/reflect_main/instructions/freezeStrategyAction.js +145 -101
  74. package/dist/generated/reflect_main/instructions/increaseAdminSize.d.ts +40 -45
  75. package/dist/generated/reflect_main/instructions/increaseAdminSize.js +81 -90
  76. package/dist/generated/reflect_main/instructions/index.d.ts +45 -33
  77. package/dist/generated/reflect_main/instructions/index.js +19 -7
  78. package/dist/generated/reflect_main/instructions/initDriftControllerS1.d.ts +70 -53
  79. package/dist/generated/reflect_main/instructions/initDriftControllerS1.js +163 -100
  80. package/dist/generated/reflect_main/instructions/initDriftControllerS2.d.ts +75 -0
  81. package/dist/generated/reflect_main/instructions/initDriftControllerS2.js +176 -0
  82. package/dist/generated/reflect_main/instructions/initDriftControllerS3.d.ts +70 -53
  83. package/dist/generated/reflect_main/instructions/initDriftControllerS3.js +163 -100
  84. package/dist/generated/reflect_main/instructions/initMain.d.ts +50 -39
  85. package/dist/generated/reflect_main/instructions/initMain.js +136 -91
  86. package/dist/generated/reflect_main/instructions/migrateS1.d.ts +58 -0
  87. package/dist/generated/reflect_main/instructions/migrateS1.js +145 -0
  88. package/dist/generated/reflect_main/instructions/mintDriftS1.d.ts +118 -81
  89. package/dist/generated/reflect_main/instructions/mintDriftS1.js +244 -169
  90. package/dist/generated/reflect_main/instructions/mintDriftS3.d.ts +118 -81
  91. package/dist/generated/reflect_main/instructions/mintDriftS3.js +244 -169
  92. package/dist/generated/reflect_main/instructions/mintStrategy1.d.ts +95 -0
  93. package/dist/generated/reflect_main/instructions/mintStrategy1.js +236 -0
  94. package/dist/generated/reflect_main/instructions/mintStrategy2.d.ts +95 -0
  95. package/dist/generated/reflect_main/instructions/mintStrategy2.js +236 -0
  96. package/dist/generated/reflect_main/instructions/rebalanceS1.d.ts +74 -0
  97. package/dist/generated/reflect_main/instructions/rebalanceS1.js +211 -0
  98. package/dist/generated/reflect_main/instructions/rebalanceS2.d.ts +74 -0
  99. package/dist/generated/reflect_main/instructions/rebalanceS2.js +211 -0
  100. package/dist/generated/reflect_main/instructions/redeemDriftS1.d.ts +121 -81
  101. package/dist/generated/reflect_main/instructions/redeemDriftS1.js +246 -170
  102. package/dist/generated/reflect_main/instructions/redeemDriftS3.d.ts +121 -81
  103. package/dist/generated/reflect_main/instructions/redeemDriftS3.js +246 -170
  104. package/dist/generated/reflect_main/instructions/redeemStrategy1.d.ts +95 -0
  105. package/dist/generated/reflect_main/instructions/redeemStrategy1.js +236 -0
  106. package/dist/generated/reflect_main/instructions/redeemStrategy2.d.ts +95 -0
  107. package/dist/generated/reflect_main/instructions/redeemStrategy2.js +236 -0
  108. package/dist/generated/reflect_main/instructions/settlePnl.d.ts +62 -46
  109. package/dist/generated/reflect_main/instructions/settlePnl.js +135 -104
  110. package/dist/generated/reflect_main/instructions/suspendSplProtocol.d.ts +57 -48
  111. package/dist/generated/reflect_main/instructions/suspendSplProtocol.js +139 -95
  112. package/dist/generated/reflect_main/instructions/suspendSplStrategy.d.ts +61 -50
  113. package/dist/generated/reflect_main/instructions/suspendSplStrategy.js +144 -100
  114. package/dist/generated/reflect_main/instructions/updateActionRoleProtocol.d.ts +60 -50
  115. package/dist/generated/reflect_main/instructions/updateActionRoleProtocol.js +142 -98
  116. package/dist/generated/reflect_main/instructions/updateActionRoleStrategy.d.ts +64 -52
  117. package/dist/generated/reflect_main/instructions/updateActionRoleStrategy.js +147 -103
  118. package/dist/generated/reflect_main/instructions/updateAttenuation.d.ts +65 -51
  119. package/dist/generated/reflect_main/instructions/updateAttenuation.js +146 -100
  120. package/dist/generated/reflect_main/instructions/updateCap.d.ts +58 -50
  121. package/dist/generated/reflect_main/instructions/updateCap.js +142 -98
  122. package/dist/generated/reflect_main/instructions/updateCapitalConductor.d.ts +79 -0
  123. package/dist/generated/reflect_main/instructions/updateCapitalConductor.js +161 -0
  124. package/dist/generated/reflect_main/instructions/updateRecipients.d.ts +62 -51
  125. package/dist/generated/reflect_main/instructions/updateRecipients.js +144 -100
  126. package/dist/generated/reflect_main/instructions/updateRoleHolderProtocol.d.ts +65 -53
  127. package/dist/generated/reflect_main/instructions/updateRoleHolderProtocol.js +154 -104
  128. package/dist/generated/reflect_main/instructions/updateRoleHolderStrategy.d.ts +65 -53
  129. package/dist/generated/reflect_main/instructions/updateRoleHolderStrategy.js +154 -104
  130. package/dist/generated/reflect_main/programs/index.d.ts +8 -0
  131. package/dist/generated/reflect_main/programs/index.js +24 -0
  132. package/dist/generated/reflect_main/programs/reflectMain.d.ts +139 -0
  133. package/dist/generated/reflect_main/programs/reflectMain.js +190 -0
  134. package/dist/generated/reflect_main/shared/index.d.ts +49 -0
  135. package/dist/generated/reflect_main/shared/index.js +90 -0
  136. package/dist/generated/reflect_main/types/accessControl.d.ts +24 -0
  137. package/dist/generated/reflect_main/types/accessControl.js +29 -0
  138. package/dist/generated/reflect_main/types/accessMap.d.ts +24 -0
  139. package/dist/generated/reflect_main/types/accessMap.js +35 -0
  140. package/dist/generated/reflect_main/types/action.d.ts +32 -0
  141. package/dist/generated/reflect_main/types/action.js +44 -0
  142. package/dist/generated/reflect_main/types/actionMapping.d.ts +22 -0
  143. package/dist/generated/reflect_main/types/actionMapping.js +31 -0
  144. package/dist/generated/reflect_main/types/addedProtocolActionRole.d.ts +20 -0
  145. package/dist/generated/reflect_main/types/addedProtocolActionRole.js +29 -0
  146. package/dist/generated/reflect_main/types/addedProtocolRoleHolder.d.ts +20 -0
  147. package/dist/generated/reflect_main/types/addedProtocolRoleHolder.js +29 -0
  148. package/dist/generated/reflect_main/types/addedStrategyActionRole.d.ts +22 -0
  149. package/dist/generated/reflect_main/types/addedStrategyActionRole.js +31 -0
  150. package/dist/generated/reflect_main/types/addedStrategyRoleHolder.d.ts +22 -0
  151. package/dist/generated/reflect_main/types/addedStrategyRoleHolder.js +31 -0
  152. package/dist/generated/reflect_main/types/attenuation.d.ts +16 -0
  153. package/dist/generated/reflect_main/types/attenuation.js +28 -0
  154. package/dist/generated/reflect_main/types/attenuationUpdated.d.ts +23 -0
  155. package/dist/generated/reflect_main/types/attenuationUpdated.js +32 -0
  156. package/dist/generated/reflect_main/types/autoCompound.d.ts +23 -0
  157. package/dist/generated/reflect_main/types/autoCompound.js +32 -0
  158. package/dist/generated/reflect_main/types/base.d.ts +38 -0
  159. package/dist/generated/reflect_main/types/base.js +47 -0
  160. package/dist/generated/reflect_main/types/capitalConductorComponent.d.ts +28 -0
  161. package/dist/generated/reflect_main/types/capitalConductorComponent.js +43 -0
  162. package/dist/generated/reflect_main/types/capture.d.ts +24 -0
  163. package/dist/generated/reflect_main/types/capture.js +33 -0
  164. package/dist/generated/reflect_main/types/component.d.ts +24 -0
  165. package/dist/generated/reflect_main/types/component.js +33 -0
  166. package/dist/generated/reflect_main/types/componentType.d.ts +24 -0
  167. package/dist/generated/reflect_main/types/componentType.js +36 -0
  168. package/dist/generated/reflect_main/types/currentProtocolBalance.d.ts +20 -0
  169. package/dist/generated/reflect_main/types/currentProtocolBalance.js +29 -0
  170. package/dist/generated/reflect_main/types/currentProtocolRatio.d.ts +24 -0
  171. package/dist/generated/reflect_main/types/currentProtocolRatio.js +33 -0
  172. package/dist/generated/reflect_main/types/driftSpotData.d.ts +17 -0
  173. package/dist/generated/reflect_main/types/driftSpotData.js +30 -0
  174. package/dist/generated/reflect_main/types/driftSpotMarketsComponent.d.ts +20 -0
  175. package/dist/generated/reflect_main/types/driftSpotMarketsComponent.js +29 -0
  176. package/dist/generated/reflect_main/types/driftSubAccountsComponent.d.ts +18 -0
  177. package/dist/generated/reflect_main/types/driftSubAccountsComponent.js +23 -0
  178. package/dist/generated/reflect_main/types/driftSubs.d.ts +17 -0
  179. package/dist/generated/reflect_main/types/driftSubs.js +30 -0
  180. package/dist/generated/reflect_main/types/dustThresholdUpdated.d.ts +21 -0
  181. package/dist/generated/reflect_main/types/dustThresholdUpdated.js +30 -0
  182. package/dist/generated/reflect_main/types/externals.d.ts +18 -0
  183. package/dist/generated/reflect_main/types/externals.js +23 -0
  184. package/dist/generated/reflect_main/types/flowControl.d.ts +20 -0
  185. package/dist/generated/reflect_main/types/flowControl.js +29 -0
  186. package/dist/generated/reflect_main/types/index.d.ts +76 -81
  187. package/dist/generated/reflect_main/types/index.js +76 -81
  188. package/dist/generated/reflect_main/types/issue.d.ts +39 -0
  189. package/dist/generated/reflect_main/types/issue.js +36 -0
  190. package/dist/generated/reflect_main/types/killSwitch.d.ts +20 -0
  191. package/dist/generated/reflect_main/types/killSwitch.js +22 -0
  192. package/dist/generated/reflect_main/types/levelRoles.d.ts +23 -0
  193. package/dist/generated/reflect_main/types/levelRoles.js +23 -0
  194. package/dist/generated/reflect_main/types/maxDeviationBpsUpdated.d.ts +17 -0
  195. package/dist/generated/reflect_main/types/maxDeviationBpsUpdated.js +30 -0
  196. package/dist/generated/reflect_main/types/minPerLegTransferUpdated.d.ts +21 -0
  197. package/dist/generated/reflect_main/types/minPerLegTransferUpdated.js +30 -0
  198. package/dist/generated/reflect_main/types/newAdminAccount.d.ts +15 -0
  199. package/dist/generated/reflect_main/types/newAdminAccount.js +22 -0
  200. package/dist/generated/reflect_main/types/penaltyScaleFactorUpdated.d.ts +17 -0
  201. package/dist/generated/reflect_main/types/penaltyScaleFactorUpdated.js +30 -0
  202. package/dist/generated/reflect_main/types/program.d.ts +22 -0
  203. package/dist/generated/reflect_main/types/program.js +31 -0
  204. package/dist/generated/reflect_main/types/programStatus.d.ts +16 -0
  205. package/dist/generated/reflect_main/types/programStatus.js +28 -0
  206. package/dist/generated/reflect_main/types/programStatusUpdate.d.ts +20 -0
  207. package/dist/generated/reflect_main/types/programStatusUpdate.js +29 -0
  208. package/dist/generated/reflect_main/types/protocolActionUpdate.d.ts +20 -0
  209. package/dist/generated/reflect_main/types/protocolActionUpdate.js +29 -0
  210. package/dist/generated/reflect_main/types/protocolRatiosUpdated.d.ts +22 -0
  211. package/dist/generated/reflect_main/types/protocolRatiosUpdated.js +31 -0
  212. package/dist/generated/reflect_main/types/rack.d.ts +18 -0
  213. package/dist/generated/reflect_main/types/rack.js +27 -0
  214. package/dist/generated/reflect_main/types/recipient.d.ts +19 -0
  215. package/dist/generated/reflect_main/types/recipient.js +28 -0
  216. package/dist/generated/reflect_main/types/recipients.d.ts +20 -0
  217. package/dist/generated/reflect_main/types/recipients.js +29 -0
  218. package/dist/generated/reflect_main/types/redeem.d.ts +39 -0
  219. package/dist/generated/reflect_main/types/redeem.js +36 -0
  220. package/dist/generated/reflect_main/types/removedProtocolActionRole.d.ts +20 -0
  221. package/dist/generated/reflect_main/types/removedProtocolActionRole.js +29 -0
  222. package/dist/generated/reflect_main/types/removedProtocolRoleHolder.d.ts +20 -0
  223. package/dist/generated/reflect_main/types/removedProtocolRoleHolder.js +29 -0
  224. package/dist/generated/reflect_main/types/removedStrategyActionRole.d.ts +22 -0
  225. package/dist/generated/reflect_main/types/removedStrategyActionRole.js +31 -0
  226. package/dist/generated/reflect_main/types/removedStrategyRoleHolder.d.ts +22 -0
  227. package/dist/generated/reflect_main/types/removedStrategyRoleHolder.js +31 -0
  228. package/dist/generated/reflect_main/types/role.d.ts +22 -0
  229. package/dist/generated/reflect_main/types/role.js +34 -0
  230. package/dist/generated/reflect_main/types/settlement.d.ts +17 -0
  231. package/dist/generated/reflect_main/types/settlement.js +30 -0
  232. package/dist/generated/reflect_main/types/splBase.d.ts +17 -0
  233. package/dist/generated/reflect_main/types/splBase.js +30 -0
  234. package/dist/generated/reflect_main/types/splMain.d.ts +43 -0
  235. package/dist/generated/reflect_main/types/splMain.js +44 -0
  236. package/dist/generated/reflect_main/types/splSupport.d.ts +15 -0
  237. package/dist/generated/reflect_main/types/splSupport.js +22 -0
  238. package/dist/generated/reflect_main/types/splSupportStrategy.d.ts +16 -0
  239. package/dist/generated/reflect_main/types/splSupportStrategy.js +28 -0
  240. package/dist/generated/reflect_main/types/splSuspendProtocol.d.ts +16 -0
  241. package/dist/generated/reflect_main/types/splSuspendProtocol.js +28 -0
  242. package/dist/generated/reflect_main/types/splSuspendStrategy.d.ts +17 -0
  243. package/dist/generated/reflect_main/types/splSuspendStrategy.js +30 -0
  244. package/dist/generated/reflect_main/types/spls.d.ts +20 -0
  245. package/dist/generated/reflect_main/types/spls.js +29 -0
  246. package/dist/generated/reflect_main/types/spotDepositDrift.d.ts +19 -0
  247. package/dist/generated/reflect_main/types/spotDepositDrift.js +28 -0
  248. package/dist/generated/reflect_main/types/spreadCapture.d.ts +27 -0
  249. package/dist/generated/reflect_main/types/spreadCapture.js +30 -0
  250. package/dist/generated/reflect_main/types/status.d.ts +17 -0
  251. package/dist/generated/reflect_main/types/status.js +29 -0
  252. package/dist/generated/reflect_main/types/strategyActionUpdate.d.ts +22 -0
  253. package/dist/generated/reflect_main/types/strategyActionUpdate.js +31 -0
  254. package/dist/generated/reflect_main/types/strategyNegative.d.ts +21 -0
  255. package/dist/generated/reflect_main/types/strategyNegative.js +28 -0
  256. package/dist/generated/reflect_main/types/strategyPadding.d.ts +15 -0
  257. package/dist/generated/reflect_main/types/strategyPadding.js +26 -0
  258. package/dist/generated/reflect_main/types/strategyRoleEntry.d.ts +24 -0
  259. package/dist/generated/reflect_main/types/strategyRoleEntry.js +29 -0
  260. package/dist/generated/reflect_main/types/subsVec.d.ts +20 -0
  261. package/dist/generated/reflect_main/types/subsVec.js +29 -0
  262. package/dist/generated/reflect_main/types/update.d.ts +16 -0
  263. package/dist/generated/reflect_main/types/update.js +28 -0
  264. package/dist/generated/reflect_main/types/updateCap.d.ts +21 -0
  265. package/dist/generated/reflect_main/types/updateCap.js +30 -0
  266. package/dist/generated/reflect_main/types/updateRebalanceSlippage.d.ts +17 -0
  267. package/dist/generated/reflect_main/types/updateRebalanceSlippage.js +30 -0
  268. package/dist/generated/reflect_main/types/updateRecipients.d.ts +20 -0
  269. package/dist/generated/reflect_main/types/updateRecipients.js +29 -0
  270. package/dist/generated/reflect_main/types/yieldDistribution.d.ts +16 -0
  271. package/dist/generated/reflect_main/types/yieldDistribution.js +28 -0
  272. package/dist/generated/reflect_main/types/yieldVenue.d.ts +17 -0
  273. package/dist/generated/reflect_main/types/yieldVenue.js +29 -0
  274. package/dist/generated/reflect_main/types/yieldVenueAllocation.d.ts +25 -0
  275. package/dist/generated/reflect_main/types/yieldVenueAllocation.js +29 -0
  276. package/dist/generated/reflect_tokenised_bonds/accounts/Config.d.ts +1 -1
  277. package/dist/generated/reflect_tokenised_bonds/accounts/Vault.d.ts +1 -1
  278. package/dist/helpers/drift/accounts/spotMarket.d.ts +1 -1
  279. package/dist/helpers/drift/accounts/user.d.ts +1 -1
  280. package/dist/helpers/drift/accounts/userStats.d.ts +1 -1
  281. package/dist/index.d.ts +3 -2
  282. package/dist/index.js +6 -3
  283. package/dist/stablecoins/UsdcPlusStablecoin.d.ts +115 -70
  284. package/dist/stablecoins/UsdcPlusStablecoin.js +575 -238
  285. package/dist/stablecoins/UsdcPlusStablecoinLegacy.d.ts +97 -0
  286. package/dist/stablecoins/UsdcPlusStablecoinLegacy.js +386 -0
  287. package/dist/stablecoins/UsdtPlusStablecoin.d.ts +120 -0
  288. package/dist/stablecoins/UsdtPlusStablecoin.js +428 -0
  289. package/dist/stablecoins/index.d.ts +2 -2
  290. package/dist/stablecoins/index.js +2 -2
  291. package/dist/tsconfig.tsbuildinfo +1 -1
  292. package/dist/types/index.d.ts +6 -18
  293. package/dist/utils/getProgramAddress.d.ts +22 -0
  294. package/dist/utils/getProgramAddress.js +27 -0
  295. package/dist/utils/index.d.ts +1 -0
  296. package/dist/utils/index.js +43 -0
  297. package/package.json +8 -3
  298. package/dist/classes/ApiClient.d.ts +0 -84
  299. package/dist/classes/ApiClient.js +0 -139
  300. package/dist/constants/lst.d.ts +0 -3
  301. package/dist/constants/lst.js +0 -6
  302. package/dist/generated/reflect_main/accounts/DriftJlpController.d.ts +0 -110
  303. package/dist/generated/reflect_main/accounts/DriftJlpController.js +0 -175
  304. package/dist/generated/reflect_main/accounts/DriftLstController.d.ts +0 -104
  305. package/dist/generated/reflect_main/accounts/DriftLstController.js +0 -171
  306. package/dist/generated/reflect_main/accounts/DriftUsdcController.d.ts +0 -102
  307. package/dist/generated/reflect_main/accounts/DriftUsdcController.js +0 -168
  308. package/dist/generated/reflect_main/accounts/Main.d.ts +0 -110
  309. package/dist/generated/reflect_main/accounts/Main.js +0 -175
  310. package/dist/generated/reflect_main/accounts/PerpMarket.d.ts +0 -226
  311. package/dist/generated/reflect_main/accounts/PerpMarket.js +0 -317
  312. package/dist/generated/reflect_main/accounts/PrelaunchOracle.d.ts +0 -130
  313. package/dist/generated/reflect_main/accounts/PrelaunchOracle.js +0 -234
  314. package/dist/generated/reflect_main/accounts/PythLazerOracle.d.ts +0 -124
  315. package/dist/generated/reflect_main/accounts/PythLazerOracle.js +0 -220
  316. package/dist/generated/reflect_main/accounts/RebalanceLst.d.ts +0 -111
  317. package/dist/generated/reflect_main/accounts/RebalanceLst.js +0 -185
  318. package/dist/generated/reflect_main/accounts/SpotMarket.d.ts +0 -377
  319. package/dist/generated/reflect_main/accounts/SpotMarket.js +0 -611
  320. package/dist/generated/reflect_main/accounts/User.d.ts +0 -221
  321. package/dist/generated/reflect_main/accounts/User.js +0 -341
  322. package/dist/generated/reflect_main/accounts/UserPermissions.d.ts +0 -106
  323. package/dist/generated/reflect_main/accounts/UserPermissions.js +0 -171
  324. package/dist/generated/reflect_main/accounts/UserStats.d.ts +0 -211
  325. package/dist/generated/reflect_main/accounts/UserStats.js +0 -333
  326. package/dist/generated/reflect_main/instructions/createUserStatsAccount.d.ts +0 -52
  327. package/dist/generated/reflect_main/instructions/createUserStatsAccount.js +0 -126
  328. package/dist/generated/reflect_main/instructions/initDriftAccountsS1.d.ts +0 -54
  329. package/dist/generated/reflect_main/instructions/initDriftAccountsS1.js +0 -131
  330. package/dist/generated/reflect_main/instructions/processSwapDeposit.d.ts +0 -69
  331. package/dist/generated/reflect_main/instructions/processSwapDeposit.js +0 -165
  332. package/dist/generated/reflect_main/instructions/processSwapWithdraw.d.ts +0 -69
  333. package/dist/generated/reflect_main/instructions/processSwapWithdraw.js +0 -165
  334. package/dist/generated/reflect_main/instructions/settlePnlMulti.d.ts +0 -60
  335. package/dist/generated/reflect_main/instructions/settlePnlMulti.js +0 -118
  336. package/dist/generated/reflect_main/instructions/swapOrca.d.ts +0 -81
  337. package/dist/generated/reflect_main/instructions/swapOrca.js +0 -166
  338. package/dist/generated/reflect_main/instructions/swapOrcaTwoHop.d.ts +0 -101
  339. package/dist/generated/reflect_main/instructions/swapOrcaTwoHop.js +0 -213
  340. package/dist/generated/reflect_main/instructions/updateRebalanceSlippage.d.ts +0 -55
  341. package/dist/generated/reflect_main/instructions/updateRebalanceSlippage.js +0 -109
  342. package/dist/generated/reflect_main/types/AMM.d.ts +0 -102
  343. package/dist/generated/reflect_main/types/AMM.js +0 -137
  344. package/dist/generated/reflect_main/types/AccKey.d.ts +0 -15
  345. package/dist/generated/reflect_main/types/AccKey.js +0 -48
  346. package/dist/generated/reflect_main/types/AccessControl.d.ts +0 -18
  347. package/dist/generated/reflect_main/types/AccessControl.js +0 -53
  348. package/dist/generated/reflect_main/types/AccessMap.d.ts +0 -17
  349. package/dist/generated/reflect_main/types/AccessMap.js +0 -52
  350. package/dist/generated/reflect_main/types/Action.d.ts +0 -35
  351. package/dist/generated/reflect_main/types/Action.js +0 -72
  352. package/dist/generated/reflect_main/types/ActionMapping.d.ts +0 -19
  353. package/dist/generated/reflect_main/types/ActionMapping.js +0 -54
  354. package/dist/generated/reflect_main/types/AssetTier.d.ts +0 -23
  355. package/dist/generated/reflect_main/types/AssetTier.js +0 -60
  356. package/dist/generated/reflect_main/types/Attenuation.d.ts +0 -16
  357. package/dist/generated/reflect_main/types/Attenuation.js +0 -51
  358. package/dist/generated/reflect_main/types/AutoCompound.d.ts +0 -18
  359. package/dist/generated/reflect_main/types/AutoCompound.js +0 -53
  360. package/dist/generated/reflect_main/types/BalanceType.d.ts +0 -20
  361. package/dist/generated/reflect_main/types/BalanceType.js +0 -57
  362. package/dist/generated/reflect_main/types/Capture.d.ts +0 -19
  363. package/dist/generated/reflect_main/types/Capture.js +0 -54
  364. package/dist/generated/reflect_main/types/ContractTier.d.ts +0 -24
  365. package/dist/generated/reflect_main/types/ContractTier.js +0 -61
  366. package/dist/generated/reflect_main/types/ContractType.d.ts +0 -20
  367. package/dist/generated/reflect_main/types/ContractType.js +0 -57
  368. package/dist/generated/reflect_main/types/CorpAction.d.ts +0 -19
  369. package/dist/generated/reflect_main/types/CorpAction.js +0 -56
  370. package/dist/generated/reflect_main/types/CustodyInfo.d.ts +0 -20
  371. package/dist/generated/reflect_main/types/CustodyInfo.js +0 -55
  372. package/dist/generated/reflect_main/types/DirectionCollateral.d.ts +0 -20
  373. package/dist/generated/reflect_main/types/DirectionCollateral.js +0 -57
  374. package/dist/generated/reflect_main/types/DirectionPosition.d.ts +0 -20
  375. package/dist/generated/reflect_main/types/DirectionPosition.js +0 -57
  376. package/dist/generated/reflect_main/types/DriftControllerBase.d.ts +0 -15
  377. package/dist/generated/reflect_main/types/DriftControllerBase.js +0 -48
  378. package/dist/generated/reflect_main/types/DriftJlpControllerFixedAccounts.d.ts +0 -18
  379. package/dist/generated/reflect_main/types/DriftJlpControllerFixedAccounts.js +0 -53
  380. package/dist/generated/reflect_main/types/DriftLstData.d.ts +0 -17
  381. package/dist/generated/reflect_main/types/DriftLstData.js +0 -52
  382. package/dist/generated/reflect_main/types/Ema.d.ts +0 -17
  383. package/dist/generated/reflect_main/types/Ema.js +0 -52
  384. package/dist/generated/reflect_main/types/Externals.d.ts +0 -16
  385. package/dist/generated/reflect_main/types/Externals.js +0 -49
  386. package/dist/generated/reflect_main/types/FlowControl.d.ts +0 -17
  387. package/dist/generated/reflect_main/types/FlowControl.js +0 -52
  388. package/dist/generated/reflect_main/types/HistoricalIndexData.d.ts +0 -19
  389. package/dist/generated/reflect_main/types/HistoricalIndexData.js +0 -54
  390. package/dist/generated/reflect_main/types/HistoricalOracleData.d.ts +0 -20
  391. package/dist/generated/reflect_main/types/HistoricalOracleData.js +0 -55
  392. package/dist/generated/reflect_main/types/Holding.d.ts +0 -21
  393. package/dist/generated/reflect_main/types/Holding.js +0 -56
  394. package/dist/generated/reflect_main/types/Holdings.d.ts +0 -17
  395. package/dist/generated/reflect_main/types/Holdings.js +0 -52
  396. package/dist/generated/reflect_main/types/InsuranceClaim.d.ts +0 -19
  397. package/dist/generated/reflect_main/types/InsuranceClaim.js +0 -54
  398. package/dist/generated/reflect_main/types/InsuranceFund.d.ts +0 -24
  399. package/dist/generated/reflect_main/types/InsuranceFund.js +0 -59
  400. package/dist/generated/reflect_main/types/JlpRebalanceSettings.d.ts +0 -15
  401. package/dist/generated/reflect_main/types/JlpRebalanceSettings.js +0 -48
  402. package/dist/generated/reflect_main/types/KillSwitch.d.ts +0 -15
  403. package/dist/generated/reflect_main/types/KillSwitch.js +0 -48
  404. package/dist/generated/reflect_main/types/LevelRoles.d.ts +0 -16
  405. package/dist/generated/reflect_main/types/LevelRoles.js +0 -49
  406. package/dist/generated/reflect_main/types/MarketStatus.d.ts +0 -27
  407. package/dist/generated/reflect_main/types/MarketStatus.js +0 -64
  408. package/dist/generated/reflect_main/types/MarketType.d.ts +0 -20
  409. package/dist/generated/reflect_main/types/MarketType.js +0 -57
  410. package/dist/generated/reflect_main/types/ModifyOrderParams.d.ts +0 -32
  411. package/dist/generated/reflect_main/types/ModifyOrderParams.js +0 -67
  412. package/dist/generated/reflect_main/types/ModifyOrderPolicy.d.ts +0 -20
  413. package/dist/generated/reflect_main/types/ModifyOrderPolicy.js +0 -57
  414. package/dist/generated/reflect_main/types/Movements.d.ts +0 -19
  415. package/dist/generated/reflect_main/types/Movements.js +0 -54
  416. package/dist/generated/reflect_main/types/OracleGuardRails.d.ts +0 -18
  417. package/dist/generated/reflect_main/types/OracleGuardRails.js +0 -53
  418. package/dist/generated/reflect_main/types/OracleSource.d.ts +0 -34
  419. package/dist/generated/reflect_main/types/OracleSource.js +0 -71
  420. package/dist/generated/reflect_main/types/OracleValidity.d.ts +0 -25
  421. package/dist/generated/reflect_main/types/OracleValidity.js +0 -62
  422. package/dist/generated/reflect_main/types/Order.d.ts +0 -43
  423. package/dist/generated/reflect_main/types/Order.js +0 -78
  424. package/dist/generated/reflect_main/types/OrderDirection.d.ts +0 -20
  425. package/dist/generated/reflect_main/types/OrderDirection.js +0 -57
  426. package/dist/generated/reflect_main/types/OrderParams.d.ts +0 -36
  427. package/dist/generated/reflect_main/types/OrderParams.js +0 -71
  428. package/dist/generated/reflect_main/types/OrderStatus.d.ts +0 -22
  429. package/dist/generated/reflect_main/types/OrderStatus.js +0 -59
  430. package/dist/generated/reflect_main/types/OrderTriggerCondition.d.ts +0 -22
  431. package/dist/generated/reflect_main/types/OrderTriggerCondition.js +0 -59
  432. package/dist/generated/reflect_main/types/OrderType.d.ts +0 -23
  433. package/dist/generated/reflect_main/types/OrderType.js +0 -60
  434. package/dist/generated/reflect_main/types/PermissionLevel.d.ts +0 -45
  435. package/dist/generated/reflect_main/types/PermissionLevel.js +0 -58
  436. package/dist/generated/reflect_main/types/PerpHedge.d.ts +0 -17
  437. package/dist/generated/reflect_main/types/PerpHedge.js +0 -52
  438. package/dist/generated/reflect_main/types/PerpPosition.d.ts +0 -29
  439. package/dist/generated/reflect_main/types/PerpPosition.js +0 -64
  440. package/dist/generated/reflect_main/types/PoolBalance.d.ts +0 -17
  441. package/dist/generated/reflect_main/types/PoolBalance.js +0 -52
  442. package/dist/generated/reflect_main/types/Position.d.ts +0 -20
  443. package/dist/generated/reflect_main/types/Position.js +0 -55
  444. package/dist/generated/reflect_main/types/PositionDirection.d.ts +0 -20
  445. package/dist/generated/reflect_main/types/PositionDirection.js +0 -57
  446. package/dist/generated/reflect_main/types/PositionDrift.d.ts +0 -18
  447. package/dist/generated/reflect_main/types/PositionDrift.js +0 -53
  448. package/dist/generated/reflect_main/types/PostOnlyParam.d.ts +0 -22
  449. package/dist/generated/reflect_main/types/PostOnlyParam.js +0 -59
  450. package/dist/generated/reflect_main/types/Price.d.ts +0 -41
  451. package/dist/generated/reflect_main/types/Price.js +0 -76
  452. package/dist/generated/reflect_main/types/PriceComp.d.ts +0 -19
  453. package/dist/generated/reflect_main/types/PriceComp.js +0 -54
  454. package/dist/generated/reflect_main/types/PriceDivergenceGuardRails.d.ts +0 -16
  455. package/dist/generated/reflect_main/types/PriceDivergenceGuardRails.js +0 -51
  456. package/dist/generated/reflect_main/types/PriceInfo.d.ts +0 -21
  457. package/dist/generated/reflect_main/types/PriceInfo.js +0 -56
  458. package/dist/generated/reflect_main/types/PriceStatus.d.ts +0 -22
  459. package/dist/generated/reflect_main/types/PriceStatus.js +0 -59
  460. package/dist/generated/reflect_main/types/PriceType.d.ts +0 -20
  461. package/dist/generated/reflect_main/types/PriceType.js +0 -57
  462. package/dist/generated/reflect_main/types/Program.d.ts +0 -19
  463. package/dist/generated/reflect_main/types/Program.js +0 -54
  464. package/dist/generated/reflect_main/types/ProgramStatus.d.ts +0 -20
  465. package/dist/generated/reflect_main/types/ProgramStatus.js +0 -57
  466. package/dist/generated/reflect_main/types/Recipient.d.ts +0 -17
  467. package/dist/generated/reflect_main/types/Recipient.js +0 -52
  468. package/dist/generated/reflect_main/types/Recipients.d.ts +0 -17
  469. package/dist/generated/reflect_main/types/Recipients.js +0 -52
  470. package/dist/generated/reflect_main/types/Role.d.ts +0 -25
  471. package/dist/generated/reflect_main/types/Role.js +0 -62
  472. package/dist/generated/reflect_main/types/ShiftCollateral.d.ts +0 -19
  473. package/dist/generated/reflect_main/types/ShiftCollateral.js +0 -54
  474. package/dist/generated/reflect_main/types/ShiftPosition.d.ts +0 -17
  475. package/dist/generated/reflect_main/types/ShiftPosition.js +0 -52
  476. package/dist/generated/reflect_main/types/ShortHolding.d.ts +0 -17
  477. package/dist/generated/reflect_main/types/ShortHolding.js +0 -52
  478. package/dist/generated/reflect_main/types/SplBase.d.ts +0 -17
  479. package/dist/generated/reflect_main/types/SplBase.js +0 -52
  480. package/dist/generated/reflect_main/types/SplMain.d.ts +0 -22
  481. package/dist/generated/reflect_main/types/SplMain.js +0 -57
  482. package/dist/generated/reflect_main/types/Spls.d.ts +0 -17
  483. package/dist/generated/reflect_main/types/Spls.js +0 -52
  484. package/dist/generated/reflect_main/types/SpotBalanceType.d.ts +0 -20
  485. package/dist/generated/reflect_main/types/SpotBalanceType.js +0 -57
  486. package/dist/generated/reflect_main/types/SpotPosition.d.ts +0 -23
  487. package/dist/generated/reflect_main/types/SpotPosition.js +0 -58
  488. package/dist/generated/reflect_main/types/Status.d.ts +0 -21
  489. package/dist/generated/reflect_main/types/Status.js +0 -58
  490. package/dist/generated/reflect_main/types/Strategy.d.ts +0 -33
  491. package/dist/generated/reflect_main/types/Strategy.js +0 -68
  492. package/dist/generated/reflect_main/types/StrategyPadding.d.ts +0 -15
  493. package/dist/generated/reflect_main/types/StrategyPadding.js +0 -48
  494. package/dist/generated/reflect_main/types/StrategyRoleEntry.d.ts +0 -17
  495. package/dist/generated/reflect_main/types/StrategyRoleEntry.js +0 -52
  496. package/dist/generated/reflect_main/types/SubAccount.d.ts +0 -17
  497. package/dist/generated/reflect_main/types/SubAccount.js +0 -52
  498. package/dist/generated/reflect_main/types/Update.d.ts +0 -20
  499. package/dist/generated/reflect_main/types/Update.js +0 -57
  500. package/dist/generated/reflect_main/types/UserFees.d.ts +0 -20
  501. package/dist/generated/reflect_main/types/UserFees.js +0 -55
  502. package/dist/generated/reflect_main/types/ValidityGuardRails.d.ts +0 -18
  503. package/dist/generated/reflect_main/types/ValidityGuardRails.js +0 -53
  504. package/dist/generated/reflect_main/types/YieldDistribution.d.ts +0 -20
  505. package/dist/generated/reflect_main/types/YieldDistribution.js +0 -57
  506. package/dist/helpers/getOrcaQuote.d.ts +0 -3
  507. package/dist/helpers/getOrcaQuote.js +0 -27
  508. package/dist/stablecoins/LstStablecoin.d.ts +0 -108
  509. package/dist/stablecoins/LstStablecoin.js +0 -354
  510. package/dist/stablecoins/UsdjStablecoin.d.ts +0 -1
  511. package/dist/stablecoins/UsdjStablecoin.js +0 -44
  512. package/dist/types/api.d.ts +0 -1384
  513. package/dist/types/api.js +0 -6
@@ -1,5 +1,4 @@
1
- import { Connection, PublicKey } from "@solana/web3.js";
2
- import { Action, Role, Update, UserPermissions } from "../generated/reflect_main";
1
+ import { Address, TransactionSigner, Rpc, SolanaRpcApi } from "@solana/kit";
3
2
  /**
4
3
  * Administrative client for the Reflect protocol.
5
4
  * Provides functionality for protocol-level administration including:
@@ -10,110 +9,124 @@ import { Action, Role, Update, UserPermissions } from "../generated/reflect_main
10
9
  *
11
10
  * This class is used by protocol administrators to manage global settings,
12
11
  * user permissions, and protocol-wide configurations.
12
+ *
13
+ * Environment handling:
14
+ * - devnet=true → Uses devnet program
15
+ * - devnet=false, mock=true → Uses mock program on mainnet
16
+ * - devnet=false, mock=false → Uses production mainnet program
13
17
  */
14
18
  export declare class ReflectKeeper {
15
- /** Public key of the admin user */
19
+ /** Address of the admin user */
16
20
  private admin;
17
- /** Public key of the main program account */
21
+ /** Address of the main program account */
18
22
  private main;
19
- /** Solana connection instance for RPC communication */
20
- private connection;
23
+ /** Solana RPC instance for communication */
24
+ private rpc;
25
+ /** Whether to use devnet program */
21
26
  private devnet;
27
+ /** Whether to use mock program on mainnet (only applies when devnet=false) */
28
+ private mock;
22
29
  /**
23
30
  * Creates a new ReflectKeeper instance.
24
31
  *
25
- * @param admin - Public key of the admin user
26
- * @param connection - Solana connection instance
32
+ * @param admin - Address of the admin user
33
+ * @param rpc - Solana RPC instance
34
+ * @param devnet - Whether to use devnet program
35
+ * @param mock - Whether to use mock program on mainnet (only applies when devnet=false)
27
36
  */
28
- constructor({ admin, connection, devnet, }: {
29
- admin: PublicKey;
30
- connection: Connection;
37
+ constructor({ admin, rpc, devnet, mock, }: {
38
+ admin: Address;
39
+ rpc: Rpc<SolanaRpcApi>;
31
40
  devnet?: boolean;
41
+ mock?: boolean;
32
42
  });
43
+ /**
44
+ * Initialize the keeper by deriving necessary PDAs
45
+ */
46
+ initialize(): Promise<void>;
47
+ /**
48
+ * Get the program address based on network configuration.
49
+ * - devnet=true → devnet program
50
+ * - devnet=false, mock=true → mock program on mainnet
51
+ * - devnet=false, mock=false → production mainnet program
52
+ */
53
+ get programAddress(): Address;
33
54
  /**
34
55
  * Creates the main program account. This is the initial step of protocol setup.
35
56
  *
36
- * @param admin - Public key of the initial admin
37
- * @returns TransactionInstruction for initializing the main account
57
+ * @param admin - TransactionSigner of the initial admin
58
+ * @param devnet - Whether to use devnet program
59
+ * @param mock - Whether to use mock program on mainnet (only applies when devnet=false)
60
+ * @returns Instruction for initializing the main account
38
61
  */
39
- static initializeMain(admin: PublicKey, devnet?: boolean): import("@solana/web3.js").TransactionInstruction;
40
- getPermissionAccount(): Promise<UserPermissions>;
62
+ static initializeMain(admin: TransactionSigner, devnet?: boolean, mock?: boolean): Promise<import("../generated/reflect_main").InitMainInstruction<Address, string, string, string, string, []>>;
41
63
  /**
42
64
  * Freezes or unfreezes a specific protocol action.
43
65
  *
66
+ * @param admin - TransactionSigner of the admin
44
67
  * @param freeze - Whether to freeze (true) or unfreeze (false) the action
45
- * @param action - The action to freeze/unfreeze
46
- * @returns TransactionInstruction
68
+ * @param action - The action to freeze/unfreeze (as u8)
69
+ * @returns Instruction
47
70
  */
48
- freezeProtocolAction(freeze: boolean, action: Action): import("@solana/web3.js").TransactionInstruction;
71
+ freezeProtocolAction(admin: TransactionSigner, freeze: boolean, action: number): Promise<import("../generated/reflect_main").FreezeProtocolActionInstruction<Address, string, string, string, string, []>>;
49
72
  /**
50
73
  * Freezes or unfreezes a specific DEX program.
51
74
  *
75
+ * @param admin - TransactionSigner of the admin
52
76
  * @param freeze - Whether to freeze (true) or unfreeze (false) the program
53
77
  * @param programIndex - Index of the program to freeze/unfreeze
54
- * @returns TransactionInstruction
78
+ * @returns Instruction
55
79
  */
56
- freezeDex(freeze: boolean, programIndex: number): import("@solana/web3.js").TransactionInstruction;
80
+ freezeDex(admin: TransactionSigner, freeze: boolean, programIndex: number): Promise<import("../generated/reflect_main").FreezeProgramInstruction<Address, string, string, string, string, []>>;
57
81
  /**
58
82
  * Creates a new admin account with specified permissions.
59
83
  *
60
- * @param signer - Public key of the caller (must be existing admin)
61
- * @param newAdmin - Public key of the new admin to create
62
- * @returns TransactionInstruction
84
+ * @param caller - TransactionSigner of the caller (must be existing admin)
85
+ * @param newAdmin - Address of the new admin to create
86
+ * @param roles - Number of roles to allocate
87
+ * @returns Instruction
63
88
  */
64
- createAdminAccount(signer: PublicKey, newAdmin: PublicKey, roles?: number): import("@solana/web3.js").TransactionInstruction;
89
+ createAdminAccount(caller: TransactionSigner, newAdmin: Address, roles?: number): Promise<import("../generated/reflect_main").CreateAdminAccountInstruction<Address, string, string, string, []>>;
65
90
  /**
66
91
  * Updates role holder permissions at the protocol level.
67
92
  *
68
- * @param signer - Public key of the admin signer
69
- * @param adminToUpdate - Public key of the admin whose permissions are being updated
70
- * @param affectedRole - The role being modified
71
- * @param update - The type of update (Grant or Revoke)
72
- * @returns TransactionInstruction
93
+ * @param admin - TransactionSigner of the admin
94
+ * @param adminToUpdate - Address of the admin whose permissions are being updated
95
+ * @param accessLevel - The role being modified (as u8)
96
+ * @param update - The type of update: 0 = Add, 1 = Remove
97
+ * @returns Instruction
73
98
  */
74
- updateRoleHolderProtocol(signer: PublicKey, adminToUpdate: PublicKey, affectedRole: Role, update: Update): import("@solana/web3.js").TransactionInstruction;
99
+ updateRoleHolderProtocol(admin: TransactionSigner, adminToUpdate: Address, accessLevel: number, update: number): Promise<import("../generated/reflect_main").UpdateRoleHolderProtocolInstruction<Address, string, string, string, string, string, string, []>>;
75
100
  /**
76
101
  * Updates role holder permissions for a specific strategy.
77
102
  *
78
- * @param signer - Public key of the admin signer
103
+ * @param admin - TransactionSigner of the admin
79
104
  * @param strategyId - ID of the strategy to update permissions for
80
- * @param adminToUpdate - Public key of the admin whose permissions are being updated
81
- * @param affectedRole - The role being modified
82
- * @param update - The type of update (Grant or Revoke)
83
- * @returns TransactionInstruction
105
+ * @param adminToUpdate - Address of the admin whose permissions are being updated
106
+ * @param role - The role being modified (as u8)
107
+ * @param update - The type of update: 0 = Add, 1 = Remove
108
+ * @returns Instruction
84
109
  */
85
- updateRoleHolderStrategy(signer: PublicKey, strategyId: number, adminToUpdate: PublicKey, affectedRole: Role, update: Update): import("@solana/web3.js").TransactionInstruction;
110
+ updateRoleHolderStrategy(admin: TransactionSigner, strategyId: number, adminToUpdate: Address, role: number, update: number): Promise<import("../generated/reflect_main").UpdateRoleHolderStrategyInstruction<Address, string, string, string, string, string, string, []>>;
86
111
  /**
87
112
  * Updates action role permissions for a specific strategy.
88
113
  *
89
- * @param signer - Public key of the admin signer
114
+ * @param admin - TransactionSigner of the admin
90
115
  * @param strategyId - ID of the strategy to update permissions for
91
- * @param action - The action being modified
92
- * @param affectedRole - The role being modified
93
- * @param update - The type of update (Grant or Revoke)
94
- * @returns TransactionInstruction
116
+ * @param action - The action being modified (as u8)
117
+ * @param role - The role being modified (as u8)
118
+ * @param update - The type of update: 0 = Add, 1 = Remove
119
+ * @returns Instruction
95
120
  */
96
- updateActionRoleStrategy(signer: PublicKey, strategyId: number, action: Action, affectedRole: Role, update: Update): import("@solana/web3.js").TransactionInstruction;
121
+ updateActionRoleStrategy(admin: TransactionSigner, strategyId: number, action: number, role: number, update: number): Promise<import("../generated/reflect_main").UpdateActionRoleStrategyInstruction<Address, string, string, string, string, string, []>>;
97
122
  /**
98
123
  * Updates action role permissions at the protocol level.
99
124
  *
100
- * @param signer - Public key of the admin signer
101
- * @param action - The action being modified
102
- * @param affectedRole - The role being modified
103
- * @param update - The type of update (Grant or Revoke)
104
- * @returns TransactionInstruction
125
+ * @param admin - TransactionSigner of the admin
126
+ * @param action - The action being modified (as u8)
127
+ * @param role - The role being modified (as u8)
128
+ * @param update - The type of update: 0 = Add, 1 = Remove
129
+ * @returns Instruction
105
130
  */
106
- updateActionRoleProtocol(signer: PublicKey, action: Action, affectedRole: Role, update: Update): import("@solana/web3.js").TransactionInstruction;
107
- fetchAllAdminAccounts(): Promise<{
108
- pubkey: PublicKey;
109
- account: UserPermissions;
110
- }[]>;
111
- fetchAdminByRole(role: Role): Promise<{
112
- pubkey: PublicKey;
113
- account: UserPermissions;
114
- }[]>;
115
- fetchAdminByStrategyRole(strategy: number, role: Role): Promise<{
116
- pubkey: PublicKey;
117
- account: UserPermissions;
118
- }[]>;
131
+ updateActionRoleProtocol(admin: TransactionSigner, action: number, role: number, update: number): Promise<import("../generated/reflect_main").UpdateActionRoleProtocolInstruction<Address, string, string, string, string, []>>;
119
132
  }
@@ -10,10 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ReflectKeeper = void 0;
13
- const web3_js_1 = require("@solana/web3.js");
14
13
  const reflect_main_1 = require("../generated/reflect_main");
14
+ const getProgramAddress_1 = require("../utils/getProgramAddress");
15
15
  const PdaClient_1 = require("./PdaClient");
16
- const devnet_1 = require("../constants/devnet");
17
16
  /**
18
17
  * Administrative client for the Reflect protocol.
19
18
  * Provides functionality for protocol-level administration including:
@@ -24,224 +23,242 @@ const devnet_1 = require("../constants/devnet");
24
23
  *
25
24
  * This class is used by protocol administrators to manage global settings,
26
25
  * user permissions, and protocol-wide configurations.
26
+ *
27
+ * Environment handling:
28
+ * - devnet=true → Uses devnet program
29
+ * - devnet=false, mock=true → Uses mock program on mainnet
30
+ * - devnet=false, mock=false → Uses production mainnet program
27
31
  */
28
32
  class ReflectKeeper {
29
33
  /**
30
34
  * Creates a new ReflectKeeper instance.
31
35
  *
32
- * @param admin - Public key of the admin user
33
- * @param connection - Solana connection instance
36
+ * @param admin - Address of the admin user
37
+ * @param rpc - Solana RPC instance
38
+ * @param devnet - Whether to use devnet program
39
+ * @param mock - Whether to use mock program on mainnet (only applies when devnet=false)
34
40
  */
35
- constructor({ admin, connection, devnet = false, }) {
41
+ constructor({ admin, rpc, devnet = false, mock = false, }) {
42
+ /** Address of the main program account */
43
+ this.main = null;
36
44
  this.admin = admin;
37
- this.connection = connection;
45
+ this.rpc = rpc;
38
46
  this.devnet = devnet;
39
- this.main = PdaClient_1.PdaClient.deriveMain(devnet);
47
+ this.mock = mock;
48
+ }
49
+ /**
50
+ * Initialize the keeper by deriving necessary PDAs
51
+ */
52
+ initialize() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ this.main = yield PdaClient_1.PdaClient.deriveMain(this.devnet, this.mock);
55
+ });
56
+ }
57
+ /**
58
+ * Get the program address based on network configuration.
59
+ * - devnet=true → devnet program
60
+ * - devnet=false, mock=true → mock program on mainnet
61
+ * - devnet=false, mock=false → production mainnet program
62
+ */
63
+ get programAddress() {
64
+ return (0, getProgramAddress_1.getProgramAddress)({ devnet: this.devnet, mock: this.mock });
40
65
  }
41
66
  /**
42
67
  * Creates the main program account. This is the initial step of protocol setup.
43
68
  *
44
- * @param admin - Public key of the initial admin
45
- * @returns TransactionInstruction for initializing the main account
69
+ * @param admin - TransactionSigner of the initial admin
70
+ * @param devnet - Whether to use devnet program
71
+ * @param mock - Whether to use mock program on mainnet (only applies when devnet=false)
72
+ * @returns Instruction for initializing the main account
46
73
  */
47
- static initializeMain(admin, devnet) {
48
- const [main] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("main")], devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
49
- const ix = (0, reflect_main_1.createInitMainInstruction)({
50
- main,
51
- admin,
52
- systemProgram: web3_js_1.SystemProgram.programId,
53
- creds: PdaClient_1.PdaClient.derivePermissions(admin, devnet),
54
- }, devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
55
- return ix;
56
- }
57
- getPermissionAccount() {
74
+ static initializeMain(admin, devnet, mock) {
58
75
  return __awaiter(this, void 0, void 0, function* () {
59
- const permissions = PdaClient_1.PdaClient.derivePermissions(this.admin, this.devnet);
60
- const permissionsAccount = yield reflect_main_1.UserPermissions.fromAccountAddress(this.connection, permissions);
61
- return permissionsAccount;
76
+ const main = yield PdaClient_1.PdaClient.deriveMain(devnet, mock);
77
+ const creds = yield PdaClient_1.PdaClient.derivePermissions(admin.address, devnet, mock);
78
+ const programAddress = (0, getProgramAddress_1.getProgramAddress)({ devnet, mock });
79
+ const ix = (0, reflect_main_1.getInitMainInstruction)({
80
+ main,
81
+ admin,
82
+ creds,
83
+ }, { programAddress });
84
+ return ix;
62
85
  });
63
86
  }
64
87
  /**
65
88
  * Freezes or unfreezes a specific protocol action.
66
89
  *
90
+ * @param admin - TransactionSigner of the admin
67
91
  * @param freeze - Whether to freeze (true) or unfreeze (false) the action
68
- * @param action - The action to freeze/unfreeze
69
- * @returns TransactionInstruction
92
+ * @param action - The action to freeze/unfreeze (as u8)
93
+ * @returns Instruction
70
94
  */
71
- freezeProtocolAction(freeze, action) {
72
- const ix = (0, reflect_main_1.createFreezeProtocolActionInstruction)({
73
- admin: this.admin,
74
- main: this.main,
75
- systemProgram: web3_js_1.SystemProgram.programId,
76
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(this.admin, this.devnet),
77
- }, {
78
- freeze,
79
- action,
80
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
81
- return ix;
95
+ freezeProtocolAction(admin, freeze, action) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ if (!this.main)
98
+ yield this.initialize();
99
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
100
+ const ix = (0, reflect_main_1.getFreezeProtocolActionInstruction)({
101
+ admin,
102
+ main: this.main,
103
+ adminPermissions,
104
+ freeze,
105
+ action,
106
+ }, { programAddress: this.programAddress });
107
+ return ix;
108
+ });
82
109
  }
83
110
  /**
84
111
  * Freezes or unfreezes a specific DEX program.
85
112
  *
113
+ * @param admin - TransactionSigner of the admin
86
114
  * @param freeze - Whether to freeze (true) or unfreeze (false) the program
87
115
  * @param programIndex - Index of the program to freeze/unfreeze
88
- * @returns TransactionInstruction
116
+ * @returns Instruction
89
117
  */
90
- freezeDex(freeze, programIndex) {
91
- const ix = (0, reflect_main_1.createFreezeProgramInstruction)({
92
- admin: this.admin,
93
- main: this.main,
94
- systemProgram: web3_js_1.SystemProgram.programId,
95
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(this.admin, this.devnet),
96
- }, {
97
- freeze,
98
- programIndex,
99
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
100
- return ix;
118
+ freezeDex(admin, freeze, programIndex) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ if (!this.main)
121
+ yield this.initialize();
122
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
123
+ const ix = (0, reflect_main_1.getFreezeProgramInstruction)({
124
+ admin,
125
+ main: this.main,
126
+ adminPermissions,
127
+ freeze,
128
+ programIndex,
129
+ }, { programAddress: this.programAddress });
130
+ return ix;
131
+ });
101
132
  }
102
133
  /**
103
134
  * Creates a new admin account with specified permissions.
104
135
  *
105
- * @param signer - Public key of the caller (must be existing admin)
106
- * @param newAdmin - Public key of the new admin to create
107
- * @returns TransactionInstruction
136
+ * @param caller - TransactionSigner of the caller (must be existing admin)
137
+ * @param newAdmin - Address of the new admin to create
138
+ * @param roles - Number of roles to allocate
139
+ * @returns Instruction
108
140
  */
109
- createAdminAccount(signer, newAdmin, roles = 18) {
110
- const ix = (0, reflect_main_1.createCreateAdminAccountInstruction)({
111
- caller: signer,
112
- newCreds: PdaClient_1.PdaClient.derivePermissions(newAdmin, this.devnet),
113
- systemProgram: web3_js_1.SystemProgram.programId,
114
- }, {
115
- newAdmin,
116
- roles,
117
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
118
- return ix;
141
+ createAdminAccount(caller_1, newAdmin_1) {
142
+ return __awaiter(this, arguments, void 0, function* (caller, newAdmin, roles = 18) {
143
+ const newCreds = yield PdaClient_1.PdaClient.derivePermissions(newAdmin, this.devnet, this.mock);
144
+ const ix = (0, reflect_main_1.getCreateAdminAccountInstruction)({
145
+ caller,
146
+ newCreds,
147
+ newAdmin,
148
+ roles,
149
+ }, { programAddress: this.programAddress });
150
+ return ix;
151
+ });
119
152
  }
120
153
  /**
121
154
  * Updates role holder permissions at the protocol level.
122
155
  *
123
- * @param signer - Public key of the admin signer
124
- * @param adminToUpdate - Public key of the admin whose permissions are being updated
125
- * @param affectedRole - The role being modified
126
- * @param update - The type of update (Grant or Revoke)
127
- * @returns TransactionInstruction
156
+ * @param admin - TransactionSigner of the admin
157
+ * @param adminToUpdate - Address of the admin whose permissions are being updated
158
+ * @param accessLevel - The role being modified (as u8)
159
+ * @param update - The type of update: 0 = Add, 1 = Remove
160
+ * @returns Instruction
128
161
  */
129
- updateRoleHolderProtocol(signer, adminToUpdate, affectedRole, update) {
130
- const ix = (0, reflect_main_1.createUpdateRoleHolderProtocolInstruction)({
131
- admin: signer,
132
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(signer, this.devnet),
133
- main: PdaClient_1.PdaClient.deriveMain(this.devnet),
134
- systemProgram: web3_js_1.SystemProgram.programId,
135
- updateAdminPermissions: PdaClient_1.PdaClient.derivePermissions(adminToUpdate, this.devnet),
136
- // Dummy strategy account.
137
- strategy: PdaClient_1.PdaClient.deriveController(0, this.devnet),
138
- }, {
139
- update,
140
- accessLevel: affectedRole,
141
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
142
- return ix;
162
+ updateRoleHolderProtocol(admin, adminToUpdate, accessLevel, update) {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ if (!this.main)
165
+ yield this.initialize();
166
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
167
+ const updateAdminPermissions = yield PdaClient_1.PdaClient.derivePermissions(adminToUpdate, this.devnet, this.mock);
168
+ // Dummy strategy account
169
+ const strategy = yield PdaClient_1.PdaClient.deriveController(0, this.devnet, this.mock);
170
+ const ix = (0, reflect_main_1.getUpdateRoleHolderProtocolInstruction)({
171
+ admin,
172
+ adminPermissions,
173
+ main: this.main,
174
+ updateAdminPermissions,
175
+ strategy,
176
+ accessLevel,
177
+ update,
178
+ }, { programAddress: this.programAddress });
179
+ return ix;
180
+ });
143
181
  }
144
182
  /**
145
183
  * Updates role holder permissions for a specific strategy.
146
184
  *
147
- * @param signer - Public key of the admin signer
185
+ * @param admin - TransactionSigner of the admin
148
186
  * @param strategyId - ID of the strategy to update permissions for
149
- * @param adminToUpdate - Public key of the admin whose permissions are being updated
150
- * @param affectedRole - The role being modified
151
- * @param update - The type of update (Grant or Revoke)
152
- * @returns TransactionInstruction
187
+ * @param adminToUpdate - Address of the admin whose permissions are being updated
188
+ * @param role - The role being modified (as u8)
189
+ * @param update - The type of update: 0 = Add, 1 = Remove
190
+ * @returns Instruction
153
191
  */
154
- updateRoleHolderStrategy(signer, strategyId, adminToUpdate, affectedRole, update) {
155
- const ix = (0, reflect_main_1.createUpdateRoleHolderStrategyInstruction)({
156
- admin: signer,
157
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(signer, this.devnet),
158
- main: PdaClient_1.PdaClient.deriveMain(this.devnet),
159
- systemProgram: web3_js_1.SystemProgram.programId,
160
- updateAdminPermissions: PdaClient_1.PdaClient.derivePermissions(adminToUpdate, this.devnet),
161
- strategy: PdaClient_1.PdaClient.deriveController(strategyId, this.devnet),
162
- }, {
163
- update,
164
- role: affectedRole,
165
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
166
- return ix;
192
+ updateRoleHolderStrategy(admin, strategyId, adminToUpdate, role, update) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ if (!this.main)
195
+ yield this.initialize();
196
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
197
+ const updateAdminPermissions = yield PdaClient_1.PdaClient.derivePermissions(adminToUpdate, this.devnet, this.mock);
198
+ const strategy = yield PdaClient_1.PdaClient.deriveController(strategyId, this.devnet, this.mock);
199
+ const ix = (0, reflect_main_1.getUpdateRoleHolderStrategyInstruction)({
200
+ admin,
201
+ adminPermissions,
202
+ main: this.main,
203
+ updateAdminPermissions,
204
+ strategy,
205
+ role,
206
+ update,
207
+ }, { programAddress: this.programAddress });
208
+ return ix;
209
+ });
167
210
  }
168
211
  /**
169
212
  * Updates action role permissions for a specific strategy.
170
213
  *
171
- * @param signer - Public key of the admin signer
214
+ * @param admin - TransactionSigner of the admin
172
215
  * @param strategyId - ID of the strategy to update permissions for
173
- * @param action - The action being modified
174
- * @param affectedRole - The role being modified
175
- * @param update - The type of update (Grant or Revoke)
176
- * @returns TransactionInstruction
216
+ * @param action - The action being modified (as u8)
217
+ * @param role - The role being modified (as u8)
218
+ * @param update - The type of update: 0 = Add, 1 = Remove
219
+ * @returns Instruction
177
220
  */
178
- updateActionRoleStrategy(signer, strategyId, action, affectedRole, update) {
179
- const ix = (0, reflect_main_1.createUpdateActionRoleStrategyInstruction)({
180
- admin: signer,
181
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(signer, this.devnet),
182
- main: PdaClient_1.PdaClient.deriveMain(this.devnet),
183
- systemProgram: web3_js_1.SystemProgram.programId,
184
- strategy: PdaClient_1.PdaClient.deriveController(strategyId, this.devnet),
185
- }, {
186
- update,
187
- role: affectedRole,
188
- action,
189
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
190
- return ix;
221
+ updateActionRoleStrategy(admin, strategyId, action, role, update) {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ if (!this.main)
224
+ yield this.initialize();
225
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
226
+ const strategy = yield PdaClient_1.PdaClient.deriveController(strategyId, this.devnet, this.mock);
227
+ const ix = (0, reflect_main_1.getUpdateActionRoleStrategyInstruction)({
228
+ admin,
229
+ adminPermissions,
230
+ main: this.main,
231
+ strategy,
232
+ action,
233
+ role,
234
+ update,
235
+ }, { programAddress: this.programAddress });
236
+ return ix;
237
+ });
191
238
  }
192
239
  /**
193
240
  * Updates action role permissions at the protocol level.
194
241
  *
195
- * @param signer - Public key of the admin signer
196
- * @param action - The action being modified
197
- * @param affectedRole - The role being modified
198
- * @param update - The type of update (Grant or Revoke)
199
- * @returns TransactionInstruction
242
+ * @param admin - TransactionSigner of the admin
243
+ * @param action - The action being modified (as u8)
244
+ * @param role - The role being modified (as u8)
245
+ * @param update - The type of update: 0 = Add, 1 = Remove
246
+ * @returns Instruction
200
247
  */
201
- updateActionRoleProtocol(signer, action, affectedRole, update) {
202
- const ix = (0, reflect_main_1.createUpdateActionRoleProtocolInstruction)({
203
- admin: signer,
204
- adminPermissions: PdaClient_1.PdaClient.derivePermissions(signer, this.devnet),
205
- main: PdaClient_1.PdaClient.deriveMain(this.devnet),
206
- systemProgram: web3_js_1.SystemProgram.programId,
207
- }, {
208
- action,
209
- role: affectedRole,
210
- update,
211
- }, this.devnet ? devnet_1.DEVNET_PROGRAM_ID : reflect_main_1.PROGRAM_ID);
212
- return ix;
213
- }
214
- fetchAllAdminAccounts() {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const data = yield reflect_main_1.UserPermissions.gpaBuilder(reflect_main_1.PROGRAM_ID)
217
- .addFilter("accountDiscriminator", reflect_main_1.userPermissionsDiscriminator)
218
- .run(this.connection);
219
- return data
220
- .map(({ pubkey, account: { data } }) => {
221
- const [account] = reflect_main_1.UserPermissions.deserialize(data);
222
- return {
223
- pubkey,
224
- account,
225
- };
226
- });
227
- });
228
- }
229
- fetchAdminByRole(role) {
230
- return __awaiter(this, void 0, void 0, function* () {
231
- const data = yield this.fetchAllAdminAccounts();
232
- return data.filter(({ account }) => account.protocolRoles.roles.includes(role));
233
- });
234
- }
235
- fetchAdminByStrategyRole(strategy, role) {
248
+ updateActionRoleProtocol(admin, action, role, update) {
236
249
  return __awaiter(this, void 0, void 0, function* () {
237
- const data = yield this.fetchAllAdminAccounts();
238
- const strategyPermissionAccounts = data
239
- .filter(({ account }) => account.strategyRoles.some(({ strategyId }) => strategyId === strategy));
240
- return strategyPermissionAccounts.filter(({ account }) => {
241
- var _a;
242
- return (_a = account.strategyRoles
243
- .find(({ strategyId }) => strategyId === strategy)) === null || _a === void 0 ? void 0 : _a.roles.roles.includes(role);
244
- });
250
+ if (!this.main)
251
+ yield this.initialize();
252
+ const adminPermissions = yield PdaClient_1.PdaClient.derivePermissions(admin.address, this.devnet, this.mock);
253
+ const ix = (0, reflect_main_1.getUpdateActionRoleProtocolInstruction)({
254
+ admin,
255
+ adminPermissions,
256
+ main: this.main,
257
+ action,
258
+ role,
259
+ update,
260
+ }, { programAddress: this.programAddress });
261
+ return ix;
245
262
  });
246
263
  }
247
264
  }