@haven-fi/solauto-sdk 1.0.582 → 1.0.584

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 (260) 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/generated/accounts/solautoPosition.js +2 -2
  5. package/dist/generated/errors/solauto.d.ts +14 -2
  6. package/dist/generated/errors/solauto.d.ts.map +1 -1
  7. package/dist/generated/errors/solauto.js +27 -5
  8. package/dist/generated/instructions/claimReferralFees.d.ts +1 -1
  9. package/dist/generated/instructions/claimReferralFees.d.ts.map +1 -1
  10. package/dist/generated/instructions/closePosition.d.ts +1 -1
  11. package/dist/generated/instructions/closePosition.d.ts.map +1 -1
  12. package/dist/generated/instructions/closePosition.js +2 -2
  13. package/dist/generated/instructions/marginfiOpenPosition.d.ts +1 -3
  14. package/dist/generated/instructions/marginfiOpenPosition.d.ts.map +1 -1
  15. package/dist/generated/instructions/marginfiOpenPosition.js +0 -1
  16. package/dist/generated/instructions/marginfiRebalance.d.ts +7 -3
  17. package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
  18. package/dist/generated/instructions/marginfiRebalance.js +3 -1
  19. package/dist/generated/types/index.d.ts +7 -1
  20. package/dist/generated/types/index.d.ts.map +1 -1
  21. package/dist/generated/types/index.js +7 -1
  22. package/dist/generated/types/positionData.d.ts +2 -2
  23. package/dist/generated/types/positionData.d.ts.map +1 -1
  24. package/dist/generated/types/positionData.js +1 -1
  25. package/dist/generated/types/positionState.d.ts +7 -7
  26. package/dist/generated/types/positionState.d.ts.map +1 -1
  27. package/dist/generated/types/positionState.js +3 -3
  28. package/dist/generated/types/{positionTokenUsage.d.ts → positionTokenState.d.ts} +6 -8
  29. package/dist/generated/types/positionTokenState.d.ts.map +1 -0
  30. package/dist/generated/types/{positionTokenUsage.js → positionTokenState.js} +6 -7
  31. package/dist/generated/types/rebalanceData.d.ts +7 -13
  32. package/dist/generated/types/rebalanceData.d.ts.map +1 -1
  33. package/dist/generated/types/rebalanceData.js +3 -6
  34. package/dist/generated/types/rebalanceDirection.d.ts +3 -2
  35. package/dist/generated/types/rebalanceDirection.d.ts.map +1 -1
  36. package/dist/generated/types/rebalanceDirection.js +3 -2
  37. package/dist/generated/types/rebalanceInstructionData.d.ts +27 -0
  38. package/dist/generated/types/rebalanceInstructionData.d.ts.map +1 -0
  39. package/dist/generated/types/rebalanceInstructionData.js +22 -0
  40. package/dist/generated/types/rebalanceStateValues.d.ts +27 -0
  41. package/dist/generated/types/rebalanceStateValues.d.ts.map +1 -0
  42. package/dist/generated/types/rebalanceStateValues.js +22 -0
  43. package/dist/generated/types/rebalanceStep.d.ts +15 -0
  44. package/dist/generated/types/rebalanceStep.d.ts.map +1 -0
  45. package/dist/generated/types/rebalanceStep.js +22 -0
  46. package/dist/generated/types/solautoRebalanceType.d.ts +4 -5
  47. package/dist/generated/types/solautoRebalanceType.d.ts.map +1 -1
  48. package/dist/generated/types/solautoRebalanceType.js +4 -5
  49. package/dist/generated/types/solautoSettingsParameters.d.ts +2 -15
  50. package/dist/generated/types/solautoSettingsParameters.d.ts.map +1 -1
  51. package/dist/generated/types/solautoSettingsParameters.js +1 -5
  52. package/dist/generated/types/solautoSettingsParametersInp.d.ts +1 -12
  53. package/dist/generated/types/solautoSettingsParametersInp.d.ts.map +1 -1
  54. package/dist/generated/types/solautoSettingsParametersInp.js +0 -3
  55. package/dist/generated/types/swapType.d.ts +15 -0
  56. package/dist/generated/types/swapType.d.ts.map +1 -0
  57. package/dist/generated/types/swapType.js +22 -0
  58. package/dist/generated/types/tokenBalanceChange.d.ts +21 -0
  59. package/dist/generated/types/tokenBalanceChange.d.ts.map +1 -0
  60. package/dist/generated/types/tokenBalanceChange.js +19 -0
  61. package/dist/generated/types/tokenBalanceChangeType.d.ts +18 -0
  62. package/dist/generated/types/tokenBalanceChangeType.d.ts.map +1 -0
  63. package/dist/generated/types/tokenBalanceChangeType.js +25 -0
  64. package/dist/generated/types/updatePositionData.d.ts +2 -2
  65. package/dist/generated/types/updatePositionData.d.ts.map +1 -1
  66. package/dist/generated/types/updatePositionData.js +1 -1
  67. package/dist/index.d.ts +8 -6
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +5 -5
  70. package/dist/marginfi-sdk/types/interestRateConfig.d.ts +3 -1
  71. package/dist/marginfi-sdk/types/interestRateConfig.d.ts.map +1 -1
  72. package/dist/marginfi-sdk/types/interestRateConfig.js +2 -1
  73. package/dist/services/flashLoans/flProviderAggregator.d.ts +19 -0
  74. package/dist/services/flashLoans/flProviderAggregator.d.ts.map +1 -0
  75. package/dist/services/flashLoans/flProviderAggregator.js +46 -0
  76. package/dist/services/flashLoans/flProviderBase.d.ts +23 -0
  77. package/dist/services/flashLoans/flProviderBase.d.ts.map +1 -0
  78. package/dist/services/flashLoans/flProviderBase.js +37 -0
  79. package/dist/services/flashLoans/index.d.ts +4 -0
  80. package/dist/services/flashLoans/index.d.ts.map +1 -0
  81. package/dist/services/flashLoans/index.js +19 -0
  82. package/dist/services/flashLoans/marginfiFlProvider.d.ts +25 -0
  83. package/dist/services/flashLoans/marginfiFlProvider.d.ts.map +1 -0
  84. package/dist/services/flashLoans/marginfiFlProvider.js +246 -0
  85. package/dist/services/index.d.ts +6 -0
  86. package/dist/services/index.d.ts.map +1 -0
  87. package/dist/services/index.js +21 -0
  88. package/dist/services/rebalance/index.d.ts +3 -0
  89. package/dist/services/rebalance/index.d.ts.map +1 -0
  90. package/dist/services/rebalance/index.js +18 -0
  91. package/dist/services/rebalance/rebalanceSwapManager.d.ts +30 -0
  92. package/dist/services/rebalance/rebalanceSwapManager.d.ts.map +1 -0
  93. package/dist/services/rebalance/rebalanceSwapManager.js +144 -0
  94. package/dist/services/rebalance/rebalanceTxBuilder.d.ts +22 -0
  95. package/dist/services/rebalance/rebalanceTxBuilder.d.ts.map +1 -0
  96. package/dist/services/rebalance/rebalanceTxBuilder.js +200 -0
  97. package/dist/services/rebalance/rebalanceValues.d.ts +31 -0
  98. package/dist/services/rebalance/rebalanceValues.d.ts.map +1 -0
  99. package/dist/services/rebalance/rebalanceValues.js +118 -0
  100. package/dist/services/rebalance/solautoFees.d.ts +13 -0
  101. package/dist/services/rebalance/solautoFees.d.ts.map +1 -0
  102. package/dist/services/rebalance/solautoFees.js +54 -0
  103. package/dist/services/solauto/index.d.ts +5 -0
  104. package/dist/services/solauto/index.d.ts.map +1 -0
  105. package/dist/{clients → services/solauto}/referralStateManager.d.ts +4 -5
  106. package/dist/services/solauto/referralStateManager.d.ts.map +1 -0
  107. package/dist/{clients → services/solauto}/referralStateManager.js +10 -12
  108. package/dist/services/solauto/solautoClient.d.ts +59 -0
  109. package/dist/services/solauto/solautoClient.d.ts.map +1 -0
  110. package/dist/{clients → services/solauto}/solautoClient.js +78 -109
  111. package/dist/services/solauto/solautoMarginfiClient.d.ts +34 -0
  112. package/dist/services/solauto/solautoMarginfiClient.d.ts.map +1 -0
  113. package/dist/services/solauto/solautoMarginfiClient.js +322 -0
  114. package/dist/{clients → services/solauto}/txHandler.d.ts +11 -2
  115. package/dist/services/solauto/txHandler.d.ts.map +1 -0
  116. package/dist/services/solauto/txHandler.js +38 -0
  117. package/dist/services/swap/index.d.ts +2 -0
  118. package/dist/services/swap/index.d.ts.map +1 -0
  119. package/dist/{utils/solauto → services/swap}/index.js +1 -2
  120. package/dist/services/swap/jupSwapManager.d.ts +37 -0
  121. package/dist/services/swap/jupSwapManager.d.ts.map +1 -0
  122. package/dist/services/swap/jupSwapManager.js +108 -0
  123. package/dist/services/transactions/index.d.ts.map +1 -0
  124. package/dist/{transactions → services/transactions}/transactionUtils.d.ts +3 -5
  125. package/dist/services/transactions/transactionUtils.d.ts.map +1 -0
  126. package/dist/{transactions → services/transactions}/transactionUtils.js +29 -137
  127. package/dist/{transactions → services/transactions}/transactionsManager.d.ts +4 -4
  128. package/dist/services/transactions/transactionsManager.d.ts.map +1 -0
  129. package/dist/{transactions → services/transactions}/transactionsManager.js +10 -8
  130. package/dist/solautoPosition/index.d.ts +4 -0
  131. package/dist/solautoPosition/index.d.ts.map +1 -0
  132. package/dist/solautoPosition/index.js +19 -0
  133. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +14 -0
  134. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -0
  135. package/dist/solautoPosition/marginfiSolautoPositionEx.js +73 -0
  136. package/dist/solautoPosition/solautoPositionEx.d.ts +67 -0
  137. package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -0
  138. package/dist/solautoPosition/solautoPositionEx.js +143 -0
  139. package/dist/solautoPosition/utils.d.ts +17 -0
  140. package/dist/solautoPosition/utils.d.ts.map +1 -0
  141. package/dist/solautoPosition/utils.js +115 -0
  142. package/dist/types/solauto.d.ts +19 -1
  143. package/dist/types/solauto.d.ts.map +1 -1
  144. package/dist/utils/generalUtils.d.ts +1 -0
  145. package/dist/utils/generalUtils.d.ts.map +1 -1
  146. package/dist/utils/generalUtils.js +9 -1
  147. package/dist/utils/index.d.ts +1 -1
  148. package/dist/utils/index.d.ts.map +1 -1
  149. package/dist/utils/index.js +1 -1
  150. package/dist/utils/jitoUtils.d.ts.map +1 -1
  151. package/dist/utils/jupiterUtils.d.ts +3 -28
  152. package/dist/utils/jupiterUtils.d.ts.map +1 -1
  153. package/dist/utils/jupiterUtils.js +2 -73
  154. package/dist/utils/marginfiUtils.d.ts +4 -3
  155. package/dist/utils/marginfiUtils.d.ts.map +1 -1
  156. package/dist/utils/marginfiUtils.js +47 -18
  157. package/dist/utils/numberUtils.d.ts +3 -6
  158. package/dist/utils/numberUtils.d.ts.map +1 -1
  159. package/dist/utils/numberUtils.js +13 -48
  160. package/dist/utils/solanaUtils.js +2 -2
  161. package/dist/utils/{solauto/generalUtils.d.ts → solautoUtils.d.ts} +9 -16
  162. package/dist/utils/solautoUtils.d.ts.map +1 -0
  163. package/dist/utils/{solauto/generalUtils.js → solautoUtils.js} +49 -173
  164. package/local/createTokenAccounts.ts +1 -5
  165. package/local/logPositions.ts +22 -68
  166. package/local/shared.ts +29 -24
  167. package/local/txSandbox.ts +66 -0
  168. package/local/updateMarginfiLUT.ts +80 -4
  169. package/package.json +3 -6
  170. package/src/constants/solautoConstants.ts +4 -9
  171. package/src/generated/accounts/solautoPosition.ts +2 -2
  172. package/src/generated/errors/solauto.ts +45 -4
  173. package/src/generated/instructions/claimReferralFees.ts +1 -1
  174. package/src/generated/instructions/closePosition.ts +3 -3
  175. package/src/generated/instructions/marginfiOpenPosition.ts +0 -7
  176. package/src/generated/instructions/marginfiRebalance.ts +12 -3
  177. package/src/generated/types/index.ts +7 -1
  178. package/src/generated/types/positionData.ts +3 -3
  179. package/src/generated/types/positionState.ts +12 -12
  180. package/src/generated/types/{positionTokenUsage.ts → positionTokenState.ts} +13 -16
  181. package/src/generated/types/rebalanceData.ts +16 -27
  182. package/src/generated/types/rebalanceDirection.ts +1 -0
  183. package/src/generated/types/rebalanceInstructionData.ts +62 -0
  184. package/src/generated/types/rebalanceStateValues.ts +59 -0
  185. package/src/generated/types/rebalanceStep.ts +25 -0
  186. package/src/generated/types/solautoRebalanceType.ts +0 -1
  187. package/src/generated/types/solautoSettingsParameters.ts +4 -25
  188. package/src/generated/types/solautoSettingsParametersInp.ts +2 -24
  189. package/src/generated/types/swapType.ts +22 -0
  190. package/src/generated/types/tokenBalanceChange.ts +46 -0
  191. package/src/generated/types/tokenBalanceChangeType.ts +28 -0
  192. package/src/generated/types/updatePositionData.ts +3 -3
  193. package/src/index.ts +8 -8
  194. package/src/marginfi-sdk/types/interestRateConfig.ts +6 -2
  195. package/src/services/flashLoans/flProviderAggregator.ts +74 -0
  196. package/src/services/flashLoans/flProviderBase.ts +88 -0
  197. package/src/services/flashLoans/index.ts +3 -0
  198. package/src/services/flashLoans/marginfiFlProvider.ts +392 -0
  199. package/src/services/index.ts +5 -0
  200. package/src/services/rebalance/index.ts +2 -0
  201. package/src/services/rebalance/rebalanceSwapManager.ts +218 -0
  202. package/src/services/rebalance/rebalanceTxBuilder.ts +330 -0
  203. package/src/services/rebalance/rebalanceValues.ts +232 -0
  204. package/src/services/rebalance/solautoFees.ts +61 -0
  205. package/src/services/solauto/index.ts +4 -0
  206. package/src/{clients → services/solauto}/referralStateManager.ts +17 -31
  207. package/src/{clients → services/solauto}/solautoClient.ts +142 -205
  208. package/src/services/solauto/solautoMarginfiClient.ts +472 -0
  209. package/src/services/solauto/txHandler.ts +69 -0
  210. package/src/services/swap/index.ts +1 -0
  211. package/src/services/swap/jupSwapManager.ts +189 -0
  212. package/src/{transactions → services/transactions}/transactionUtils.ts +40 -280
  213. package/src/{transactions → services/transactions}/transactionsManager.ts +15 -10
  214. package/src/solautoPosition/index.ts +3 -0
  215. package/src/solautoPosition/marginfiSolautoPositionEx.ts +111 -0
  216. package/src/solautoPosition/solautoPositionEx.ts +281 -0
  217. package/src/solautoPosition/utils.ts +188 -0
  218. package/src/types/solauto.ts +30 -2
  219. package/src/utils/generalUtils.ts +9 -1
  220. package/src/utils/index.ts +2 -2
  221. package/src/utils/jitoUtils.ts +0 -4
  222. package/src/utils/jupiterUtils.ts +3 -164
  223. package/src/utils/marginfiUtils.ts +77 -43
  224. package/src/utils/numberUtils.ts +18 -77
  225. package/src/utils/solanaUtils.ts +1 -1
  226. package/src/utils/{solauto/generalUtils.ts → solautoUtils.ts} +67 -288
  227. package/tests/transactions/shared.ts +135 -0
  228. package/tests/transactions/solautoMarginfi.ts +8 -198
  229. package/tests/unit/accounts.ts +3 -10
  230. package/tests/unit/lookupTables.ts +23 -2
  231. package/tests/unit/rebalanceCalculations.ts +65 -343
  232. package/dist/clients/index.d.ts +0 -5
  233. package/dist/clients/index.d.ts.map +0 -1
  234. package/dist/clients/referralStateManager.d.ts.map +0 -1
  235. package/dist/clients/solautoClient.d.ts +0 -71
  236. package/dist/clients/solautoClient.d.ts.map +0 -1
  237. package/dist/clients/solautoMarginfiClient.d.ts +0 -51
  238. package/dist/clients/solautoMarginfiClient.d.ts.map +0 -1
  239. package/dist/clients/solautoMarginfiClient.js +0 -497
  240. package/dist/clients/txHandler.d.ts.map +0 -1
  241. package/dist/clients/txHandler.js +0 -23
  242. package/dist/generated/types/positionTokenUsage.d.ts.map +0 -1
  243. package/dist/transactions/index.d.ts.map +0 -1
  244. package/dist/transactions/transactionUtils.d.ts.map +0 -1
  245. package/dist/transactions/transactionsManager.d.ts.map +0 -1
  246. package/dist/utils/solauto/generalUtils.d.ts.map +0 -1
  247. package/dist/utils/solauto/index.d.ts +0 -3
  248. package/dist/utils/solauto/index.d.ts.map +0 -1
  249. package/dist/utils/solauto/rebalanceUtils.d.ts +0 -30
  250. package/dist/utils/solauto/rebalanceUtils.d.ts.map +0 -1
  251. package/dist/utils/solauto/rebalanceUtils.js +0 -287
  252. package/src/clients/index.ts +0 -4
  253. package/src/clients/solautoMarginfiClient.ts +0 -774
  254. package/src/clients/txHandler.ts +0 -38
  255. package/src/utils/solauto/index.ts +0 -2
  256. package/src/utils/solauto/rebalanceUtils.ts +0 -562
  257. package/dist/{clients → services/solauto}/index.js +2 -2
  258. /package/dist/{transactions → services/transactions}/index.d.ts +0 -0
  259. /package/dist/{transactions → services/transactions}/index.js +0 -0
  260. /package/src/{transactions → services/transactions}/index.ts +0 -0
@@ -19,49 +19,46 @@ import {
19
19
  } from '@metaplex-foundation/umi/serializers';
20
20
  import { TokenAmount, TokenAmountArgs, getTokenAmountSerializer } from '.';
21
21
 
22
- export type PositionTokenUsage = {
22
+ export type PositionTokenState = {
23
23
  mint: PublicKey;
24
24
  decimals: number;
25
25
  padding1: Array<number>;
26
+ borrowFeeBps: number;
26
27
  amountUsed: TokenAmount;
27
28
  amountCanBeUsed: TokenAmount;
28
29
  baseAmountMarketPriceUsd: bigint;
29
- flashLoanFeeBps: number;
30
- borrowFeeBps: number;
31
30
  padding2: Array<number>;
32
31
  padding: Uint8Array;
33
32
  };
34
33
 
35
- export type PositionTokenUsageArgs = {
34
+ export type PositionTokenStateArgs = {
36
35
  mint: PublicKey;
37
36
  decimals: number;
38
37
  padding1: Array<number>;
38
+ borrowFeeBps: number;
39
39
  amountUsed: TokenAmountArgs;
40
40
  amountCanBeUsed: TokenAmountArgs;
41
41
  baseAmountMarketPriceUsd: number | bigint;
42
- flashLoanFeeBps: number;
43
- borrowFeeBps: number;
44
42
  padding2: Array<number>;
45
43
  padding: Uint8Array;
46
44
  };
47
45
 
48
- export function getPositionTokenUsageSerializer(): Serializer<
49
- PositionTokenUsageArgs,
50
- PositionTokenUsage
46
+ export function getPositionTokenStateSerializer(): Serializer<
47
+ PositionTokenStateArgs,
48
+ PositionTokenState
51
49
  > {
52
- return struct<PositionTokenUsage>(
50
+ return struct<PositionTokenState>(
53
51
  [
54
52
  ['mint', publicKeySerializer()],
55
53
  ['decimals', u8()],
56
- ['padding1', array(u8(), { size: 7 })],
54
+ ['padding1', array(u8(), { size: 5 })],
55
+ ['borrowFeeBps', u16()],
57
56
  ['amountUsed', getTokenAmountSerializer()],
58
57
  ['amountCanBeUsed', getTokenAmountSerializer()],
59
58
  ['baseAmountMarketPriceUsd', u64()],
60
- ['flashLoanFeeBps', u16()],
61
- ['borrowFeeBps', u16()],
62
- ['padding2', array(u8(), { size: 4 })],
59
+ ['padding2', array(u8(), { size: 8 })],
63
60
  ['padding', bytes({ size: 32 })],
64
61
  ],
65
- { description: 'PositionTokenUsage' }
66
- ) as Serializer<PositionTokenUsageArgs, PositionTokenUsage>;
62
+ { description: 'PositionTokenState' }
63
+ ) as Serializer<PositionTokenStateArgs, PositionTokenState>;
67
64
  }
@@ -9,36 +9,28 @@
9
9
  import {
10
10
  Serializer,
11
11
  array,
12
- bytes,
13
12
  struct,
14
- u64,
15
- u8,
13
+ u32,
16
14
  } from '@metaplex-foundation/umi/serializers';
17
15
  import {
18
- RebalanceDirection,
19
- RebalanceDirectionArgs,
20
- SolautoRebalanceType,
21
- SolautoRebalanceTypeArgs,
22
- getRebalanceDirectionSerializer,
23
- getSolautoRebalanceTypeSerializer,
16
+ RebalanceInstructionData,
17
+ RebalanceInstructionDataArgs,
18
+ RebalanceStateValues,
19
+ RebalanceStateValuesArgs,
20
+ getRebalanceInstructionDataSerializer,
21
+ getRebalanceStateValuesSerializer,
24
22
  } from '.';
25
23
 
26
24
  export type RebalanceData = {
27
- rebalanceType: SolautoRebalanceType;
28
- padding1: Array<number>;
29
- rebalanceDirection: RebalanceDirection;
30
- padding2: Array<number>;
31
- flashLoanAmount: bigint;
32
- padding: Uint8Array;
25
+ ixs: RebalanceInstructionData;
26
+ values: RebalanceStateValues;
27
+ padding: Array<number>;
33
28
  };
34
29
 
35
30
  export type RebalanceDataArgs = {
36
- rebalanceType: SolautoRebalanceTypeArgs;
37
- padding1: Array<number>;
38
- rebalanceDirection: RebalanceDirectionArgs;
39
- padding2: Array<number>;
40
- flashLoanAmount: number | bigint;
41
- padding: Uint8Array;
31
+ ixs: RebalanceInstructionDataArgs;
32
+ values: RebalanceStateValuesArgs;
33
+ padding: Array<number>;
42
34
  };
43
35
 
44
36
  export function getRebalanceDataSerializer(): Serializer<
@@ -47,12 +39,9 @@ export function getRebalanceDataSerializer(): Serializer<
47
39
  > {
48
40
  return struct<RebalanceData>(
49
41
  [
50
- ['rebalanceType', getSolautoRebalanceTypeSerializer()],
51
- ['padding1', array(u8(), { size: 7 })],
52
- ['rebalanceDirection', getRebalanceDirectionSerializer()],
53
- ['padding2', array(u8(), { size: 7 })],
54
- ['flashLoanAmount', u64()],
55
- ['padding', bytes({ size: 32 })],
42
+ ['ixs', getRebalanceInstructionDataSerializer()],
43
+ ['values', getRebalanceStateValuesSerializer()],
44
+ ['padding', array(u32(), { size: 4 })],
56
45
  ],
57
46
  { description: 'RebalanceData' }
58
47
  ) as Serializer<RebalanceDataArgs, RebalanceData>;
@@ -9,6 +9,7 @@
9
9
  import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
10
10
 
11
11
  export enum RebalanceDirection {
12
+ None,
12
13
  Boost,
13
14
  Repay,
14
15
  }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import {
10
+ Serializer,
11
+ array,
12
+ struct,
13
+ u32,
14
+ u64,
15
+ u8,
16
+ } from '@metaplex-foundation/umi/serializers';
17
+ import {
18
+ PodBool,
19
+ PodBoolArgs,
20
+ SolautoRebalanceType,
21
+ SolautoRebalanceTypeArgs,
22
+ SwapType,
23
+ SwapTypeArgs,
24
+ getPodBoolSerializer,
25
+ getSolautoRebalanceTypeSerializer,
26
+ getSwapTypeSerializer,
27
+ } from '.';
28
+
29
+ export type RebalanceInstructionData = {
30
+ active: PodBool;
31
+ rebalanceType: SolautoRebalanceType;
32
+ swapType: SwapType;
33
+ padding1: Array<number>;
34
+ flashLoanAmount: bigint;
35
+ padding: Array<number>;
36
+ };
37
+
38
+ export type RebalanceInstructionDataArgs = {
39
+ active: PodBoolArgs;
40
+ rebalanceType: SolautoRebalanceTypeArgs;
41
+ swapType: SwapTypeArgs;
42
+ padding1: Array<number>;
43
+ flashLoanAmount: number | bigint;
44
+ padding: Array<number>;
45
+ };
46
+
47
+ export function getRebalanceInstructionDataSerializer(): Serializer<
48
+ RebalanceInstructionDataArgs,
49
+ RebalanceInstructionData
50
+ > {
51
+ return struct<RebalanceInstructionData>(
52
+ [
53
+ ['active', getPodBoolSerializer()],
54
+ ['rebalanceType', getSolautoRebalanceTypeSerializer()],
55
+ ['swapType', getSwapTypeSerializer()],
56
+ ['padding1', array(u8(), { size: 5 })],
57
+ ['flashLoanAmount', u64()],
58
+ ['padding', array(u32(), { size: 4 })],
59
+ ],
60
+ { description: 'RebalanceInstructionData' }
61
+ ) as Serializer<RebalanceInstructionDataArgs, RebalanceInstructionData>;
62
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import {
10
+ Serializer,
11
+ array,
12
+ struct,
13
+ u32,
14
+ u64,
15
+ u8,
16
+ } from '@metaplex-foundation/umi/serializers';
17
+ import {
18
+ RebalanceDirection,
19
+ RebalanceDirectionArgs,
20
+ TokenBalanceChange,
21
+ TokenBalanceChangeArgs,
22
+ getRebalanceDirectionSerializer,
23
+ getTokenBalanceChangeSerializer,
24
+ } from '.';
25
+
26
+ export type RebalanceStateValues = {
27
+ rebalanceDirection: RebalanceDirection;
28
+ padding1: Array<number>;
29
+ targetSupplyUsd: bigint;
30
+ targetDebtUsd: bigint;
31
+ tokenBalanceChange: TokenBalanceChange;
32
+ padding: Array<number>;
33
+ };
34
+
35
+ export type RebalanceStateValuesArgs = {
36
+ rebalanceDirection: RebalanceDirectionArgs;
37
+ padding1: Array<number>;
38
+ targetSupplyUsd: number | bigint;
39
+ targetDebtUsd: number | bigint;
40
+ tokenBalanceChange: TokenBalanceChangeArgs;
41
+ padding: Array<number>;
42
+ };
43
+
44
+ export function getRebalanceStateValuesSerializer(): Serializer<
45
+ RebalanceStateValuesArgs,
46
+ RebalanceStateValues
47
+ > {
48
+ return struct<RebalanceStateValues>(
49
+ [
50
+ ['rebalanceDirection', getRebalanceDirectionSerializer()],
51
+ ['padding1', array(u8(), { size: 7 })],
52
+ ['targetSupplyUsd', u64()],
53
+ ['targetDebtUsd', u64()],
54
+ ['tokenBalanceChange', getTokenBalanceChangeSerializer()],
55
+ ['padding', array(u32(), { size: 4 })],
56
+ ],
57
+ { description: 'RebalanceStateValues' }
58
+ ) as Serializer<RebalanceStateValuesArgs, RebalanceStateValues>;
59
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
10
+
11
+ export enum RebalanceStep {
12
+ PreSwap,
13
+ PostSwap,
14
+ }
15
+
16
+ export type RebalanceStepArgs = RebalanceStep;
17
+
18
+ export function getRebalanceStepSerializer(): Serializer<
19
+ RebalanceStepArgs,
20
+ RebalanceStep
21
+ > {
22
+ return scalarEnum<RebalanceStep>(RebalanceStep, {
23
+ description: 'RebalanceStep',
24
+ }) as Serializer<RebalanceStepArgs, RebalanceStep>;
25
+ }
@@ -9,7 +9,6 @@
9
9
  import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
10
10
 
11
11
  export enum SolautoRebalanceType {
12
- None,
13
12
  Regular,
14
13
  DoubleRebalanceWithFL,
15
14
  FLSwapThenRebalance,
@@ -9,38 +9,20 @@
9
9
  import {
10
10
  Serializer,
11
11
  array,
12
- bytes,
13
12
  struct,
14
13
  u16,
15
- u8,
14
+ u32,
16
15
  } from '@metaplex-foundation/umi/serializers';
17
- import {
18
- AutomationSettings,
19
- AutomationSettingsArgs,
20
- getAutomationSettingsSerializer,
21
- } from '.';
22
16
 
23
17
  export type SolautoSettingsParameters = {
24
18
  boostToBps: number;
25
19
  boostGap: number;
26
20
  repayToBps: number;
27
21
  repayGap: number;
28
- targetBoostToBps: number;
29
- padding1: Array<number>;
30
- automation: AutomationSettings;
31
- padding: Uint8Array;
22
+ padding: Array<number>;
32
23
  };
33
24
 
34
- export type SolautoSettingsParametersArgs = {
35
- boostToBps: number;
36
- boostGap: number;
37
- repayToBps: number;
38
- repayGap: number;
39
- targetBoostToBps: number;
40
- padding1: Array<number>;
41
- automation: AutomationSettingsArgs;
42
- padding: Uint8Array;
43
- };
25
+ export type SolautoSettingsParametersArgs = SolautoSettingsParameters;
44
26
 
45
27
  export function getSolautoSettingsParametersSerializer(): Serializer<
46
28
  SolautoSettingsParametersArgs,
@@ -52,10 +34,7 @@ export function getSolautoSettingsParametersSerializer(): Serializer<
52
34
  ['boostGap', u16()],
53
35
  ['repayToBps', u16()],
54
36
  ['repayGap', u16()],
55
- ['targetBoostToBps', u16()],
56
- ['padding1', array(u8(), { size: 6 })],
57
- ['automation', getAutomationSettingsSerializer()],
58
- ['padding', bytes({ size: 32 })],
37
+ ['padding', array(u32(), { size: 24 })],
59
38
  ],
60
39
  { description: 'SolautoSettingsParameters' }
61
40
  ) as Serializer<SolautoSettingsParametersArgs, SolautoSettingsParameters>;
@@ -6,36 +6,16 @@
6
6
  * @see https://github.com/metaplex-foundation/kinobi
7
7
  */
8
8
 
9
- import { Option, OptionOrNullable } from '@metaplex-foundation/umi';
10
- import {
11
- Serializer,
12
- option,
13
- struct,
14
- u16,
15
- } from '@metaplex-foundation/umi/serializers';
16
- import {
17
- AutomationSettingsInp,
18
- AutomationSettingsInpArgs,
19
- getAutomationSettingsInpSerializer,
20
- } from '.';
9
+ import { Serializer, struct, u16 } from '@metaplex-foundation/umi/serializers';
21
10
 
22
11
  export type SolautoSettingsParametersInp = {
23
12
  boostToBps: number;
24
13
  boostGap: number;
25
14
  repayToBps: number;
26
15
  repayGap: number;
27
- targetBoostToBps: Option<number>;
28
- automation: Option<AutomationSettingsInp>;
29
16
  };
30
17
 
31
- export type SolautoSettingsParametersInpArgs = {
32
- boostToBps: number;
33
- boostGap: number;
34
- repayToBps: number;
35
- repayGap: number;
36
- targetBoostToBps: OptionOrNullable<number>;
37
- automation: OptionOrNullable<AutomationSettingsInpArgs>;
38
- };
18
+ export type SolautoSettingsParametersInpArgs = SolautoSettingsParametersInp;
39
19
 
40
20
  export function getSolautoSettingsParametersInpSerializer(): Serializer<
41
21
  SolautoSettingsParametersInpArgs,
@@ -47,8 +27,6 @@ export function getSolautoSettingsParametersInpSerializer(): Serializer<
47
27
  ['boostGap', u16()],
48
28
  ['repayToBps', u16()],
49
29
  ['repayGap', u16()],
50
- ['targetBoostToBps', option(u16())],
51
- ['automation', option(getAutomationSettingsInpSerializer())],
52
30
  ],
53
31
  { description: 'SolautoSettingsParametersInp' }
54
32
  ) as Serializer<
@@ -0,0 +1,22 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
10
+
11
+ export enum SwapType {
12
+ ExactIn,
13
+ ExactOut,
14
+ }
15
+
16
+ export type SwapTypeArgs = SwapType;
17
+
18
+ export function getSwapTypeSerializer(): Serializer<SwapTypeArgs, SwapType> {
19
+ return scalarEnum<SwapType>(SwapType, {
20
+ description: 'SwapType',
21
+ }) as Serializer<SwapTypeArgs, SwapType>;
22
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import {
10
+ Serializer,
11
+ array,
12
+ struct,
13
+ u64,
14
+ u8,
15
+ } from '@metaplex-foundation/umi/serializers';
16
+ import {
17
+ TokenBalanceChangeType,
18
+ TokenBalanceChangeTypeArgs,
19
+ getTokenBalanceChangeTypeSerializer,
20
+ } from '.';
21
+
22
+ export type TokenBalanceChange = {
23
+ changeType: TokenBalanceChangeType;
24
+ padding1: Array<number>;
25
+ amountUsd: bigint;
26
+ };
27
+
28
+ export type TokenBalanceChangeArgs = {
29
+ changeType: TokenBalanceChangeTypeArgs;
30
+ padding1: Array<number>;
31
+ amountUsd: number | bigint;
32
+ };
33
+
34
+ export function getTokenBalanceChangeSerializer(): Serializer<
35
+ TokenBalanceChangeArgs,
36
+ TokenBalanceChange
37
+ > {
38
+ return struct<TokenBalanceChange>(
39
+ [
40
+ ['changeType', getTokenBalanceChangeTypeSerializer()],
41
+ ['padding1', array(u8(), { size: 7 })],
42
+ ['amountUsd', u64()],
43
+ ],
44
+ { description: 'TokenBalanceChange' }
45
+ ) as Serializer<TokenBalanceChangeArgs, TokenBalanceChange>;
46
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the kinobi library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun kinobi to update it.
5
+ *
6
+ * @see https://github.com/metaplex-foundation/kinobi
7
+ */
8
+
9
+ import { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';
10
+
11
+ export enum TokenBalanceChangeType {
12
+ None,
13
+ PreSwapDeposit,
14
+ PostSwapDeposit,
15
+ PostRebalanceWithdrawSupplyToken,
16
+ PostRebalanceWithdrawDebtToken,
17
+ }
18
+
19
+ export type TokenBalanceChangeTypeArgs = TokenBalanceChangeType;
20
+
21
+ export function getTokenBalanceChangeTypeSerializer(): Serializer<
22
+ TokenBalanceChangeTypeArgs,
23
+ TokenBalanceChangeType
24
+ > {
25
+ return scalarEnum<TokenBalanceChangeType>(TokenBalanceChangeType, {
26
+ description: 'TokenBalanceChangeType',
27
+ }) as Serializer<TokenBalanceChangeTypeArgs, TokenBalanceChangeType>;
28
+ }
@@ -24,13 +24,13 @@ import {
24
24
 
25
25
  export type UpdatePositionData = {
26
26
  positionId: number;
27
- settingParams: Option<SolautoSettingsParametersInp>;
27
+ settings: Option<SolautoSettingsParametersInp>;
28
28
  dca: Option<DCASettingsInp>;
29
29
  };
30
30
 
31
31
  export type UpdatePositionDataArgs = {
32
32
  positionId: number;
33
- settingParams: OptionOrNullable<SolautoSettingsParametersInpArgs>;
33
+ settings: OptionOrNullable<SolautoSettingsParametersInpArgs>;
34
34
  dca: OptionOrNullable<DCASettingsInpArgs>;
35
35
  };
36
36
 
@@ -41,7 +41,7 @@ export function getUpdatePositionDataSerializer(): Serializer<
41
41
  return struct<UpdatePositionData>(
42
42
  [
43
43
  ['positionId', u8()],
44
- ['settingParams', option(getSolautoSettingsParametersInpSerializer())],
44
+ ['settings', option(getSolautoSettingsParametersInpSerializer())],
45
45
  ['dca', option(getDCASettingsInpSerializer())],
46
46
  ],
47
47
  { description: 'UpdatePositionData' }
package/src/index.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * from './clients';
2
- export * from './constants';
3
- export * from './generated';
4
- export * from './transactions';
5
- export * from './types';
6
- export * from './utils';
7
- // export * from './marginfi-sdk';
8
- // export * from './jupiter-sdk';
1
+ export * from "./constants";
2
+ export * from "./generated/accounts";
3
+ export * from "./generated/types";
4
+ export * from "./marginfi-sdk/accounts";
5
+ export * from "./services";
6
+ export * from "./solautoPosition";
7
+ export * from "./types";
8
+ export * from "./utils";
@@ -11,6 +11,7 @@ import {
11
11
  array,
12
12
  struct,
13
13
  u128,
14
+ u32,
14
15
  } from '@metaplex-foundation/umi/serializers';
15
16
  import {
16
17
  WrappedI80F48,
@@ -26,7 +27,8 @@ export type InterestRateConfig = {
26
27
  insuranceIrFee: WrappedI80F48;
27
28
  protocolFixedFeeApr: WrappedI80F48;
28
29
  protocolIrFee: WrappedI80F48;
29
- padding: Array<bigint>;
30
+ protocolOriginationFee: WrappedI80F48;
31
+ padding: Array<number>;
30
32
  };
31
33
 
32
34
  export type InterestRateConfigArgs = {
@@ -37,6 +39,7 @@ export type InterestRateConfigArgs = {
37
39
  insuranceIrFee: WrappedI80F48Args;
38
40
  protocolFixedFeeApr: WrappedI80F48Args;
39
41
  protocolIrFee: WrappedI80F48Args;
42
+ protocolOriginationFee: WrappedI80F48Args;
40
43
  padding: Array<number | bigint>;
41
44
  };
42
45
 
@@ -53,7 +56,8 @@ export function getInterestRateConfigSerializer(): Serializer<
53
56
  ['insuranceIrFee', getWrappedI80F48Serializer()],
54
57
  ['protocolFixedFeeApr', getWrappedI80F48Serializer()],
55
58
  ['protocolIrFee', getWrappedI80F48Serializer()],
56
- ['padding', array(u128(), { size: 8 })],
59
+ ['protocolOriginationFee', getWrappedI80F48Serializer()],
60
+ ['padding', array(u32(), { size: 28 })],
57
61
  ],
58
62
  { description: 'InterestRateConfig' }
59
63
  ) as Serializer<InterestRateConfigArgs, InterestRateConfig>;
@@ -0,0 +1,74 @@
1
+ import { FlProviderBase } from "./flProviderBase";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { FlashLoanDetails, FlashLoanRequirements } from "../../types";
4
+ import { Signer, TransactionBuilder, Umi } from "@metaplex-foundation/umi";
5
+ import { TokenType } from "../../generated";
6
+ import { MarginfiFlProvider } from "./marginfiFlProvider";
7
+
8
+ export class FlProviderAggregator extends FlProviderBase {
9
+ private marginfiFlProvider!: MarginfiFlProvider;
10
+
11
+ constructor(
12
+ umi: Umi,
13
+ signer: Signer,
14
+ supplyMint: PublicKey,
15
+ debtMint: PublicKey
16
+ ) {
17
+ super(umi, signer, supplyMint, debtMint);
18
+ this.marginfiFlProvider = new MarginfiFlProvider(
19
+ umi,
20
+ signer,
21
+ supplyMint,
22
+ debtMint
23
+ );
24
+ }
25
+
26
+ async initialize() {
27
+ // TODO: PF
28
+ // Once we have more than one, set the right fl provider for each liquidity source
29
+ await this.marginfiFlProvider.initialize();
30
+ }
31
+
32
+ async flAccountPrereqIxs(): Promise<TransactionBuilder> {
33
+ return await this.marginfiFlProvider.initializeIMfiAccounts();
34
+ }
35
+
36
+ otherSigners(): Signer[] {
37
+ // TODO: PF
38
+ return [...this.flSigners, ...this.marginfiFlProvider.otherSigners()];
39
+ }
40
+
41
+ lutAccountsToAdd(): PublicKey[] {
42
+ return [
43
+ ...super.lutAccountsToAdd(),
44
+ ...this.marginfiFlProvider.lutAccountsToAdd(),
45
+ ];
46
+ }
47
+
48
+ private flProvider(source: TokenType): FlProviderBase {
49
+ // TODO: PF
50
+ return this.marginfiFlProvider;
51
+ }
52
+
53
+ liquidityAvailable(source: TokenType): bigint {
54
+ return this.flProvider(source).liquidityAvailable(source);
55
+ }
56
+
57
+ flFeeBps(source: TokenType, signerFlashLoan?: boolean): number {
58
+ return this.flProvider(source).flFeeBps(source);
59
+ }
60
+
61
+ flashBorrow(
62
+ flashLoan: FlashLoanDetails,
63
+ destTokenAccount: PublicKey
64
+ ): TransactionBuilder {
65
+ return this.flProvider(flashLoan.liquiditySource).flashBorrow(
66
+ flashLoan,
67
+ destTokenAccount
68
+ );
69
+ }
70
+
71
+ flashRepay(flashLoan: FlashLoanDetails): TransactionBuilder {
72
+ return this.flProvider(flashLoan.liquiditySource).flashRepay(flashLoan);
73
+ }
74
+ }