@defisaver/positions-sdk 2.1.161-portfolio-api-2-dev → 2.1.162-npm-token-dev

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 (101) hide show
  1. package/cjs/aaveV3/index.d.ts +12 -2
  2. package/cjs/aaveV3/index.js +7 -1
  3. package/cjs/aaveV3/sgho.d.ts +16 -2
  4. package/cjs/claiming/aaveV3.d.ts +2 -2
  5. package/cjs/claiming/ethena.d.ts +1 -2
  6. package/cjs/claiming/king.d.ts +1 -2
  7. package/cjs/claiming/spark.d.ts +2 -2
  8. package/cjs/fluid/index.d.ts +49 -5
  9. package/cjs/helpers/aaveHelpers/index.d.ts +9 -1
  10. package/cjs/helpers/aaveHelpers/index.js +23 -6
  11. package/cjs/liquity/index.d.ts +12 -2
  12. package/cjs/liquityV2/index.d.ts +23 -3
  13. package/cjs/portfolio/index.d.ts +5 -5
  14. package/cjs/portfolio/index.js +36 -51
  15. package/cjs/savings/index.js +5 -2
  16. package/cjs/savings/morphoVaults/index.d.ts +1 -1
  17. package/cjs/savings/morphoVaults/index.js +56 -18
  18. package/cjs/savings/morphoVaults/options.d.ts +2 -0
  19. package/cjs/savings/morphoVaults/options.js +61 -1
  20. package/cjs/spark/index.js +1 -0
  21. package/cjs/types/aave.d.ts +3 -98
  22. package/cjs/types/compound.d.ts +2 -26
  23. package/cjs/types/curveUsd.d.ts +1 -9
  24. package/cjs/types/fluid.d.ts +0 -13
  25. package/cjs/types/index.d.ts +0 -1
  26. package/cjs/types/index.js +0 -1
  27. package/cjs/types/liquity.d.ts +0 -12
  28. package/cjs/types/liquityV2.d.ts +0 -24
  29. package/cjs/types/llamaLend.d.ts +1 -12
  30. package/cjs/types/morphoBlue.d.ts +0 -2
  31. package/cjs/types/portfolio.d.ts +10 -88
  32. package/cjs/types/savings/morphoVaults.d.ts +10 -2
  33. package/cjs/types/savings/morphoVaults.js +9 -1
  34. package/cjs/types/spark.d.ts +1 -21
  35. package/cjs/umbrella/index.d.ts +3 -2
  36. package/esm/aaveV3/index.d.ts +12 -2
  37. package/esm/aaveV3/index.js +7 -1
  38. package/esm/aaveV3/sgho.d.ts +16 -2
  39. package/esm/claiming/aaveV3.d.ts +2 -2
  40. package/esm/claiming/aaveV3.js +1 -1
  41. package/esm/claiming/ethena.d.ts +1 -2
  42. package/esm/claiming/king.d.ts +1 -2
  43. package/esm/claiming/spark.d.ts +2 -2
  44. package/esm/claiming/spark.js +1 -1
  45. package/esm/fluid/index.d.ts +49 -5
  46. package/esm/helpers/aaveHelpers/index.d.ts +9 -1
  47. package/esm/helpers/aaveHelpers/index.js +20 -5
  48. package/esm/liquity/index.d.ts +12 -2
  49. package/esm/liquityV2/index.d.ts +23 -3
  50. package/esm/portfolio/index.d.ts +5 -5
  51. package/esm/portfolio/index.js +36 -51
  52. package/esm/savings/index.js +5 -2
  53. package/esm/savings/morphoVaults/index.d.ts +1 -1
  54. package/esm/savings/morphoVaults/index.js +57 -19
  55. package/esm/savings/morphoVaults/options.d.ts +2 -0
  56. package/esm/savings/morphoVaults/options.js +61 -1
  57. package/esm/spark/index.js +1 -0
  58. package/esm/types/aave.d.ts +3 -98
  59. package/esm/types/compound.d.ts +2 -26
  60. package/esm/types/curveUsd.d.ts +1 -9
  61. package/esm/types/fluid.d.ts +0 -13
  62. package/esm/types/index.d.ts +0 -1
  63. package/esm/types/index.js +0 -1
  64. package/esm/types/liquity.d.ts +0 -12
  65. package/esm/types/liquityV2.d.ts +0 -24
  66. package/esm/types/llamaLend.d.ts +1 -12
  67. package/esm/types/morphoBlue.d.ts +0 -2
  68. package/esm/types/portfolio.d.ts +10 -88
  69. package/esm/types/savings/morphoVaults.d.ts +10 -2
  70. package/esm/types/savings/morphoVaults.js +8 -0
  71. package/esm/types/spark.d.ts +1 -21
  72. package/esm/umbrella/index.d.ts +3 -2
  73. package/package.json +3 -2
  74. package/src/aaveV3/index.ts +7 -3
  75. package/src/aaveV3/sgho.ts +17 -2
  76. package/src/claiming/aaveV3.ts +2 -4
  77. package/src/claiming/ethena.ts +5 -5
  78. package/src/claiming/king.ts +3 -3
  79. package/src/claiming/spark.ts +4 -6
  80. package/src/fluid/index.ts +3 -4
  81. package/src/helpers/aaveHelpers/index.ts +24 -7
  82. package/src/liquity/index.ts +2 -2
  83. package/src/liquityV2/index.ts +3 -3
  84. package/src/portfolio/index.ts +57 -76
  85. package/src/savings/index.ts +5 -2
  86. package/src/savings/morphoVaults/index.ts +73 -21
  87. package/src/savings/morphoVaults/options.ts +67 -1
  88. package/src/spark/index.ts +1 -0
  89. package/src/types/aave.ts +2 -104
  90. package/src/types/compound.ts +2 -38
  91. package/src/types/curveUsd.ts +1 -17
  92. package/src/types/fluid.ts +0 -14
  93. package/src/types/index.ts +1 -2
  94. package/src/types/liquity.ts +1 -13
  95. package/src/types/liquityV2.ts +1 -26
  96. package/src/types/llamaLend.ts +1 -19
  97. package/src/types/morphoBlue.ts +0 -3
  98. package/src/types/portfolio.ts +11 -111
  99. package/src/types/savings/morphoVaults.ts +11 -1
  100. package/src/types/spark.ts +1 -25
  101. package/src/umbrella/index.ts +1 -2
@@ -1,53 +1,22 @@
1
- import {
2
- AaveV2MarketData, AaveV2PositionData, AaveV3MarketData, AaveV3PositionData, AaveVersions, StakeAaveData, UmbrellaStakingData,
3
- } from './aave';
4
- import { AaveV4AccountData, AaveV4SpokeData, AaveV4SpokesType } from './aaveV4';
5
- import {
6
- AaveRewardsClaimableToken,
7
- EthenaAirdropClaimableToken,
8
- KingRewardsClaimableToken,
9
- MerklRewardsClaimableToken,
10
- SparkAirdropClaimableToken,
11
- SparkRewardsClaimableToken,
12
- UniswapAirdropClaimableToken,
13
- } from './claiming';
1
+ import { AaveV2PositionData, AaveV3PositionData, AaveVersions } from './aave';
2
+ import { AaveV4AccountData, AaveV4SpokesType } from './aaveV4';
14
3
  import { EthAddress } from './common';
15
- import {
16
- CompoundV2MarketsData, CompoundV2PositionData, CompoundV3MarketsData, CompoundV3PositionData, CompoundVersions,
17
- } from './compound';
18
- import { CrvUSDGlobalMarketData, CrvUSDUserData, CrvUSDVersions } from './curveUsd';
19
- import { FluidEarnPositionData, FluidVaultData } from './fluid';
20
- import { LiquityStakingData, LiquityTroveInfo } from './liquity';
21
- import {
22
- LiquityV2MarketData, LiquityV2SBoldYBoldData, LiquityV2StakingData, LiquityV2TroveData, LiquityV2Versions,
23
- } from './liquityV2';
24
- import { LlamaLendGlobalMarketData, LlamaLendUserData, LlamaLendVersionsType } from './llamaLend';
4
+ import { CompoundV2PositionData, CompoundV3PositionData, CompoundVersions } from './compound';
5
+ import { CrvUSDUserData, CrvUSDVersions } from './curveUsd';
6
+ import { FluidVaultData } from './fluid';
7
+ import { LiquityTroveInfo } from './liquity';
8
+ import { LiquityV2TroveData, LiquityV2Versions } from './liquityV2';
9
+ import { LlamaLendUserData, LlamaLendVersionsType } from './llamaLend';
25
10
  import { CdpData } from './maker';
26
- import {
27
- MorphoBlueEarnData, MorphoBlueMarketInfo, MorphoBluePositionData, MorphoBlueVersions,
28
- } from './morphoBlue';
29
- import { MorphoMidnightMarketInfo, MorphoMidnightPositionData, MorphoMidnightVersions } from './morphoMidnight';
30
- import { SparkMarketsData, SparkPositionData, SparkVersions } from './spark';
11
+ import { MorphoBluePositionData, MorphoBlueVersions } from './morphoBlue';
12
+ import { MorphoMidnightPositionData, MorphoMidnightVersions } from './morphoMidnight';
13
+ import { SparkPositionData, SparkVersions } from './spark';
31
14
 
32
15
  export interface PortfolioProtocolData<T> {
33
16
  error: string,
34
17
  data: T | null,
35
18
  }
36
19
 
37
- /** A failed fetch of a protocol that, when it succeeds, getPortfolioData returns unwrapped rather than as `{ error, data }`. */
38
- export interface PortfolioProtocolError {
39
- error: string,
40
- data: null,
41
- }
42
-
43
- /** What getPortfolioData reads besides positions and markets. Both default to true. */
44
- export interface PortfolioDataOptions {
45
- /** stakingPositions; with false it comes back as {} and no staking source is read. */
46
- staking?: boolean,
47
- /** rewardsData; with false it comes back as {} and no rewards source is read. */
48
- rewards?: boolean,
49
- }
50
-
51
20
  export interface PortfolioPositionsDataForAddress {
52
21
  aaveV3: {
53
22
  [key in AaveVersions]?: PortfolioProtocolData<AaveV3PositionData>;
@@ -93,73 +62,4 @@ export interface PortfolioPositionsDataForAddress {
93
62
 
94
63
  export interface PortfolioPositionsData {
95
64
  [key: EthAddress]: PortfolioPositionsDataForAddress;
96
- }
97
-
98
- /**
99
- * The staking positions getPortfolioData returns for an address. The shapes are uneven, and the DeFi Saver app
100
- * parses them as they are: a protocol read once per address comes back unwrapped on success, as
101
- * `{ error, data: null }` on failure, and as {} (or Fluid's `{ error: '', data: {} }`) on a network it is not read on.
102
- */
103
- export interface PortfolioStakingPositionsDataForAddress {
104
- /** stkAAVE, stkGHO and sGHO; mainnet only. */
105
- aaveV3: StakeAaveData | PortfolioProtocolError | {};
106
- /** Morpho Blue supply without a borrow (Earn), by market; only markets with a deposit or an error. */
107
- morphoBlue: {
108
- [key in MorphoBlueVersions]?: PortfolioProtocolData<MorphoBlueEarnData>;
109
- };
110
- // Never filled; kept so the shape does not change under the app.
111
- compoundV3: Record<string, never>;
112
- spark: Record<string, never>;
113
- aaveV2: Record<string, never>;
114
- compoundV2: Record<string, never>;
115
- /** LQTY staking and the LUSD stability pool; mainnet only. */
116
- liquity: LiquityStakingData | PortfolioProtocolError | {};
117
- /** Stability pool deposits, by market; mainnet only, legacy markets left out. */
118
- liquityV2: {
119
- [key in LiquityV2Versions]?: PortfolioProtocolData<LiquityV2StakingData>;
120
- };
121
- /** Fluid lending (fToken) deposits; `{ error: '', data: {} }` on a network without Fluid. */
122
- fluid: FluidEarnPositionData[] | PortfolioProtocolError | { error: string, data: Record<string, never> };
123
- /** Umbrella stakes; absent off mainnet. */
124
- umbrella?: UmbrellaStakingData | PortfolioProtocolError;
125
- /** sBOLD, yBOLD and stYBOLD; data is null off mainnet. */
126
- liquityV2SBoldYBold: PortfolioProtocolData<LiquityV2SBoldYBoldData>;
127
- }
128
-
129
- // A Record rather than an interface: the app casts getPortfolioData's result to its own Record<string, …> type, and an
130
- // interface with an address index signature is not comparable to one.
131
- export type PortfolioStakingPositionsData = Record<EthAddress, PortfolioStakingPositionsDataForAddress>;
132
-
133
- /** The claimable rewards getPortfolioData returns for an address. Off mainnet only Merkl and Aave V3 are read. */
134
- export interface PortfolioRewardsDataForAddress {
135
- merkl: PortfolioProtocolData<MerklRewardsClaimableToken[]>;
136
- aaveV3: {
137
- [key in AaveVersions]?: PortfolioProtocolData<AaveRewardsClaimableToken[]>;
138
- };
139
- spark: {
140
- [key in SparkVersions]?: PortfolioProtocolData<SparkRewardsClaimableToken[]>;
141
- };
142
- /** The SPK airdrop. */
143
- spk: PortfolioProtocolData<SparkAirdropClaimableToken[]>;
144
- king: PortfolioProtocolData<KingRewardsClaimableToken[]>;
145
- /** {} off mainnet. */
146
- ethena: PortfolioProtocolData<EthenaAirdropClaimableToken[]> | {};
147
- uniswap: PortfolioProtocolData<UniswapAirdropClaimableToken[]>;
148
- }
149
-
150
- export type PortfolioRewardsData = Record<EthAddress, PortfolioRewardsDataForAddress>;
151
-
152
- /** The `markets` getPortfolioData returns: every market it read, by protocol, keyed by market or spoke. */
153
- export interface PortfolioMarketsData {
154
- morphoMarketsData: Record<string, MorphoBlueMarketInfo>;
155
- morphoMidnightMarketsData: Record<string, MorphoMidnightMarketInfo>;
156
- compoundV3MarketsData: Record<string, CompoundV3MarketsData>;
157
- sparkMarketsData: Record<string, SparkMarketsData>;
158
- aaveV3MarketsData: Record<string, AaveV3MarketData>;
159
- aaveV2MarketsData: Record<string, AaveV2MarketData>;
160
- compoundV2MarketsData: Record<string, CompoundV2MarketsData>;
161
- crvUsdMarketsData: Record<string, CrvUSDGlobalMarketData>;
162
- llamaLendMarketsData: Record<string, LlamaLendGlobalMarketData>;
163
- liquityV2MarketsData: Record<string, LiquityV2MarketData>;
164
- aaveV4SpokesData: Record<string, AaveV4SpokeData>;
165
65
  }
@@ -1,4 +1,4 @@
1
- import { EthAddress } from '../common';
1
+ import { EthAddress, NetworkNumber } from '../common';
2
2
 
3
3
  export enum MorphoVaultType {
4
4
  MorphoVaultFlagshipEth = 'morpho_vault_flagship_eth',
@@ -21,6 +21,14 @@ export enum MorphoVaultType {
21
21
  MorphoVaultSmokehouseUSDT = 'morpho_vault_smokehouse_usdt',
22
22
  MorphoVaultSmokehouseUSDC = 'morpho_vault_smokehouse_usdc',
23
23
  MorphoVaultSmokehouseDAI = 'morpho_vault_smokehouse_dai',
24
+ // Vault V2
25
+ MorphoVaultGauntletUSDGPremium = 'morpho_vault_gauntlet_usdg_premium',
26
+ MorphoVaultSteakhouseUSDGPro = 'morpho_vault_steakhouse_usdg_pro',
27
+ }
28
+
29
+ export enum MorphoVaultVersion {
30
+ V1 = 1,
31
+ V2 = 2,
24
32
  }
25
33
 
26
34
  export interface MorphoVault {
@@ -28,6 +36,8 @@ export interface MorphoVault {
28
36
  name: string;
29
37
  address: EthAddress;
30
38
  asset: string;
39
+ network: NetworkNumber;
40
+ version: MorphoVaultVersion;
31
41
  deploymentBlock: number;
32
42
  isLegacy: boolean;
33
43
  }
@@ -57,22 +57,6 @@ export interface SparkAssetData extends MMAssetData {
57
57
  eModeCategory: number,
58
58
  liquidationBonus: string,
59
59
  liquidationRatio: string,
60
- // Set by _getSparkMarketsData. Optional, so objects built by hand still type-check.
61
- debtCeilingForIsolationMode?: string,
62
- isSiloed?: boolean,
63
- isolationModeTotalDebt?: string,
64
- isolationModeBorrowingEnabled?: boolean,
65
- assetId?: number,
66
- borrowRateStable?: string,
67
- supplyCap?: string,
68
- isInactive?: boolean,
69
- isFrozen?: boolean,
70
- isPaused?: boolean,
71
- canBeWithdrawn?: boolean,
72
- canBePayBacked?: boolean,
73
- disabledStableBorrowing?: boolean,
74
- isFlashLoanEnabled?: boolean,
75
- aTokenAddress?: EthAddress,
76
60
  }
77
61
 
78
62
  export interface SparkAssetsData {
@@ -131,15 +115,7 @@ export interface SparkAggregatedPositionData {
131
115
  exposure: string,
132
116
  }
133
117
 
134
- /**
135
- * Fields sparkGetAggregatedPositionData adds to every Spark position at runtime, on top of those declared below.
136
- * Optional, so code that builds a position by hand keeps compiling.
137
- */
138
- export type SparkPositionAggregatedFields = Partial<Omit<SparkAggregatedPositionData,
139
- | keyof MMPositionData | 'ratio' | 'collRatio' | 'suppliedUsd' | 'borrowedUsd' | 'borrowLimitUsd'
140
- | 'suppliedCollateralUsd' | 'incentiveUsd' | 'totalInterestUsd'>>;
141
-
142
- export interface SparkPositionData extends MMPositionData, SparkPositionAggregatedFields {
118
+ export interface SparkPositionData extends MMPositionData {
143
119
  ratio: string,
144
120
  minRatio: string,
145
121
  collRatio: string,
@@ -1,14 +1,13 @@
1
1
  import { Client } from 'viem';
2
2
  import { AaveUmbrellaViewViem, AaveV3ViewContractViem } from '../contracts';
3
3
  import { EthAddress, NetworkNumber } from '../types/common';
4
- import { UmbrellaStakingData } from '../types/aave';
5
4
  import { compareAddresses, convertHybridArraysToObjects, getEthAmountForDecimals } from '../services/utils';
6
5
  import { findMatching, tokenEntries } from './umbrellaUtils';
7
6
 
8
7
  const umbrella = '0xD400fc38ED4732893174325693a63C30ee3881a8';
9
8
  const aaveOracle = '0x54586bE62E3c3580375aE3723C145253060Ca0C2';
10
9
 
11
- export const getUmbrellaData = async (provider: Client, network: NetworkNumber, address: EthAddress): Promise<UmbrellaStakingData> => {
10
+ export const getUmbrellaData = async (provider: Client, network: NetworkNumber, address: EthAddress) => {
12
11
  const umbrellaView = AaveUmbrellaViewViem(provider, network);
13
12
  const aaveV3View = AaveV3ViewContractViem(provider, network);
14
13
  const [tokensAggregatedData, additionalUmbrellaStakingData, userAggregatedData] = await Promise.all([