@haven-fi/solauto-sdk 1.0.628 → 1.0.630

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 (72) hide show
  1. package/README.md +35 -6
  2. package/dist/constants/marginfiAccounts.d.ts.map +1 -1
  3. package/dist/constants/solautoConstants.d.ts +2 -1
  4. package/dist/constants/solautoConstants.d.ts.map +1 -1
  5. package/dist/generated/instructions/marginfiRebalance.d.ts +5 -3
  6. package/dist/generated/instructions/marginfiRebalance.d.ts.map +1 -1
  7. package/dist/generated/instructions/marginfiRebalance.js +2 -1
  8. package/dist/generated/instructions/marginfiRefreshData.d.ts +7 -2
  9. package/dist/generated/instructions/marginfiRefreshData.d.ts.map +1 -1
  10. package/dist/generated/instructions/marginfiRefreshData.js +8 -4
  11. package/dist/generated/types/index.d.ts +1 -0
  12. package/dist/generated/types/index.d.ts.map +1 -1
  13. package/dist/generated/types/index.js +1 -0
  14. package/dist/generated/types/priceType.d.ts +15 -0
  15. package/dist/generated/types/priceType.d.ts.map +1 -0
  16. package/dist/generated/types/priceType.js +22 -0
  17. package/dist/services/rebalance/rebalanceSwapManager.d.ts.map +1 -1
  18. package/dist/services/rebalance/rebalanceSwapManager.js +8 -8
  19. package/dist/services/rebalance/rebalanceTxBuilder.d.ts +2 -0
  20. package/dist/services/rebalance/rebalanceTxBuilder.d.ts.map +1 -1
  21. package/dist/services/rebalance/rebalanceTxBuilder.js +21 -10
  22. package/dist/services/rebalance/rebalanceValues.d.ts +2 -2
  23. package/dist/services/rebalance/rebalanceValues.d.ts.map +1 -1
  24. package/dist/services/rebalance/rebalanceValues.js +17 -17
  25. package/dist/services/solauto/solautoClient.d.ts +2 -2
  26. package/dist/services/solauto/solautoClient.d.ts.map +1 -1
  27. package/dist/services/solauto/solautoClient.js +27 -28
  28. package/dist/services/solauto/solautoMarginfiClient.d.ts +2 -2
  29. package/dist/services/solauto/solautoMarginfiClient.d.ts.map +1 -1
  30. package/dist/services/solauto/solautoMarginfiClient.js +12 -10
  31. package/dist/services/transactions/transactionUtils.d.ts.map +1 -1
  32. package/dist/services/transactions/transactionUtils.js +10 -9
  33. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts +3 -3
  34. package/dist/solautoPosition/marginfiSolautoPositionEx.d.ts.map +1 -1
  35. package/dist/solautoPosition/marginfiSolautoPositionEx.js +9 -9
  36. package/dist/solautoPosition/solautoPositionEx.d.ts +44 -33
  37. package/dist/solautoPosition/solautoPositionEx.d.ts.map +1 -1
  38. package/dist/solautoPosition/solautoPositionEx.js +109 -90
  39. package/dist/types/solauto.d.ts +2 -1
  40. package/dist/types/solauto.d.ts.map +1 -1
  41. package/dist/utils/instructionUtils.js +2 -2
  42. package/dist/utils/marginfiUtils.d.ts +2 -2
  43. package/dist/utils/marginfiUtils.d.ts.map +1 -1
  44. package/dist/utils/marginfiUtils.js +5 -5
  45. package/dist/utils/priceUtils.d.ts +11 -5
  46. package/dist/utils/priceUtils.d.ts.map +1 -1
  47. package/dist/utils/priceUtils.js +45 -21
  48. package/local/logPositions.ts +12 -12
  49. package/local/shared.ts +1 -1
  50. package/local/txSandbox.ts +27 -32
  51. package/local/updateMarginfiLUT.ts +13 -6
  52. package/package.json +2 -1
  53. package/src/constants/marginfiAccounts.ts +0 -1
  54. package/src/constants/solautoConstants.ts +1 -1
  55. package/src/generated/instructions/marginfiRebalance.ts +9 -3
  56. package/src/generated/instructions/marginfiRefreshData.ts +27 -7
  57. package/src/generated/types/index.ts +1 -0
  58. package/src/generated/types/priceType.ts +22 -0
  59. package/src/services/rebalance/rebalanceSwapManager.ts +8 -12
  60. package/src/services/rebalance/rebalanceTxBuilder.ts +41 -11
  61. package/src/services/rebalance/rebalanceValues.ts +22 -16
  62. package/src/services/solauto/solautoClient.ts +30 -30
  63. package/src/services/solauto/solautoMarginfiClient.ts +13 -10
  64. package/src/services/transactions/transactionUtils.ts +11 -9
  65. package/src/solautoPosition/marginfiSolautoPositionEx.ts +11 -10
  66. package/src/solautoPosition/solautoPositionEx.ts +141 -117
  67. package/src/types/solauto.ts +2 -0
  68. package/src/utils/instructionUtils.ts +2 -2
  69. package/src/utils/marginfiUtils.ts +12 -8
  70. package/src/utils/priceUtils.ts +66 -22
  71. package/tests/transactions/shared.ts +2 -5
  72. package/tests/unit/rebalanceCalculations.ts +9 -12
package/README.md CHANGED
@@ -8,16 +8,15 @@ Solauto is a program on the Solana blockchain that lets you manage leveraged lon
8
8
  import { PublicKey } from "@solana/web3.js";
9
9
  import * as solauto from "@haven-fi/solauto-sdk";
10
10
 
11
- // Initialize the client
11
+ // Create new Solauto client
12
12
  const client = solauto.getClient(solauto.LendingPlatform.MARGINFI, {
13
13
  signer: yourSigner,
14
14
  rpcUrl: "[YOUR_RPC_URL]",
15
15
  });
16
16
 
17
+ // Initialize the client
17
18
  const supplyMint = new PublicKey(NATIVE_MINT);
18
19
  const debtMint = new PublicKey(USDC);
19
-
20
- // Initialize a new position
21
20
  await client.initialize({
22
21
  positionId: 1,
23
22
  new: true,
@@ -50,13 +49,13 @@ const transactionItems = [
50
49
  client,
51
50
  toBaseUnit(
52
51
  supplyUsdToDeposit / supplyPrice,
53
- client.pos.supplyMintInfo().decimals
52
+ client.pos.supplyMintInfo.decimals
54
53
  )
55
54
  ),
56
55
  // Borrow debt (USDC) transaction
57
56
  solauto.borrow(
58
57
  client,
59
- toBaseUnit(debtUsdToBorrow / debtPrice, client.pos.debtMintInfo().decimals)
58
+ toBaseUnit(debtUsdToBorrow / debtPrice, client.pos.debtMintInfo.decimals)
60
59
  ),
61
60
  // Rebalance to 0 LTV (repays all debt using collateral)
62
61
  solauto.rebalance(client, 0),
@@ -70,4 +69,34 @@ const transactionItems = [
70
69
  const statuses = await new solauto.TransactionsManager(client).clientSend(
71
70
  transactionItems
72
71
  );
73
- ```
72
+ ```
73
+
74
+ ## Rebalancing an existing position
75
+
76
+ ```typescript
77
+ import { PublicKey } from "@solana/web3.js";
78
+ import * as solauto from "@haven-fi/solauto-sdk";
79
+
80
+ // Create new Solauto client
81
+ const client = solauto.getClient(solauto.LendingPlatform.MARGINFI, {
82
+ signer: yourSigner,
83
+ rpcUrl: "[YOUR_RPC_URL]",
84
+ });
85
+
86
+ // Initialize the client
87
+ await client.initialize({
88
+ positionId: myPositionId,
89
+ authority: "[POSITION AUTHORITY]",
90
+ });
91
+
92
+ const transactionItems = [
93
+ solauto.rebalance(
94
+ client,
95
+ undefined // Provide target liquidation utilization rate if you want a specific LTV, otherwise it will rebalance according to position's settings (default)
96
+ ),
97
+ ];
98
+
99
+ const statuses = await new solauto.TransactionsManager(client).clientSend(
100
+ transactionItems
101
+ );
102
+ ```
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiAccounts.d.ts","sourceRoot":"","sources":["../../src/constants/marginfiAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAetC,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;CAC7D,CAAC;AAgLF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,SAAS,GACxB,uBAAuB,CA4BzB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,WAKrD"}
1
+ {"version":3,"file":"marginfiAccounts.d.ts","sourceRoot":"","sources":["../../src/constants/marginfiAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAetC,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAC;CAC7D,CAAC;AAgLF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,SAAS,GACxB,uBAAuB,CA4BzB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,WAKrD"}
@@ -8,7 +8,8 @@ export declare const MIN_USD_SUPPORTED_POSITION = 1000;
8
8
  export declare const REFERRER_PERCENTAGE = 0.15;
9
9
  export declare const PRICES: {
10
10
  [key: string]: {
11
- price: number;
11
+ realtimePrice: number;
12
+ emaPrice: number;
12
13
  time: number;
13
14
  };
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AAQzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC"}
1
+ {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AAQzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAEvG,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { Context, Option, OptionOrNullable, Pda, PublicKey, Signer, TransactionBuilder } from '@metaplex-foundation/umi';
9
9
  import { Serializer } from '@metaplex-foundation/umi/serializers';
10
- import { SolautoRebalanceType, SolautoRebalanceTypeArgs, SwapType, SwapTypeArgs } from '../types';
10
+ import { PriceType, PriceTypeArgs, SolautoRebalanceType, SolautoRebalanceTypeArgs, SwapType, SwapTypeArgs } from '../types';
11
11
  export type MarginfiRebalanceInstructionAccounts = {
12
12
  signer: Signer;
13
13
  marginfiProgram: PublicKey | Pda;
@@ -38,16 +38,18 @@ export type MarginfiRebalanceInstructionAccounts = {
38
38
  export type MarginfiRebalanceInstructionData = {
39
39
  discriminator: number;
40
40
  rebalanceType: SolautoRebalanceType;
41
- targetLiqUtilizationRateBps: Option<number>;
42
41
  swapInAmountBaseUnit: Option<bigint>;
42
+ targetLiqUtilizationRateBps: Option<number>;
43
43
  flashLoanFeeBps: Option<number>;
44
+ priceType: Option<PriceType>;
44
45
  swapType: Option<SwapType>;
45
46
  };
46
47
  export type MarginfiRebalanceInstructionDataArgs = {
47
48
  rebalanceType: SolautoRebalanceTypeArgs;
48
- targetLiqUtilizationRateBps: OptionOrNullable<number>;
49
49
  swapInAmountBaseUnit: OptionOrNullable<number | bigint>;
50
+ targetLiqUtilizationRateBps: OptionOrNullable<number>;
50
51
  flashLoanFeeBps: OptionOrNullable<number>;
52
+ priceType: OptionOrNullable<PriceTypeArgs>;
51
53
  swapType: OptionOrNullable<SwapTypeArgs>;
52
54
  };
53
55
  export declare function getMarginfiRebalanceInstructionDataSerializer(): Serializer<MarginfiRebalanceInstructionDataArgs, MarginfiRebalanceInstructionData>;
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiRebalance.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRebalance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,GAAG,EACH,SAAS,EACT,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EAOX,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,QAAQ,EACR,YAAY,EAGb,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,sBAAsB,EAAE,SAAS,GAAG,GAAG,CAAC;IACxC,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,cAAc,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,gBAAgB,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,iBAAiB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,oBAAoB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IACvC,QAAQ,EAAE,SAAS,GAAG,GAAG,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,cAAc,EAAE,SAAS,GAAG,GAAG,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;IAC9B,kBAAkB,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;CACtC,CAAC;AAGF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,oBAAoB,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,aAAa,EAAE,wBAAwB,CAAC;IACxC,2BAA2B,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,oBAAoB,EAAE,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,eAAe,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC1C,CAAC;AAEF,wBAAgB,6CAA6C,IAAI,UAAU,CACzE,oCAAoC,EACpC,gCAAgC,CACjC,CAsBA;AAGD,MAAM,MAAM,gCAAgC,GAC1C,oCAAoC,CAAC;AAGvC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,KAAK,EAAE,oCAAoC,GAAG,gCAAgC,GAC7E,kBAAkB,CAkLpB"}
1
+ {"version":3,"file":"marginfiRebalance.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRebalance.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,10 @@ function getMarginfiRebalanceInstructionDataSerializer() {
17
17
  return (0, serializers_1.mapSerializer)((0, serializers_1.struct)([
18
18
  ['discriminator', (0, serializers_1.u8)()],
19
19
  ['rebalanceType', (0, types_1.getSolautoRebalanceTypeSerializer)()],
20
- ['targetLiqUtilizationRateBps', (0, serializers_1.option)((0, serializers_1.u16)())],
21
20
  ['swapInAmountBaseUnit', (0, serializers_1.option)((0, serializers_1.u64)())],
21
+ ['targetLiqUtilizationRateBps', (0, serializers_1.option)((0, serializers_1.u16)())],
22
22
  ['flashLoanFeeBps', (0, serializers_1.option)((0, serializers_1.u16)())],
23
+ ['priceType', (0, serializers_1.option)((0, types_1.getPriceTypeSerializer)())],
23
24
  ['swapType', (0, serializers_1.option)((0, types_1.getSwapTypeSerializer)())],
24
25
  ], { description: 'MarginfiRebalanceInstructionData' }), (value) => ({ ...value, discriminator: 9 }));
25
26
  }
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { Context, Pda, PublicKey, Signer, TransactionBuilder } from '@metaplex-foundation/umi';
9
9
  import { Serializer } from '@metaplex-foundation/umi/serializers';
10
+ import { PriceType, PriceTypeArgs } from '../types';
10
11
  export type MarginfiRefreshDataInstructionAccounts = {
11
12
  signer: Signer;
12
13
  marginfiProgram: PublicKey | Pda;
@@ -20,8 +21,12 @@ export type MarginfiRefreshDataInstructionAccounts = {
20
21
  };
21
22
  export type MarginfiRefreshDataInstructionData = {
22
23
  discriminator: number;
24
+ priceType: PriceType;
25
+ };
26
+ export type MarginfiRefreshDataInstructionDataArgs = {
27
+ priceType: PriceTypeArgs;
23
28
  };
24
- export type MarginfiRefreshDataInstructionDataArgs = {};
25
29
  export declare function getMarginfiRefreshDataInstructionDataSerializer(): Serializer<MarginfiRefreshDataInstructionDataArgs, MarginfiRefreshDataInstructionData>;
26
- export declare function marginfiRefreshData(context: Pick<Context, 'programs'>, input: MarginfiRefreshDataInstructionAccounts): TransactionBuilder;
30
+ export type MarginfiRefreshDataInstructionArgs = MarginfiRefreshDataInstructionDataArgs;
31
+ export declare function marginfiRefreshData(context: Pick<Context, 'programs'>, input: MarginfiRefreshDataInstructionAccounts & MarginfiRefreshDataInstructionArgs): TransactionBuilder;
27
32
  //# sourceMappingURL=marginfiRefreshData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marginfiRefreshData.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRefreshData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,OAAO,EACP,GAAG,EACH,SAAS,EACT,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EAIX,MAAM,sCAAsC,CAAC;AAQ9C,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAC5B,iBAAiB,EAAE,SAAS,GAAG,GAAG,CAAC;IACnC,QAAQ,EAAE,SAAS,GAAG,GAAG,CAAC;IAC1B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,kCAAkC,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAExD,wBAAgB,+CAA+C,IAAI,UAAU,CAC3E,sCAAsC,EACtC,kCAAkC,CACnC,CAcA;AAGD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,KAAK,EAAE,sCAAsC,GAC5C,kBAAkB,CA6EpB"}
1
+ {"version":3,"file":"marginfiRefreshData.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/marginfiRefreshData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,OAAO,EACP,GAAG,EACH,SAAS,EACT,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EAIX,MAAM,sCAAsC,CAAC;AAM9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAA0B,MAAM,UAAU,CAAC;AAG5E,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,aAAa,EAAE,SAAS,GAAG,GAAG,CAAC;IAC/B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAC5B,iBAAiB,EAAE,SAAS,GAAG,GAAG,CAAC;IACnC,QAAQ,EAAE,SAAS,GAAG,GAAG,CAAC;IAC1B,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;IACjC,eAAe,EAAE,SAAS,GAAG,GAAG,CAAC;CAClC,CAAC;AAGF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,wBAAgB,+CAA+C,IAAI,UAAU,CAC3E,sCAAsC,EACtC,kCAAkC,CACnC,CAkBA;AAGD,MAAM,MAAM,kCAAkC,GAC5C,sCAAsC,CAAC;AAGzC,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,KAAK,EAAE,sCAAsC,GAC3C,kCAAkC,GACnC,kBAAkB,CAkFpB"}
@@ -12,10 +12,12 @@ exports.marginfiRefreshData = marginfiRefreshData;
12
12
  const umi_1 = require("@metaplex-foundation/umi");
13
13
  const serializers_1 = require("@metaplex-foundation/umi/serializers");
14
14
  const shared_1 = require("../shared");
15
+ const types_1 = require("../types");
15
16
  function getMarginfiRefreshDataInstructionDataSerializer() {
16
- return (0, serializers_1.mapSerializer)((0, serializers_1.struct)([['discriminator', (0, serializers_1.u8)()]], {
17
- description: 'MarginfiRefreshDataInstructionData',
18
- }), (value) => ({ ...value, discriminator: 7 }));
17
+ return (0, serializers_1.mapSerializer)((0, serializers_1.struct)([
18
+ ['discriminator', (0, serializers_1.u8)()],
19
+ ['priceType', (0, types_1.getPriceTypeSerializer)()],
20
+ ], { description: 'MarginfiRefreshDataInstructionData' }), (value) => ({ ...value, discriminator: 7 }));
19
21
  }
20
22
  // Instruction.
21
23
  function marginfiRefreshData(context, input) {
@@ -69,12 +71,14 @@ function marginfiRefreshData(context, input) {
69
71
  value: input.solautoPosition ?? null,
70
72
  },
71
73
  };
74
+ // Arguments.
75
+ const resolvedArgs = { ...input };
72
76
  // Accounts in order.
73
77
  const orderedAccounts = Object.values(resolvedAccounts).sort((a, b) => a.index - b.index);
74
78
  // Keys and Signers.
75
79
  const [keys, signers] = (0, shared_1.getAccountMetasAndSigners)(orderedAccounts, 'programId', programId);
76
80
  // Data.
77
- const data = getMarginfiRefreshDataInstructionDataSerializer().serialize({});
81
+ const data = getMarginfiRefreshDataInstructionDataSerializer().serialize(resolvedArgs);
78
82
  // Bytes Created On Chain.
79
83
  const bytesCreatedOnChain = 0;
80
84
  return (0, umi_1.transactionBuilder)([
@@ -15,6 +15,7 @@ export * from './positionData';
15
15
  export * from './positionState';
16
16
  export * from './positionTokenState';
17
17
  export * from './positionType';
18
+ export * from './priceType';
18
19
  export * from './rebalanceData';
19
20
  export * from './rebalanceDirection';
20
21
  export * from './rebalanceInstructionData';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generated/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generated/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
@@ -31,6 +31,7 @@ __exportStar(require("./positionData"), exports);
31
31
  __exportStar(require("./positionState"), exports);
32
32
  __exportStar(require("./positionTokenState"), exports);
33
33
  __exportStar(require("./positionType"), exports);
34
+ __exportStar(require("./priceType"), exports);
34
35
  __exportStar(require("./rebalanceData"), exports);
35
36
  __exportStar(require("./rebalanceDirection"), exports);
36
37
  __exportStar(require("./rebalanceInstructionData"), exports);
@@ -0,0 +1,15 @@
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
+ import { Serializer } from '@metaplex-foundation/umi/serializers';
9
+ export declare enum PriceType {
10
+ Realtime = 0,
11
+ Ema = 1
12
+ }
13
+ export type PriceTypeArgs = PriceType;
14
+ export declare function getPriceTypeSerializer(): Serializer<PriceTypeArgs, PriceType>;
15
+ //# sourceMappingURL=priceType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priceType.d.ts","sourceRoot":"","sources":["../../../src/generated/types/priceType.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAc,MAAM,sCAAsC,CAAC;AAE9E,oBAAY,SAAS;IACnB,QAAQ,IAAA;IACR,GAAG,IAAA;CACJ;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAEtC,wBAAgB,sBAAsB,IAAI,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAI7E"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * This code was AUTOGENERATED using the kinobi library.
4
+ * Please DO NOT EDIT THIS FILE, instead use visitors
5
+ * to add features, then rerun kinobi to update it.
6
+ *
7
+ * @see https://github.com/metaplex-foundation/kinobi
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PriceType = void 0;
11
+ exports.getPriceTypeSerializer = getPriceTypeSerializer;
12
+ const serializers_1 = require("@metaplex-foundation/umi/serializers");
13
+ var PriceType;
14
+ (function (PriceType) {
15
+ PriceType[PriceType["Realtime"] = 0] = "Realtime";
16
+ PriceType[PriceType["Ema"] = 1] = "Ema";
17
+ })(PriceType || (exports.PriceType = PriceType = {}));
18
+ function getPriceTypeSerializer() {
19
+ return (0, serializers_1.scalarEnum)(PriceType, {
20
+ description: 'PriceType',
21
+ });
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYpD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IAV/B,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;gBAG9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAK9C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kCAAkC;YA6B5B,mBAAmB;IAoCjC,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAkFhC,aAAa;;;;;;CAWpB"}
1
+ {"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IAV/B,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;gBAG9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAK9C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kCAAkC;YA6B5B,mBAAmB;IAoCjC,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IA+EhC,aAAa;;;;;;CAWpB"}
@@ -24,8 +24,8 @@ class RebalanceSwapManager {
24
24
  // TODO: add token balance change
25
25
  let debtUsd = this.client.pos.debtUsd();
26
26
  const outputToken = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(this.isBoost()
27
- ? this.client.pos.state().supply.mint
28
- : this.client.pos.state().debt.mint);
27
+ ? this.client.pos.state.supply.mint
28
+ : this.client.pos.state.debt.mint);
29
29
  const swapOutputUsd = swapOutputAmount
30
30
  ? (0, utils_1.fromBaseUnit)(swapOutputAmount, (0, utils_1.tokenInfo)(outputToken).decimals) *
31
31
  ((0, utils_1.safeGetPrice)(outputToken) ?? 0)
@@ -36,7 +36,7 @@ class RebalanceSwapManager {
36
36
  debtUsd = this.isBoost()
37
37
  ? debtUsd + this.usdToSwap()
38
38
  : debtUsd - swapOutputUsd;
39
- return (0, utils_1.getLiqUtilzationRateBps)(supplyUsd, debtUsd, this.client.pos.state().liqThresholdBps ?? 0);
39
+ return (0, utils_1.getLiqUtilzationRateBps)(supplyUsd, debtUsd, this.client.pos.state.liqThresholdBps ?? 0);
40
40
  }
41
41
  async findSufficientQuote(swapInput, criteria) {
42
42
  let swapQuote;
@@ -63,11 +63,11 @@ class RebalanceSwapManager {
63
63
  }
64
64
  swapDetails() {
65
65
  const input = this.isBoost()
66
- ? this.client.pos.state().debt
67
- : this.client.pos.state().supply;
66
+ ? this.client.pos.state.debt
67
+ : this.client.pos.state.supply;
68
68
  const output = this.isBoost()
69
- ? this.client.pos.state().supply
70
- : this.client.pos.state().debt;
69
+ ? this.client.pos.state.supply
70
+ : this.client.pos.state.debt;
71
71
  let inputAmount = (0, utils_1.toBaseUnit)(this.usdToSwap() / (0, utils_1.safeGetPrice)(input.mint), input.decimals);
72
72
  return {
73
73
  input,
@@ -116,7 +116,7 @@ class RebalanceSwapManager {
116
116
  this.swapQuote = await this.findSufficientQuote(swapInput, {
117
117
  minOutputAmount: rebalanceToZero ? outputAmount : undefined,
118
118
  maxLiqUtilizationRateBps: this.values.repayingCloseToMaxLtv
119
- ? (0, utils_1.maxRepayToBps)(this.client.pos.state().maxLtvBps ?? 0, this.client.pos.state().liqThresholdBps ?? 0) - 15
119
+ ? this.client.pos.maxRepayToBps - 15
120
120
  : undefined,
121
121
  });
122
122
  }
@@ -7,6 +7,7 @@ export declare class RebalanceTxBuilder {
7
7
  private rebalanceType;
8
8
  private swapManager;
9
9
  private flRequirements?;
10
+ private priceType;
10
11
  constructor(client: SolautoClient, targetLiqUtilizationRateBps?: number | undefined);
11
12
  private shouldProceedWithRebalance;
12
13
  private getRebalanceValues;
@@ -14,6 +15,7 @@ export declare class RebalanceTxBuilder {
14
15
  private flashLoanRequirements;
15
16
  private getFlashLoanDetails;
16
17
  private setRebalanceType;
18
+ private realtimeUsdToEmaUsd;
17
19
  private setRebalanceDetails;
18
20
  private refreshBeforeRebalance;
19
21
  private assembleTransaction;
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAwBrB,qBAAa,kBAAkB;IAO3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IAPtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;gBAGrC,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;YAyCd,qBAAqB;IAyCnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;YA+BV,mBAAmB;YAmBnB,sBAAsB;YAyBtB,mBAAmB;IAiEpB,gBAAgB,CAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAW9C"}
1
+ {"version":3,"file":"rebalanceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceTxBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA0BrB,qBAAa,kBAAkB;IAQ3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,2BAA2B,CAAC;IARtC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAa;gBAGpB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,YAAA;IAG9C,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;YAyCd,qBAAqB;IAyCnC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,mBAAmB;YAOb,mBAAmB;YAqCnB,sBAAsB;YAyBtB,mBAAmB;IAkEpB,gBAAgB,CAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAW9C"}
@@ -19,8 +19,8 @@ class RebalanceTxBuilder {
19
19
  (this.targetLiqUtilizationRateBps !== undefined ||
20
20
  this.client.pos.eligibleForRebalance()));
21
21
  }
22
- getRebalanceValues(flFee) {
23
- return (0, rebalanceValues_1.getRebalanceValues)(this.client.pos, this.targetLiqUtilizationRateBps, solautoFees_1.SolautoFeesBps.create(this.client.isReferred(), this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd()), flFee ?? 0);
22
+ getRebalanceValues(priceType, flFee) {
23
+ return (0, rebalanceValues_1.getRebalanceValues)(this.client.pos, priceType, this.targetLiqUtilizationRateBps, solautoFees_1.SolautoFeesBps.create(this.client.isReferred(), this.targetLiqUtilizationRateBps, this.client.pos.netWorthUsd), flFee ?? 0);
24
24
  }
25
25
  getFlLiquiditySource(supplyLiquidityAvailable, debtLiquidityAvailable) {
26
26
  const debtAdjustmentUsd = Math.abs(this.values.debtAdjustmentUsd);
@@ -30,8 +30,8 @@ class RebalanceTxBuilder {
30
30
  ((0, utils_1.safeGetPrice)(tokenMint) ?? 0) *
31
31
  0.95);
32
32
  };
33
- const insufficientSupplyLiquidity = insufficientLiquidity(debtAdjustmentUsd, supplyLiquidityAvailable, this.client.pos.supplyMint());
34
- const insufficientDebtLiquidity = insufficientLiquidity(debtAdjustmentUsd, debtLiquidityAvailable, this.client.pos.debtMint());
33
+ const insufficientSupplyLiquidity = insufficientLiquidity(debtAdjustmentUsd, supplyLiquidityAvailable, this.client.pos.supplyMint);
34
+ const insufficientDebtLiquidity = insufficientLiquidity(debtAdjustmentUsd, debtLiquidityAvailable, this.client.pos.debtMint);
35
35
  let useDebtLiquidity = this.values.rebalanceDirection === generated_1.RebalanceDirection.Boost ||
36
36
  insufficientSupplyLiquidity;
37
37
  if (useDebtLiquidity) {
@@ -42,7 +42,7 @@ class RebalanceTxBuilder {
42
42
  }
43
43
  }
44
44
  async flashLoanRequirements(attemptNum) {
45
- const maxLtvRateBps = (0, utils_1.getMaxLiqUtilizationRateBps)(this.client.pos.state().maxLtvBps, this.client.pos.state().liqThresholdBps, 0.02);
45
+ const maxLtvRateBps = (0, utils_1.getMaxLiqUtilizationRateBps)(this.client.pos.state.maxLtvBps, this.client.pos.state.liqThresholdBps, 0.02);
46
46
  if (this.values.intermediaryLiqUtilizationRateBps < maxLtvRateBps) {
47
47
  return undefined;
48
48
  }
@@ -75,10 +75,10 @@ class RebalanceTxBuilder {
75
75
  const useDebtLiquidity = this.flRequirements.liquiditySource === generated_1.TokenType.Debt;
76
76
  let flashLoanToken = undefined;
77
77
  if (boosting || useDebtLiquidity) {
78
- flashLoanToken = this.client.pos.state().debt;
78
+ flashLoanToken = this.client.pos.state.debt;
79
79
  }
80
80
  else {
81
- flashLoanToken = this.client.pos.state().supply;
81
+ flashLoanToken = this.client.pos.state.supply;
82
82
  }
83
83
  return {
84
84
  ...this.flRequirements,
@@ -113,8 +113,18 @@ class RebalanceTxBuilder {
113
113
  this.rebalanceType = generated_1.SolautoRebalanceType.Regular;
114
114
  }
115
115
  }
116
+ realtimeUsdToEmaUsd(realtimeAmountUsd, mint) {
117
+ return ((realtimeAmountUsd / (0, utils_1.safeGetPrice)(mint, generated_1.PriceType.Realtime)) *
118
+ (0, utils_1.safeGetPrice)(mint, generated_1.PriceType.Ema));
119
+ }
116
120
  async setRebalanceDetails(attemptNum) {
117
- this.values = this.getRebalanceValues();
121
+ this.priceType = generated_1.PriceType.Realtime;
122
+ this.values = this.getRebalanceValues(this.priceType);
123
+ const postRebalanceEmaUtilRateBps = (0, utils_1.getLiqUtilzationRateBps)(this.realtimeUsdToEmaUsd(this.values.endResult.supplyUsd, this.client.pos.supplyMint), this.realtimeUsdToEmaUsd(this.values.endResult.debtUsd, this.client.pos.debtMint), this.client.pos.state.liqThresholdBps);
124
+ if (postRebalanceEmaUtilRateBps > this.client.pos.maxBoostToBps) {
125
+ this.priceType = generated_1.PriceType.Ema;
126
+ this.values = this.getRebalanceValues(this.priceType);
127
+ }
118
128
  this.flRequirements = await this.flashLoanRequirements(attemptNum);
119
129
  if (this.flRequirements?.flFeeBps) {
120
130
  this.values = this.getRebalanceValues(this.flRequirements.flFeeBps);
@@ -127,7 +137,7 @@ class RebalanceTxBuilder {
127
137
  if (this.client.selfManaged ||
128
138
  this.client.contextUpdates.supplyAdjustment > BigInt(0) ||
129
139
  this.client.contextUpdates.debtAdjustment > BigInt(0) ||
130
- !this.client.pos.exists()) {
140
+ !this.client.pos.exists) {
131
141
  return false;
132
142
  }
133
143
  // Rebalance ix will already refresh internally if position is self managed
@@ -147,7 +157,7 @@ class RebalanceTxBuilder {
147
157
  : undefined;
148
158
  let tx = (0, umi_1.transactionBuilder)();
149
159
  if (await this.refreshBeforeRebalance()) {
150
- tx = tx.add(this.client.refreshIx());
160
+ tx = tx.add(this.client.refreshIx(this.priceType));
151
161
  }
152
162
  const rebalanceDetails = {
153
163
  values: this.values,
@@ -155,6 +165,7 @@ class RebalanceTxBuilder {
155
165
  flashLoan: flashLoanDetails,
156
166
  swapQuote,
157
167
  targetLiqUtilizationRateBps: this.targetLiqUtilizationRateBps,
168
+ priceType: this.priceType,
158
169
  };
159
170
  (0, utils_1.consoleLog)("Rebalance details:", rebalanceDetails);
160
171
  const firstRebalance = this.client.rebalanceIx(generated_1.RebalanceStep.PreSwap, rebalanceDetails);
@@ -1,4 +1,4 @@
1
- import { RebalanceDirection, TokenBalanceChange } from "../../generated";
1
+ import { PriceType, RebalanceDirection, TokenBalanceChange } from "../../generated";
2
2
  import { SolautoPositionEx } from "../../solautoPosition";
3
3
  import { SolautoFeesBps } from "./solautoFees";
4
4
  export interface PositionValues {
@@ -26,6 +26,6 @@ export interface RebalanceValues extends DebtAdjustment {
26
26
  tokenBalanceChange?: TokenBalanceChange;
27
27
  repayingCloseToMaxLtv: boolean;
28
28
  }
29
- export declare function getRebalanceValues(solautoPosition: SolautoPositionEx, targetLiqUtilizationRateBps?: number, solautoFeeBps?: SolautoFeesBps, flFeeBps?: number): RebalanceValues;
29
+ export declare function getRebalanceValues(solautoPosition: SolautoPositionEx, priceType: PriceType, targetLiqUtilizationRateBps?: number, solautoFeeBps?: SolautoFeesBps, flFeeBps?: number): RebalanceValues;
30
30
  export {};
31
31
  //# sourceMappingURL=rebalanceValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,gBAAgB,GACtB,yBAAyB,CA8B3B;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,EACnB,2BAA2B,EAAE,MAAM,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACtB,cAAc,CAgChB;AAqED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CA6CjB"}
1
+ {"version":3,"file":"rebalanceValues.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceValues.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,gBAAgB,GACtB,yBAAyB,CA8B3B;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,EACnB,2BAA2B,EAAE,MAAM,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACtB,cAAc,CAgChB;AA2ED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,iBAAiB,EAClC,SAAS,EAAE,SAAS,EACpB,2BAA2B,CAAC,EAAE,MAAM,EACpC,aAAa,CAAC,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CA2CjB"}
@@ -51,16 +51,17 @@ function getTokenBalanceChange() {
51
51
  // TODO: DCA, limit orders, take profit, stop loss, etc.
52
52
  return undefined;
53
53
  }
54
- function getTargetLiqUtilizationRateBps(solautoPosition, targetLiqUtilizationRateBps, tokenBalanceChange) {
54
+ function getTargetLiqUtilizationRateBps(solautoPosition, priceType, targetLiqUtilizationRateBps, tokenBalanceChange) {
55
55
  if (targetLiqUtilizationRateBps !== undefined) {
56
56
  return targetLiqUtilizationRateBps;
57
57
  }
58
- const currentRate = solautoPosition.state().liqUtilizationRateBps;
59
- if (currentRate <= solautoPosition.boostFromBps()) {
60
- return solautoPosition.settings().boostToBps;
58
+ if (solautoPosition.liqUtilizationRateBps(generated_1.PriceType.Realtime) >=
59
+ solautoPosition.repayFromBps) {
60
+ return solautoPosition.settings.repayToBps;
61
61
  }
62
- else if (currentRate >= solautoPosition.repayFromBps()) {
63
- return solautoPosition.settings().repayToBps;
62
+ else if (solautoPosition.liqUtilizationRateBps(priceType) <=
63
+ solautoPosition.boostFromBps) {
64
+ return solautoPosition.settings.boostToBps;
64
65
  }
65
66
  // TODO: DCA, limit orders, take profit, stop loss, etc.
66
67
  // else if (tokenBalanceChange !== null) {
@@ -68,9 +69,9 @@ function getTargetLiqUtilizationRateBps(solautoPosition, targetLiqUtilizationRat
68
69
  // }
69
70
  throw new Error("Invalid rebalance condition");
70
71
  }
71
- function getAdjustedPositionValues(solautoPosition, tokenBalanceChange) {
72
- let supplyUsd = solautoPosition.supplyUsd();
73
- const debtUsd = solautoPosition.debtUsd();
72
+ function getAdjustedPositionValues(solautoPosition, priceType, tokenBalanceChange) {
73
+ let supplyUsd = solautoPosition.supplyUsd(priceType);
74
+ const debtUsd = solautoPosition.debtUsd(priceType);
74
75
  if (tokenBalanceChange) {
75
76
  const tb = tokenBalanceChange;
76
77
  switch (tb.changeType) {
@@ -92,26 +93,25 @@ function getAdjustedPositionValues(solautoPosition, tokenBalanceChange) {
92
93
  };
93
94
  }
94
95
  function getRebalanceDirection(solautoPosition, targetLtvBps) {
95
- return solautoPosition.state().liqUtilizationRateBps < targetLtvBps
96
+ return solautoPosition.state.liqUtilizationRateBps < targetLtvBps
96
97
  ? generated_1.RebalanceDirection.Boost
97
98
  : generated_1.RebalanceDirection.Repay;
98
99
  }
99
- function getRebalanceValues(solautoPosition, targetLiqUtilizationRateBps, solautoFeeBps, flFeeBps) {
100
+ function getRebalanceValues(solautoPosition, priceType, targetLiqUtilizationRateBps, solautoFeeBps, flFeeBps) {
100
101
  const tokenBalanceChange = getTokenBalanceChange();
101
- const targetRate = getTargetLiqUtilizationRateBps(solautoPosition, targetLiqUtilizationRateBps, tokenBalanceChange);
102
+ const targetRate = getTargetLiqUtilizationRateBps(solautoPosition, priceType, targetLiqUtilizationRateBps, tokenBalanceChange);
102
103
  const rebalanceDirection = getRebalanceDirection(solautoPosition, targetRate);
103
- const position = getAdjustedPositionValues(solautoPosition, tokenBalanceChange);
104
+ const position = getAdjustedPositionValues(solautoPosition, priceType, tokenBalanceChange);
104
105
  const fees = {
105
106
  solauto: solautoFeeBps
106
107
  ? solautoFeeBps.getSolautoFeesBps(rebalanceDirection).total
107
108
  : 0,
108
- lpBorrow: solautoPosition.state().debt.borrowFeeBps,
109
+ lpBorrow: solautoPosition.state.debt.borrowFeeBps,
109
110
  flashLoan: flFeeBps ?? 0,
110
111
  };
111
- const debtAdjustment = getDebtAdjustment(solautoPosition.state().liqThresholdBps, position, targetRate, fees);
112
+ const debtAdjustment = getDebtAdjustment(solautoPosition.state.liqThresholdBps, position, targetRate, fees);
112
113
  const repayingCloseToMaxLtv = rebalanceDirection === generated_1.RebalanceDirection.Repay &&
113
- targetRate >=
114
- (0, utils_1.maxRepayToBps)(solautoPosition.state().maxLtvBps, solautoPosition.state().liqThresholdBps);
114
+ targetRate >= solautoPosition.maxRepayToBps;
115
115
  return {
116
116
  ...debtAdjustment,
117
117
  rebalanceDirection,
@@ -1,7 +1,7 @@
1
1
  import "rpc-websockets/dist/lib/client";
2
2
  import { PublicKey } from "@solana/web3.js";
3
3
  import { TransactionBuilder } from "@metaplex-foundation/umi";
4
- import { DCASettingsInpArgs, LendingPlatform, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../../generated";
4
+ import { DCASettingsInpArgs, LendingPlatform, PriceType, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../../generated";
5
5
  import { ContextUpdates } from "../../utils";
6
6
  import { ProgramEnv, RebalanceDetails } from "../../types";
7
7
  import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
@@ -53,7 +53,7 @@ export declare abstract class SolautoClient extends ReferralStateManager {
53
53
  updatePositionIx(args: UpdatePositionDataArgs): TransactionBuilder;
54
54
  abstract closePositionIx(): TransactionBuilder;
55
55
  cancelDCAIx(): TransactionBuilder;
56
- abstract refreshIx(): TransactionBuilder;
56
+ abstract refreshIx(priceType: PriceType): TransactionBuilder;
57
57
  protocolInteractionIx(args: SolautoActionArgs): TransactionBuilder;
58
58
  abstract rebalanceIx(rebalanceStep: RebalanceStep, data: RebalanceDetails): TransactionBuilder;
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAA6B,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gCAAgC,EAEhC,sBAAsB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB;IACjE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,8BAAsB,aAAc,SAAQ,oBAAoB;IACvD,eAAe,EAAG,eAAe,CAAC;IAClC,KAAK,EAAG,UAAU,CAAC;IAEnB,SAAS,EAAG,SAAS,CAAC;IAEtB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,OAAO,CAAC;IACtB,GAAG,EAAG,iBAAiB,CAAC;IAExB,gBAAgB,EAAG,SAAS,CAAC;IAC7B,cAAc,EAAG,SAAS,CAAC;IAE3B,cAAc,EAAG,SAAS,CAAC;IAC3B,YAAY,EAAG,SAAS,CAAC;IAEzB,mBAAmB,EAAG,SAAS,CAAC;IAChC,iBAAiB,EAAG,SAAS,CAAC;IAE9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,UAAU,EAAG,oBAAoB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAwB;IAE7D,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAExC,UAAU,CAAC,IAAI,EAAE,iBAAiB;IAoFxC,kBAAkB,IAAI,SAAS,GAAG,SAAS;IAO3C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAOnC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO;IAkB1C,mBAAmB,IAAI,MAAM,EAAE;IAS/B,gBAAgB,IAAI,SAAS,EAAE;IAgBzB,iCAAiC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAUzD,iBAAiB,IAAI,OAAO,CAC9B;QACE,EAAE,EAAE,kBAAkB,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC;QACb,aAAa,EAAE,SAAS,EAAE,CAAC;KAC5B,GACD,SAAS,CACZ;IAgEK,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAgBF,cAAc,CACZ,QAAQ,CAAC,EAAE,gCAAgC,EAC3C,GAAG,CAAC,EAAE,kBAAkB,GACvB,kBAAkB;IA0BrB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAsDlE,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAE9C,WAAW,IAAI,kBAAkB;IAgCjC,QAAQ,CAAC,SAAS,IAAI,kBAAkB;IAExC,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAsFlE,QAAQ,CAAC,WAAW,CAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,gBAAgB,GACrB,kBAAkB;CACtB"}
1
+ {"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"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"}