@haven-fi/solauto-sdk 1.0.581 → 1.0.583

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 (268) hide show
  1. package/dist/constants/solautoConstants.d.ts +1 -0
  2. package/dist/constants/solautoConstants.d.ts.map +1 -1
  3. package/dist/constants/solautoConstants.js +4 -10
  4. package/dist/constants/switchboardConstants.d.ts.map +1 -1
  5. package/dist/constants/switchboardConstants.js +5 -5
  6. package/dist/generated/accounts/solautoPosition.js +2 -2
  7. package/dist/generated/errors/solauto.d.ts +14 -2
  8. package/dist/generated/errors/solauto.d.ts.map +1 -1
  9. package/dist/generated/errors/solauto.js +27 -5
  10. package/dist/generated/instructions/claimReferralFees.d.ts +1 -1
  11. package/dist/generated/instructions/claimReferralFees.d.ts.map +1 -1
  12. package/dist/generated/instructions/closePosition.d.ts +1 -1
  13. package/dist/generated/instructions/closePosition.d.ts.map +1 -1
  14. package/dist/generated/instructions/closePosition.js +2 -2
  15. package/dist/generated/instructions/marginfiOpenPosition.d.ts +1 -3
  16. package/dist/generated/instructions/marginfiOpenPosition.d.ts.map +1 -1
  17. package/dist/generated/instructions/marginfiOpenPosition.js +0 -1
  18. package/dist/generated/instructions/marginfiRebalance.d.ts +7 -3
  19. package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
  20. package/dist/generated/instructions/marginfiRebalance.js +3 -1
  21. package/dist/generated/types/index.d.ts +7 -1
  22. package/dist/generated/types/index.d.ts.map +1 -1
  23. package/dist/generated/types/index.js +7 -1
  24. package/dist/generated/types/positionData.d.ts +2 -2
  25. package/dist/generated/types/positionData.d.ts.map +1 -1
  26. package/dist/generated/types/positionData.js +1 -1
  27. package/dist/generated/types/positionState.d.ts +7 -7
  28. package/dist/generated/types/positionState.d.ts.map +1 -1
  29. package/dist/generated/types/positionState.js +3 -3
  30. package/dist/generated/types/{positionTokenUsage.d.ts → positionTokenState.d.ts} +6 -8
  31. package/dist/generated/types/positionTokenState.d.ts.map +1 -0
  32. package/dist/generated/types/{positionTokenUsage.js → positionTokenState.js} +6 -7
  33. package/dist/generated/types/rebalanceData.d.ts +7 -13
  34. package/dist/generated/types/rebalanceData.d.ts.map +1 -1
  35. package/dist/generated/types/rebalanceData.js +3 -6
  36. package/dist/generated/types/rebalanceDirection.d.ts +3 -2
  37. package/dist/generated/types/rebalanceDirection.d.ts.map +1 -1
  38. package/dist/generated/types/rebalanceDirection.js +3 -2
  39. package/dist/generated/types/rebalanceInstructionData.d.ts +27 -0
  40. package/dist/generated/types/rebalanceInstructionData.d.ts.map +1 -0
  41. package/dist/generated/types/rebalanceInstructionData.js +22 -0
  42. package/dist/generated/types/rebalanceStateValues.d.ts +27 -0
  43. package/dist/generated/types/rebalanceStateValues.d.ts.map +1 -0
  44. package/dist/generated/types/rebalanceStateValues.js +22 -0
  45. package/dist/generated/types/rebalanceStep.d.ts +15 -0
  46. package/dist/generated/types/rebalanceStep.d.ts.map +1 -0
  47. package/dist/generated/types/rebalanceStep.js +22 -0
  48. package/dist/generated/types/solautoRebalanceType.d.ts +4 -5
  49. package/dist/generated/types/solautoRebalanceType.d.ts.map +1 -1
  50. package/dist/generated/types/solautoRebalanceType.js +4 -5
  51. package/dist/generated/types/solautoSettingsParameters.d.ts +2 -15
  52. package/dist/generated/types/solautoSettingsParameters.d.ts.map +1 -1
  53. package/dist/generated/types/solautoSettingsParameters.js +1 -5
  54. package/dist/generated/types/solautoSettingsParametersInp.d.ts +1 -12
  55. package/dist/generated/types/solautoSettingsParametersInp.d.ts.map +1 -1
  56. package/dist/generated/types/solautoSettingsParametersInp.js +0 -3
  57. package/dist/generated/types/swapType.d.ts +15 -0
  58. package/dist/generated/types/swapType.d.ts.map +1 -0
  59. package/dist/generated/types/swapType.js +22 -0
  60. package/dist/generated/types/tokenBalanceChange.d.ts +21 -0
  61. package/dist/generated/types/tokenBalanceChange.d.ts.map +1 -0
  62. package/dist/generated/types/tokenBalanceChange.js +19 -0
  63. package/dist/generated/types/tokenBalanceChangeType.d.ts +18 -0
  64. package/dist/generated/types/tokenBalanceChangeType.d.ts.map +1 -0
  65. package/dist/generated/types/tokenBalanceChangeType.js +25 -0
  66. package/dist/generated/types/updatePositionData.d.ts +2 -2
  67. package/dist/generated/types/updatePositionData.d.ts.map +1 -1
  68. package/dist/generated/types/updatePositionData.js +1 -1
  69. package/dist/index.d.ts +8 -6
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +5 -5
  72. package/dist/marginfi-sdk/types/interestRateConfig.d.ts +3 -1
  73. package/dist/marginfi-sdk/types/interestRateConfig.d.ts.map +1 -1
  74. package/dist/marginfi-sdk/types/interestRateConfig.js +2 -1
  75. package/dist/services/flashLoans/flProviderAggregator.d.ts +19 -0
  76. package/dist/services/flashLoans/flProviderAggregator.d.ts.map +1 -0
  77. package/dist/services/flashLoans/flProviderAggregator.js +46 -0
  78. package/dist/services/flashLoans/flProviderBase.d.ts +23 -0
  79. package/dist/services/flashLoans/flProviderBase.d.ts.map +1 -0
  80. package/dist/services/flashLoans/flProviderBase.js +37 -0
  81. package/dist/services/flashLoans/index.d.ts +4 -0
  82. package/dist/services/flashLoans/index.d.ts.map +1 -0
  83. package/dist/services/flashLoans/index.js +19 -0
  84. package/dist/services/flashLoans/marginfiFlProvider.d.ts +25 -0
  85. package/dist/services/flashLoans/marginfiFlProvider.d.ts.map +1 -0
  86. package/dist/services/flashLoans/marginfiFlProvider.js +246 -0
  87. package/dist/services/index.d.ts +6 -0
  88. package/dist/services/index.d.ts.map +1 -0
  89. package/dist/services/index.js +21 -0
  90. package/dist/services/rebalance/index.d.ts +3 -0
  91. package/dist/services/rebalance/index.d.ts.map +1 -0
  92. package/dist/services/rebalance/index.js +18 -0
  93. package/dist/services/rebalance/rebalanceSwapManager.d.ts +30 -0
  94. package/dist/services/rebalance/rebalanceSwapManager.d.ts.map +1 -0
  95. package/dist/services/rebalance/rebalanceSwapManager.js +144 -0
  96. package/dist/services/rebalance/rebalanceTxBuilder.d.ts +22 -0
  97. package/dist/services/rebalance/rebalanceTxBuilder.d.ts.map +1 -0
  98. package/dist/services/rebalance/rebalanceTxBuilder.js +200 -0
  99. package/dist/services/rebalance/rebalanceValues.d.ts +31 -0
  100. package/dist/services/rebalance/rebalanceValues.d.ts.map +1 -0
  101. package/dist/services/rebalance/rebalanceValues.js +118 -0
  102. package/dist/services/rebalance/solautoFees.d.ts +13 -0
  103. package/dist/services/rebalance/solautoFees.d.ts.map +1 -0
  104. package/dist/services/rebalance/solautoFees.js +54 -0
  105. package/dist/services/solauto/index.d.ts +5 -0
  106. package/dist/services/solauto/index.d.ts.map +1 -0
  107. package/dist/{clients → services/solauto}/referralStateManager.d.ts +4 -5
  108. package/dist/services/solauto/referralStateManager.d.ts.map +1 -0
  109. package/dist/{clients → services/solauto}/referralStateManager.js +10 -12
  110. package/dist/services/solauto/solautoClient.d.ts +59 -0
  111. package/dist/services/solauto/solautoClient.d.ts.map +1 -0
  112. package/dist/{clients → services/solauto}/solautoClient.js +78 -109
  113. package/dist/services/solauto/solautoMarginfiClient.d.ts +34 -0
  114. package/dist/services/solauto/solautoMarginfiClient.d.ts.map +1 -0
  115. package/dist/services/solauto/solautoMarginfiClient.js +322 -0
  116. package/dist/{clients → services/solauto}/txHandler.d.ts +11 -2
  117. package/dist/services/solauto/txHandler.d.ts.map +1 -0
  118. package/dist/services/solauto/txHandler.js +38 -0
  119. package/dist/services/swap/index.d.ts +2 -0
  120. package/dist/services/swap/index.d.ts.map +1 -0
  121. package/dist/{utils/solauto → services/swap}/index.js +1 -2
  122. package/dist/services/swap/jupSwapManager.d.ts +37 -0
  123. package/dist/services/swap/jupSwapManager.d.ts.map +1 -0
  124. package/dist/services/swap/jupSwapManager.js +108 -0
  125. package/dist/services/transactions/index.d.ts.map +1 -0
  126. package/dist/{transactions → services/transactions}/transactionUtils.d.ts +3 -5
  127. package/dist/services/transactions/transactionUtils.d.ts.map +1 -0
  128. package/dist/{transactions → services/transactions}/transactionUtils.js +29 -137
  129. package/dist/{transactions → services/transactions}/transactionsManager.d.ts +4 -4
  130. package/dist/services/transactions/transactionsManager.d.ts.map +1 -0
  131. package/dist/{transactions → services/transactions}/transactionsManager.js +10 -8
  132. package/dist/solautoPosition/index.d.ts +4 -0
  133. package/dist/solautoPosition/index.d.ts.map +1 -0
  134. package/dist/solautoPosition/index.js +19 -0
  135. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +14 -0
  136. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -0
  137. package/dist/solautoPosition/marginfiSolautoPositionEx.js +73 -0
  138. package/dist/solautoPosition/solautoPositionEx.d.ts +67 -0
  139. package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -0
  140. package/dist/solautoPosition/solautoPositionEx.js +143 -0
  141. package/dist/solautoPosition/utils.d.ts +17 -0
  142. package/dist/solautoPosition/utils.d.ts.map +1 -0
  143. package/dist/solautoPosition/utils.js +115 -0
  144. package/dist/types/solauto.d.ts +19 -1
  145. package/dist/types/solauto.d.ts.map +1 -1
  146. package/dist/utils/generalUtils.d.ts +1 -0
  147. package/dist/utils/generalUtils.d.ts.map +1 -1
  148. package/dist/utils/generalUtils.js +9 -1
  149. package/dist/utils/index.d.ts +1 -1
  150. package/dist/utils/index.d.ts.map +1 -1
  151. package/dist/utils/index.js +1 -1
  152. package/dist/utils/jitoUtils.d.ts.map +1 -1
  153. package/dist/utils/jupiterUtils.d.ts +3 -28
  154. package/dist/utils/jupiterUtils.d.ts.map +1 -1
  155. package/dist/utils/jupiterUtils.js +2 -73
  156. package/dist/utils/marginfiUtils.d.ts +4 -3
  157. package/dist/utils/marginfiUtils.d.ts.map +1 -1
  158. package/dist/utils/marginfiUtils.js +47 -18
  159. package/dist/utils/numberUtils.d.ts +3 -6
  160. package/dist/utils/numberUtils.d.ts.map +1 -1
  161. package/dist/utils/numberUtils.js +13 -48
  162. package/dist/utils/priceUtils.js +1 -1
  163. package/dist/utils/solanaUtils.js +2 -2
  164. package/dist/utils/{solauto/generalUtils.d.ts → solautoUtils.d.ts} +9 -16
  165. package/dist/utils/solautoUtils.d.ts.map +1 -0
  166. package/dist/utils/{solauto/generalUtils.js → solautoUtils.js} +48 -173
  167. package/dist/utils/switchboardUtils.d.ts +1 -1
  168. package/dist/utils/switchboardUtils.d.ts.map +1 -1
  169. package/dist/utils/switchboardUtils.js +10 -9
  170. package/local/createTokenAccounts.ts +1 -5
  171. package/local/logPositions.ts +22 -68
  172. package/local/shared.ts +29 -24
  173. package/local/txSandbox.ts +27 -0
  174. package/local/updateMarginfiLUT.ts +80 -4
  175. package/package.json +4 -7
  176. package/src/constants/solautoConstants.ts +4 -9
  177. package/src/constants/switchboardConstants.ts +10 -5
  178. package/src/generated/accounts/solautoPosition.ts +2 -2
  179. package/src/generated/errors/solauto.ts +45 -4
  180. package/src/generated/instructions/claimReferralFees.ts +1 -1
  181. package/src/generated/instructions/closePosition.ts +3 -3
  182. package/src/generated/instructions/marginfiOpenPosition.ts +0 -7
  183. package/src/generated/instructions/marginfiRebalance.ts +12 -3
  184. package/src/generated/types/index.ts +7 -1
  185. package/src/generated/types/positionData.ts +3 -3
  186. package/src/generated/types/positionState.ts +12 -12
  187. package/src/generated/types/{positionTokenUsage.ts → positionTokenState.ts} +13 -16
  188. package/src/generated/types/rebalanceData.ts +16 -27
  189. package/src/generated/types/rebalanceDirection.ts +1 -0
  190. package/src/generated/types/rebalanceInstructionData.ts +62 -0
  191. package/src/generated/types/rebalanceStateValues.ts +59 -0
  192. package/src/generated/types/rebalanceStep.ts +25 -0
  193. package/src/generated/types/solautoRebalanceType.ts +0 -1
  194. package/src/generated/types/solautoSettingsParameters.ts +4 -25
  195. package/src/generated/types/solautoSettingsParametersInp.ts +2 -24
  196. package/src/generated/types/swapType.ts +22 -0
  197. package/src/generated/types/tokenBalanceChange.ts +46 -0
  198. package/src/generated/types/tokenBalanceChangeType.ts +28 -0
  199. package/src/generated/types/updatePositionData.ts +3 -3
  200. package/src/index.ts +8 -8
  201. package/src/marginfi-sdk/types/interestRateConfig.ts +6 -2
  202. package/src/services/flashLoans/flProviderAggregator.ts +74 -0
  203. package/src/services/flashLoans/flProviderBase.ts +88 -0
  204. package/src/services/flashLoans/index.ts +3 -0
  205. package/src/services/flashLoans/marginfiFlProvider.ts +392 -0
  206. package/src/services/index.ts +5 -0
  207. package/src/services/rebalance/index.ts +2 -0
  208. package/src/services/rebalance/rebalanceSwapManager.ts +218 -0
  209. package/src/services/rebalance/rebalanceTxBuilder.ts +330 -0
  210. package/src/services/rebalance/rebalanceValues.ts +232 -0
  211. package/src/services/rebalance/solautoFees.ts +61 -0
  212. package/src/services/solauto/index.ts +4 -0
  213. package/src/{clients → services/solauto}/referralStateManager.ts +17 -31
  214. package/src/{clients → services/solauto}/solautoClient.ts +142 -205
  215. package/src/services/solauto/solautoMarginfiClient.ts +472 -0
  216. package/src/services/solauto/txHandler.ts +69 -0
  217. package/src/services/swap/index.ts +1 -0
  218. package/src/services/swap/jupSwapManager.ts +189 -0
  219. package/src/{transactions → services/transactions}/transactionUtils.ts +40 -280
  220. package/src/{transactions → services/transactions}/transactionsManager.ts +15 -10
  221. package/src/solautoPosition/index.ts +3 -0
  222. package/src/solautoPosition/marginfiSolautoPositionEx.ts +111 -0
  223. package/src/solautoPosition/solautoPositionEx.ts +281 -0
  224. package/src/solautoPosition/utils.ts +188 -0
  225. package/src/types/solauto.ts +30 -2
  226. package/src/utils/generalUtils.ts +9 -1
  227. package/src/utils/index.ts +2 -2
  228. package/src/utils/jitoUtils.ts +0 -4
  229. package/src/utils/jupiterUtils.ts +3 -164
  230. package/src/utils/marginfiUtils.ts +77 -43
  231. package/src/utils/numberUtils.ts +18 -77
  232. package/src/utils/solanaUtils.ts +1 -1
  233. package/src/utils/{solauto/generalUtils.ts → solautoUtils.ts} +66 -288
  234. package/src/utils/switchboardUtils.ts +15 -17
  235. package/tests/transactions/shared.ts +135 -0
  236. package/tests/transactions/solautoMarginfi.ts +8 -198
  237. package/tests/unit/accounts.ts +3 -10
  238. package/tests/unit/lookupTables.ts +23 -2
  239. package/tests/unit/rebalanceCalculations.ts +65 -343
  240. package/dist/clients/index.d.ts +0 -5
  241. package/dist/clients/index.d.ts.map +0 -1
  242. package/dist/clients/referralStateManager.d.ts.map +0 -1
  243. package/dist/clients/solautoClient.d.ts +0 -71
  244. package/dist/clients/solautoClient.d.ts.map +0 -1
  245. package/dist/clients/solautoMarginfiClient.d.ts +0 -51
  246. package/dist/clients/solautoMarginfiClient.d.ts.map +0 -1
  247. package/dist/clients/solautoMarginfiClient.js +0 -497
  248. package/dist/clients/txHandler.d.ts.map +0 -1
  249. package/dist/clients/txHandler.js +0 -23
  250. package/dist/generated/types/positionTokenUsage.d.ts.map +0 -1
  251. package/dist/transactions/index.d.ts.map +0 -1
  252. package/dist/transactions/transactionUtils.d.ts.map +0 -1
  253. package/dist/transactions/transactionsManager.d.ts.map +0 -1
  254. package/dist/utils/solauto/generalUtils.d.ts.map +0 -1
  255. package/dist/utils/solauto/index.d.ts +0 -3
  256. package/dist/utils/solauto/index.d.ts.map +0 -1
  257. package/dist/utils/solauto/rebalanceUtils.d.ts +0 -30
  258. package/dist/utils/solauto/rebalanceUtils.d.ts.map +0 -1
  259. package/dist/utils/solauto/rebalanceUtils.js +0 -287
  260. package/src/clients/index.ts +0 -4
  261. package/src/clients/solautoMarginfiClient.ts +0 -774
  262. package/src/clients/txHandler.ts +0 -38
  263. package/src/utils/solauto/index.ts +0 -2
  264. package/src/utils/solauto/rebalanceUtils.ts +0 -562
  265. package/dist/{clients → services/solauto}/index.js +2 -2
  266. /package/dist/{transactions → services/transactions}/index.d.ts +0 -0
  267. /package/dist/{transactions → services/transactions}/index.js +0 -0
  268. /package/src/{transactions → services/transactions}/index.ts +0 -0
@@ -2,39 +2,14 @@ import { describe, it, before } from "mocha";
2
2
  import { PublicKey } from "@solana/web3.js";
3
3
  import { NATIVE_MINT } from "@solana/spl-token";
4
4
  import { assert } from "chai";
5
- import { SolautoMarginfiClient } from "../../src/clients/solautoMarginfiClient";
6
5
  import { setupTest } from "../shared";
7
- import { getRebalanceValues } from "../../src/utils/solauto/rebalanceUtils";
8
6
  import { publicKey } from "@metaplex-foundation/umi";
9
- import { SolautoClient } from "../../src/clients/solautoClient";
10
7
  import {
11
- DCASettings,
12
8
  LendingPlatform,
13
- PositionType,
14
- RebalanceDirection,
15
- SolautoRebalanceType,
16
9
  SolautoSettingsParameters,
17
- TokenType,
18
10
  } from "../../src/generated";
19
- import {
20
- calcDebtUsd,
21
- calcNetWorthUsd,
22
- calcSupplyUsd,
23
- fromBaseUnit,
24
- fromBps,
25
- getLiqUtilzationRateBps,
26
- getSolautoFeesBps,
27
- toBaseUnit,
28
- } from "../../src/utils/numberUtils";
29
- import { USD_DECIMALS } from "../../src/constants/generalAccounts";
30
- import {
31
- createFakePositionState,
32
- eligibleForNextAutomationPeriod,
33
- getAdjustedSettingsFromAutomation,
34
- getUpdatedValueFromAutomation,
35
- positionStateWithLatestPrices,
36
- } from "../../src/utils/solauto/generalUtils";
37
- import { currentUnixSeconds } from "../../src/utils/generalUtils";
11
+ import { fromBps, getLiqUtilzationRateBps } from "../../src/utils/numberUtils";
12
+ import { getClient } from "../../src/utils/solautoUtils";
38
13
  import { USDC } from "../../src/constants/tokenConstants";
39
14
  import {
40
15
  buildHeliusApiUrl,
@@ -42,6 +17,14 @@ import {
42
17
  getSolanaRpcConnection,
43
18
  safeGetPrice,
44
19
  } from "../../src/utils";
20
+ import {
21
+ createFakePositionState,
22
+ getRebalanceValues,
23
+ MarginfiSolautoPositionEx,
24
+ SolautoClient,
25
+ } from "../../src";
26
+ import { SolautoFeesBps } from "../../src/services/rebalance/solautoFees";
27
+ import { buildIronforgeApiUrl } from "../../dist";
45
28
 
46
29
  const signer = setupTest(undefined, true);
47
30
  const [conn, _] = getSolanaRpcConnection(
@@ -51,45 +34,23 @@ const [conn, _] = getSolanaRpcConnection(
51
34
  function assertAccurateRebalance(
52
35
  client: SolautoClient,
53
36
  expectedLiqUtilizationRateBps: number,
54
- targetLiqUtilizationRateBps?: number,
55
- expectedUsdToDcaIn?: number
37
+ targetLiqUtilizationRateBps?: number
56
38
  ) {
57
- const { rebalanceDirection, debtAdjustmentUsd, amountUsdToDcaIn } =
58
- getRebalanceValues(
59
- client.solautoPositionState!,
60
- client.solautoPositionSettings(),
61
- client.solautoPositionActiveDca(),
62
- currentUnixSeconds(),
63
- safeGetPrice(client.supplyMint)!,
64
- safeGetPrice(client.debtMint)!,
65
- targetLiqUtilizationRateBps
66
- );
67
-
68
- let adjustmentFeeBps = 0;
69
- adjustmentFeeBps = getSolautoFeesBps(
70
- client.referredBy !== undefined,
71
- targetLiqUtilizationRateBps,
72
- calcNetWorthUsd(client.solautoPositionState),
73
- rebalanceDirection
74
- ).total;
75
-
76
- assert(
77
- Math.round(amountUsdToDcaIn) === Math.round(expectedUsdToDcaIn ?? 0),
78
- `Expected DCA-in amount does not match ${Math.round(
79
- amountUsdToDcaIn
80
- )}, ${Math.round(expectedUsdToDcaIn ?? 0)}`
39
+ const { endResult } = getRebalanceValues(
40
+ client.solautoPosition,
41
+ new SolautoFeesBps(
42
+ false,
43
+ targetLiqUtilizationRateBps,
44
+ client.solautoPosition.netWorthUsd()
45
+ ),
46
+ 50,
47
+ targetLiqUtilizationRateBps
81
48
  );
82
49
 
83
- const newSupply =
84
- calcSupplyUsd(client.solautoPositionState) +
85
- (debtAdjustmentUsd - debtAdjustmentUsd * fromBps(adjustmentFeeBps)) +
86
- amountUsdToDcaIn;
87
- const newDebt = calcDebtUsd(client.solautoPositionState) + debtAdjustmentUsd;
88
-
89
50
  const newLiqUtilizationRateBps = getLiqUtilzationRateBps(
90
- newSupply,
91
- newDebt,
92
- client.solautoPositionState!.liqThresholdBps
51
+ endResult.supplyUsd,
52
+ endResult.debtUsd,
53
+ client.solautoPosition.state().liqThresholdBps
93
54
  );
94
55
  assert(
95
56
  Math.round(newLiqUtilizationRateBps) ===
@@ -102,16 +63,14 @@ async function getFakePosition(
102
63
  supplyPrice: number,
103
64
  debtPrice: number,
104
65
  fakeLiqUtilizationRateBps: number,
105
- settings: SolautoSettingsParameters,
106
- dca?: DCASettings
66
+ settings: SolautoSettingsParameters
107
67
  ): Promise<SolautoClient> {
108
- const client = new SolautoMarginfiClient(
109
- buildHeliusApiUrl(process.env.HELIUS_API_KEY!),
110
- true
111
- );
68
+ const client = getClient(LendingPlatform.Marginfi, {
69
+ signer,
70
+ rpcUrl: buildIronforgeApiUrl(process.env.IRONFORGE_API_KEY!),
71
+ });
112
72
  await client.initialize({
113
73
  positionId: 1,
114
- signer,
115
74
  supplyMint: new PublicKey(NATIVE_MINT),
116
75
  debtMint: new PublicKey(USDC),
117
76
  });
@@ -119,81 +78,43 @@ async function getFakePosition(
119
78
  const supplyUsd = 1000;
120
79
  const maxLtvBps = 6400;
121
80
  const liqThresholdBps = 8181;
122
- client.solautoPositionState = await positionStateWithLatestPrices(
123
- createFakePositionState(
124
- {
125
- amountUsed: supplyUsd / supplyPrice,
126
- price: safeGetPrice(NATIVE_MINT)!,
127
- mint: NATIVE_MINT,
128
- },
129
- {
130
- amountUsed:
131
- (supplyUsd *
132
- fromBps(liqThresholdBps) *
133
- fromBps(fakeLiqUtilizationRateBps)) /
134
- debtPrice,
135
- price: 1,
136
- mint: new PublicKey(USDC),
137
- },
138
- maxLtvBps,
139
- liqThresholdBps
140
- )
141
- );
142
81
 
143
- client.solautoPositionData = {
144
- positionId: [1],
145
- bump: [0],
146
- selfManaged: {
147
- val: false,
82
+ const fakeState = createFakePositionState(
83
+ {
84
+ amountUsed: supplyUsd / supplyPrice,
85
+ price: safeGetPrice(NATIVE_MINT)!,
86
+ mint: NATIVE_MINT,
148
87
  },
149
- authority: client.signer.publicKey,
150
- position: {
151
- dca: dca ?? {
152
- automation: {
153
- targetPeriods: 0,
154
- periodsPassed: 0,
155
- unixStartDate: BigInt(0),
156
- intervalSeconds: BigInt(0),
157
- padding1: [],
158
- padding: new Uint8Array([]),
159
- },
160
- dcaInBaseUnit: BigInt(0),
161
- tokenType: TokenType.Debt,
162
- padding: [],
163
- },
164
- lendingPlatform: LendingPlatform.Marginfi,
165
- protocolSupplyAccount: publicKey(PublicKey.default),
166
- protocolDebtAccount: publicKey(PublicKey.default),
167
- protocolUserAccount: publicKey(PublicKey.default),
168
- settingParams: settings,
169
- padding1: [],
170
- padding: [],
171
- },
172
- state: client.solautoPositionState!,
173
- rebalance: {
174
- rebalanceType: SolautoRebalanceType.Regular,
175
- rebalanceDirection: RebalanceDirection.Boost,
176
- flashLoanAmount: BigInt(0),
177
- padding1: [],
178
- padding2: [],
179
- padding: new Uint8Array([]),
88
+ {
89
+ amountUsed:
90
+ (supplyUsd *
91
+ fromBps(liqThresholdBps) *
92
+ fromBps(fakeLiqUtilizationRateBps)) /
93
+ debtPrice,
94
+ price: 1,
95
+ mint: new PublicKey(USDC),
180
96
  },
181
- positionType: PositionType.Leverage,
182
- padding1: [],
183
- padding: [],
184
- publicKey: publicKey(PublicKey.default),
185
- header: {
186
- executable: false,
187
- lamports: {
188
- basisPoints: BigInt(0),
189
- decimals: 9,
190
- identifier: "SOL",
97
+ maxLtvBps,
98
+ liqThresholdBps
99
+ );
100
+
101
+ client.solautoPosition = new MarginfiSolautoPositionEx({
102
+ umi: client.umi,
103
+ publicKey: PublicKey.default,
104
+ data: {
105
+ state: fakeState,
106
+ position: {
107
+ lendingPlatform: LendingPlatform.Marginfi,
108
+ protocolUserAccount: publicKey(PublicKey.default),
109
+ protocolSupplyAccount: publicKey(PublicKey.default),
110
+ protocolDebtAccount: publicKey(PublicKey.default),
111
+ settings,
112
+ dca: null,
113
+ padding: [],
114
+ padding1: [],
191
115
  },
192
- owner: publicKey(PublicKey.default),
193
116
  },
194
- };
195
-
196
- client.solautoPositionState!.lastUpdated = BigInt(currentUnixSeconds());
117
+ });
197
118
 
198
119
  return client;
199
120
  }
@@ -211,71 +132,13 @@ async function rebalanceFromFakePosition(
211
132
  settings
212
133
  );
213
134
 
214
- const adjustedSettings = getAdjustedSettingsFromAutomation(
215
- settings,
216
- currentUnixSeconds()
217
- );
218
135
  const expectedLiqUtilizationRateBps =
219
- fakeLiqUtilizationRateBps <
220
- adjustedSettings.boostToBps - adjustedSettings.boostGap
221
- ? adjustedSettings.boostToBps
222
- : adjustedSettings.repayToBps;
136
+ fakeLiqUtilizationRateBps < settings.boostToBps - settings.boostGap
137
+ ? settings.boostToBps
138
+ : settings.repayToBps;
223
139
  assertAccurateRebalance(client, expectedLiqUtilizationRateBps);
224
140
  }
225
141
 
226
- async function dcaRebalanceFromFakePosition(
227
- supplyPrice: number,
228
- debtPrice: number,
229
- fakeLiqUtilizationRateBps: number,
230
- settings: SolautoSettingsParameters,
231
- dca: DCASettings
232
- ) {
233
- const client = await getFakePosition(
234
- supplyPrice,
235
- debtPrice,
236
- fakeLiqUtilizationRateBps,
237
- settings,
238
- dca
239
- );
240
-
241
- const adjustedSettings = getAdjustedSettingsFromAutomation(
242
- settings,
243
- currentUnixSeconds()
244
- );
245
- const expectedLiqUtilizationRateBps =
246
- dca.dcaInBaseUnit > BigInt(0)
247
- ? Math.max(fakeLiqUtilizationRateBps, adjustedSettings.boostToBps)
248
- : adjustedSettings.boostToBps;
249
-
250
- const expectedDcaInAmount =
251
- dca.dcaInBaseUnit > BigInt(0) &&
252
- eligibleForNextAutomationPeriod(dca.automation, currentUnixSeconds())
253
- ? dca.dcaInBaseUnit -
254
- BigInt(
255
- Math.round(
256
- getUpdatedValueFromAutomation(
257
- Number(dca.dcaInBaseUnit),
258
- 0,
259
- dca.automation,
260
- currentUnixSeconds()
261
- )
262
- )
263
- )
264
- : BigInt(0);
265
- const expectedUsdToDcaIn =
266
- fromBaseUnit(
267
- BigInt(Math.round(Number(expectedDcaInAmount))),
268
- client.solautoPositionState!.debt.decimals
269
- ) * debtPrice;
270
-
271
- assertAccurateRebalance(
272
- client,
273
- expectedLiqUtilizationRateBps,
274
- undefined,
275
- expectedUsdToDcaIn
276
- );
277
- }
278
-
279
142
  describe("Rebalance tests", async () => {
280
143
  let supplyPrice: number, debtPrice: number;
281
144
 
@@ -292,17 +155,7 @@ describe("Rebalance tests", async () => {
292
155
  boostGap: 100,
293
156
  repayToBps: 7000,
294
157
  repayGap: 250,
295
- automation: {
296
- targetPeriods: 0,
297
- periodsPassed: 0,
298
- unixStartDate: BigInt(0),
299
- intervalSeconds: BigInt(0),
300
- padding1: [],
301
- padding: new Uint8Array([]),
302
- },
303
- targetBoostToBps: 0,
304
- padding1: [],
305
- padding: new Uint8Array([]),
158
+ padding: [],
306
159
  });
307
160
 
308
161
  assertAccurateRebalance(client, 5000, 5000);
@@ -311,145 +164,14 @@ describe("Rebalance tests", async () => {
311
164
 
312
165
  it("Standard boost or repay", async () => {
313
166
  const settings: SolautoSettingsParameters = {
314
- automation: {
315
- targetPeriods: 0,
316
- periodsPassed: 0,
317
- unixStartDate: BigInt(0),
318
- intervalSeconds: BigInt(0),
319
- padding1: [],
320
- padding: new Uint8Array([]),
321
- },
322
- targetBoostToBps: 0,
323
167
  boostGap: 1000,
324
168
  boostToBps: 4000,
325
169
  repayGap: 1000,
326
170
  repayToBps: 7500,
327
- padding1: [],
328
- padding: new Uint8Array([]),
171
+ padding: [],
329
172
  };
330
173
 
331
174
  await rebalanceFromFakePosition(supplyPrice, debtPrice, 1000, settings);
332
175
  await rebalanceFromFakePosition(supplyPrice, debtPrice, 9000, settings);
333
176
  });
334
-
335
- it("Rebalance with settings automation", async () => {
336
- const settings: SolautoSettingsParameters = {
337
- automation: {
338
- targetPeriods: 2,
339
- periodsPassed: 1,
340
- intervalSeconds: BigInt(5),
341
- unixStartDate: BigInt(currentUnixSeconds() - 5),
342
- padding1: [],
343
- padding: new Uint8Array([]),
344
- },
345
- targetBoostToBps: 5000,
346
- boostGap: 1000,
347
- boostToBps: 4000,
348
- repayGap: 1000,
349
- repayToBps: 7500,
350
- padding1: [],
351
- padding: new Uint8Array([]),
352
- };
353
- await rebalanceFromFakePosition(supplyPrice, debtPrice, 3500, settings);
354
-
355
- settings.automation.targetPeriods = 5;
356
- await rebalanceFromFakePosition(supplyPrice, debtPrice, 3100, settings);
357
-
358
- settings.automation.periodsPassed = 0;
359
- settings.automation.unixStartDate = BigInt(currentUnixSeconds());
360
- await rebalanceFromFakePosition(supplyPrice, debtPrice, 3100, settings);
361
- });
362
-
363
- it("Rebalance DCA out", async () => {
364
- const settings: SolautoSettingsParameters = {
365
- automation: {
366
- targetPeriods: 4,
367
- periodsPassed: 0,
368
- intervalSeconds: BigInt(5),
369
- unixStartDate: BigInt(currentUnixSeconds()),
370
- padding1: [],
371
- padding: new Uint8Array([]),
372
- },
373
- targetBoostToBps: 0,
374
- boostGap: 1000,
375
- boostToBps: 4000,
376
- repayGap: 1000,
377
- repayToBps: 7500,
378
- padding1: [],
379
- padding: new Uint8Array([]),
380
- };
381
- const dca: DCASettings = {
382
- automation: {
383
- targetPeriods: 4,
384
- periodsPassed: 0,
385
- intervalSeconds: BigInt(5),
386
- unixStartDate: BigInt(currentUnixSeconds()),
387
- padding1: [],
388
- padding: new Uint8Array([]),
389
- },
390
- dcaInBaseUnit: BigInt(0),
391
- tokenType: TokenType.Debt,
392
- padding: [],
393
- };
394
- await dcaRebalanceFromFakePosition(
395
- supplyPrice,
396
- debtPrice,
397
- 3500,
398
- settings,
399
- dca
400
- );
401
-
402
- settings.boostToBps = 1500;
403
- settings.automation.periodsPassed = 3;
404
- settings.automation.unixStartDate = BigInt(currentUnixSeconds() - 3 * 5);
405
- dca.automation.periodsPassed = 3;
406
- dca.automation.unixStartDate = BigInt(currentUnixSeconds() - 3 * 5);
407
- await dcaRebalanceFromFakePosition(
408
- supplyPrice,
409
- debtPrice,
410
- 3500,
411
- settings,
412
- dca
413
- );
414
- });
415
-
416
- it("Rebalance DCA in", async () => {
417
- const settings: SolautoSettingsParameters = {
418
- automation: {
419
- targetPeriods: 3,
420
- periodsPassed: 0,
421
- intervalSeconds: BigInt(5),
422
- unixStartDate: BigInt(currentUnixSeconds()),
423
- padding1: [],
424
- padding: new Uint8Array([]),
425
- },
426
- targetBoostToBps: 5000,
427
- boostGap: 1000,
428
- boostToBps: 4000,
429
- repayGap: 1000,
430
- repayToBps: 7500,
431
- padding1: [],
432
- padding: new Uint8Array([]),
433
- };
434
- const dca: DCASettings = {
435
- automation: {
436
- targetPeriods: 4,
437
- periodsPassed: 0,
438
- intervalSeconds: BigInt(5),
439
- unixStartDate: BigInt(currentUnixSeconds()),
440
- padding1: [],
441
- padding: new Uint8Array([]),
442
- },
443
- dcaInBaseUnit: toBaseUnit(debtPrice * 300, 6),
444
- tokenType: TokenType.Debt,
445
- padding: [],
446
- };
447
- await dcaRebalanceFromFakePosition(
448
- supplyPrice,
449
- debtPrice,
450
- 3500,
451
- settings,
452
- dca
453
- );
454
- });
455
177
  });
@@ -1,5 +0,0 @@
1
- export * from './solautoMarginfiClient';
2
- export * from './solautoClient';
3
- export * from './referralStateManager';
4
- export * from './txHandler';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"referralStateManager.d.ts","sourceRoot":"","sources":["../../src/clients/referralStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAEL,MAAM,EAEN,kBAAkB,EAClB,GAAG,EACJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,aAAa,EAEd,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IAC1C,GAAG,EAAG,GAAG,CAAC;IAEV,aAAa,EAAG,SAAS,CAAC;IAC1B,iBAAiB,EAAG,aAAa,GAAG,IAAI,CAAC;IACzC,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;IAE7B,UAAU,CAAC,IAAI,EAAE,wBAAwB;IAkC/C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS;IAsBpC,sBAAsB,CACpB,YAAY,CAAC,EAAE,SAAS,EACxB,WAAW,CAAC,EAAE,SAAS,GACtB,kBAAkB;IAerB,mBAAmB,IAAI,kBAAkB;IA0BnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3D"}
@@ -1,71 +0,0 @@
1
- import "rpc-websockets/dist/lib/client";
2
- import { PublicKey } from "@solana/web3.js";
3
- import { TransactionBuilder } from "@metaplex-foundation/umi";
4
- import { DCASettings, DCASettingsInpArgs, LendingPlatform, PositionState, SolautoActionArgs, SolautoPosition, SolautoRebalanceType, SolautoRebalanceTypeArgs, SolautoSettingsParameters, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../generated";
5
- import { FlashLoanDetails, RebalanceValues } from "../utils/solauto/rebalanceUtils";
6
- import { ContextUpdates } from "../utils/solauto/generalUtils";
7
- import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
8
- import { QuoteResponse } from "@jup-ag/api";
9
- export interface SolautoClientArgs extends ReferralStateManagerArgs {
10
- new?: boolean;
11
- positionId?: number;
12
- supplyMint?: PublicKey;
13
- debtMint?: PublicKey;
14
- }
15
- export declare abstract class SolautoClient extends ReferralStateManager {
16
- lendingPlatform?: LendingPlatform;
17
- authority: PublicKey;
18
- positionId: number;
19
- selfManaged: boolean;
20
- solautoPosition: PublicKey;
21
- solautoPositionData: SolautoPosition | null;
22
- solautoPositionState: PositionState | undefined;
23
- maxLtvBps?: number;
24
- liqThresholdBps?: number;
25
- supplyMint: PublicKey;
26
- positionSupplyTa: PublicKey;
27
- signerSupplyTa: PublicKey;
28
- debtMint: PublicKey;
29
- positionDebtTa: PublicKey;
30
- signerDebtTa: PublicKey;
31
- solautoFeesSupplyTa: PublicKey;
32
- solautoFeesDebtTa: PublicKey;
33
- authorityLutAddress?: PublicKey;
34
- contextUpdates: ContextUpdates;
35
- private signerSupplyBalance;
36
- private signerDebtBalance;
37
- initialize(args: SolautoClientArgs): Promise<void>;
38
- referredBySupplyTa(): PublicKey | undefined;
39
- referredByDebtTa(): PublicKey | undefined;
40
- resetLiveTxUpdates(success?: boolean): Promise<void>;
41
- abstract protocolAccount(): PublicKey;
42
- defaultLookupTables(): string[];
43
- lutAccountsToAdd(): PublicKey[];
44
- fetchExistingAuthorityLutAccounts(): Promise<PublicKey[]>;
45
- updateLookupTable(): Promise<{
46
- tx: TransactionBuilder;
47
- new: boolean;
48
- accountsToAdd: PublicKey[];
49
- } | undefined>;
50
- signerBalances(): Promise<{
51
- supplyBalance: bigint;
52
- debtBalance: bigint;
53
- }>;
54
- solautoPositionSettings(): SolautoSettingsParameters | undefined;
55
- solautoPositionActiveDca(): DCASettings | undefined;
56
- maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
57
- openPosition(settingParams?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionBuilder;
58
- updatePositionIx(args: UpdatePositionDataArgs): TransactionBuilder;
59
- closePositionIx(): TransactionBuilder;
60
- cancelDCAIx(): TransactionBuilder;
61
- abstract refresh(): TransactionBuilder;
62
- protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
63
- abstract flashBorrow(rebalanceType: SolautoRebalanceType, flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
64
- abstract flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
65
- abstract rebalance(rebalanceStep: "A" | "B", jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, rebalanceValues: RebalanceValues, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
66
- getFreshPositionState(): Promise<PositionState | undefined>;
67
- abstract supplyLiquidityAvailable(): bigint;
68
- abstract supplyLiquidityDepositable(): bigint;
69
- abstract debtLiquidityAvailable(): bigint;
70
- }
71
- //# sourceMappingURL=solautoClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoClient.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { Signer, TransactionBuilder } from "@metaplex-foundation/umi";
2
- import { PublicKey } from "@solana/web3.js";
3
- import { SolautoClient, SolautoClientArgs } from "./solautoClient";
4
- import { MarginfiAssetAccounts } from "../types/accounts";
5
- import { DCASettingsInpArgs, PositionState, SolautoActionArgs, SolautoRebalanceType, SolautoRebalanceTypeArgs, SolautoSettingsParametersInpArgs } from "../generated";
6
- import { MarginfiAccount } from "../marginfi-sdk";
7
- import { FlashLoanDetails, RebalanceValues } from "../utils/solauto/rebalanceUtils";
8
- import { QuoteResponse } from "@jup-ag/api";
9
- export interface SolautoMarginfiClientArgs extends SolautoClientArgs {
10
- marginfiAccount?: PublicKey | Signer;
11
- marginfiAccountSeedIdx?: bigint;
12
- marginfiGroup?: PublicKey;
13
- }
14
- export declare class SolautoMarginfiClient extends SolautoClient {
15
- private initializedFor?;
16
- marginfiProgram: PublicKey;
17
- marginfiAccountSeedIdx: bigint;
18
- marginfiAccount: PublicKey | Signer;
19
- marginfiAccountPk: PublicKey;
20
- marginfiGroup: PublicKey;
21
- marginfiSupplyAccounts: MarginfiAssetAccounts;
22
- marginfiDebtAccounts: MarginfiAssetAccounts;
23
- supplyPriceOracle: PublicKey;
24
- debtPriceOracle: PublicKey;
25
- intermediaryMarginfiAccountSigner?: Signer;
26
- intermediaryMarginfiAccountPk: PublicKey;
27
- intermediaryMarginfiAccount?: MarginfiAccount;
28
- private supplyBank;
29
- private debtBank;
30
- initialize(args: SolautoMarginfiClientArgs): Promise<void>;
31
- setIntermediaryMarginfiDetails(): Promise<void>;
32
- protocolAccount(): PublicKey;
33
- defaultLookupTables(): string[];
34
- lutAccountsToAdd(): PublicKey[];
35
- maxLtvAndLiqThresholdBps(): Promise<[number, number]>;
36
- marginfiAccountInitialize(marginfiAccount: Signer): TransactionBuilder;
37
- openPosition(settingParams?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionBuilder;
38
- private marginfiOpenPositionIx;
39
- refresh(): TransactionBuilder;
40
- protocolInteraction(args: SolautoActionArgs): TransactionBuilder;
41
- private marginfiProtocolInteractionIx;
42
- private marginfiSolautoProtocolInteractionIx;
43
- rebalance(rebalanceStep: "A" | "B", jupQuote: QuoteResponse, rebalanceType: SolautoRebalanceTypeArgs, rebalanceValues: RebalanceValues, flashLoan?: FlashLoanDetails, targetLiqUtilizationRateBps?: number): TransactionBuilder;
44
- flashBorrow(rebalanceType: SolautoRebalanceType, flashLoanDetails: FlashLoanDetails, destinationTokenAccount: PublicKey): TransactionBuilder;
45
- flashRepay(flashLoanDetails: FlashLoanDetails): TransactionBuilder;
46
- getFreshPositionState(): Promise<PositionState | undefined>;
47
- supplyLiquidityAvailable(): bigint;
48
- supplyLiquidityDepositable(): bigint;
49
- debtLiquidityAvailable(): bigint;
50
- }
51
- //# sourceMappingURL=solautoMarginfiClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solautoMarginfiClient.d.ts","sourceRoot":"","sources":["../../src/clients/solautoMarginfiClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EACL,kBAAkB,EAElB,aAAa,EAGb,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAKjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAUzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,cAAc,CAAC,CAAY;IAE5B,eAAe,EAAG,SAAS,CAAC;IAE5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,eAAe,EAAG,SAAS,GAAG,MAAM,CAAC;IACrC,iBAAiB,EAAG,SAAS,CAAC;IAC9B,aAAa,EAAG,SAAS,CAAC;IAE1B,sBAAsB,EAAG,qBAAqB,CAAC;IAC/C,oBAAoB,EAAG,qBAAqB,CAAC;IAE7C,iBAAiB,EAAG,SAAS,CAAC;IAC9B,eAAe,EAAG,SAAS,CAAC;IAG5B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,EAAG,SAAS,CAAC;IAC1C,2BAA2B,CAAC,EAAE,eAAe,CAAC;IAErD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAqB;IAE/B,UAAU,CAAC,IAAI,EAAE,yBAAyB;IAiG1C,8BAA8B;IAwCpC,eAAe,IAAI,SAAS;IAI5B,mBAAmB,IAAI,MAAM,EAAE;IAI/B,gBAAgB,IAAI,SAAS,EAAE;IAUzB,wBAAwB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA0B3D,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB;IAStE,YAAY,CACV,aAAa,CAAC,EAAE,gCAAgC,EAChD,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IAMrB,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,IAAI,kBAAkB;IAc7B,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAUhE,OAAO,CAAC,6BAA6B;IAmErC,OAAO,CAAC,oCAAoC;IA0D5C,SAAS,CACP,aAAa,EAAE,GAAG,GAAG,GAAG,EACxB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,wBAAwB,EACvC,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,gBAAgB,EAC5B,2BAA2B,CAAC,EAAE,MAAM,GACnC,kBAAkB;IA+ErB,WAAW,CACT,aAAa,EAAE,oBAAoB,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,SAAS,GACjC,kBAAkB;IA2CrB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,kBAAkB;IAwF5D,qBAAqB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmDjE,wBAAwB,IAAI,MAAM;IAIlC,0BAA0B,IAAI,MAAM;IAIpC,sBAAsB,IAAI,MAAM;CAGjC"}