@defisaver/positions-sdk 2.1.7 → 2.1.9

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 (73) hide show
  1. package/cjs/aaveV3/index.js +3 -3
  2. package/cjs/aaveV3/merit.js +3 -0
  3. package/cjs/aaveV3/merkl.d.ts +1 -1
  4. package/cjs/config/contracts.d.ts +20 -0
  5. package/cjs/config/contracts.js +20 -0
  6. package/cjs/fluid/index.js +40 -12
  7. package/cjs/helpers/aaveHelpers/index.d.ts +1 -1
  8. package/cjs/helpers/aaveHelpers/index.js +6 -4
  9. package/cjs/helpers/morphoBlueHelpers/index.d.ts +1 -1
  10. package/cjs/markets/aave/index.js +1 -1
  11. package/cjs/markets/aave/marketAssets.d.ts +4 -0
  12. package/cjs/markets/aave/marketAssets.js +5 -1
  13. package/cjs/markets/compound/index.js +11 -0
  14. package/cjs/markets/compound/marketsAssets.d.ts +7 -0
  15. package/cjs/markets/compound/marketsAssets.js +7 -0
  16. package/cjs/markets/fluid/index.d.ts +4 -0
  17. package/cjs/markets/fluid/index.js +4 -0
  18. package/cjs/markets/spark/marketAssets.d.ts +1 -0
  19. package/cjs/markets/spark/marketAssets.js +1 -0
  20. package/cjs/services/utils.d.ts +8 -4
  21. package/cjs/services/utils.js +30 -10
  22. package/cjs/services/viem.d.ts +54 -15
  23. package/cjs/services/viem.js +2 -0
  24. package/cjs/staking/eligibility.js +1 -6
  25. package/cjs/types/common.d.ts +4 -2
  26. package/cjs/types/common.js +2 -0
  27. package/cjs/types/fluid.d.ts +7 -3
  28. package/cjs/types/fluid.js +4 -0
  29. package/esm/aaveV3/index.js +4 -4
  30. package/esm/aaveV3/merit.js +3 -0
  31. package/esm/aaveV3/merkl.d.ts +1 -1
  32. package/esm/config/contracts.d.ts +20 -0
  33. package/esm/config/contracts.js +20 -0
  34. package/esm/fluid/index.js +40 -12
  35. package/esm/helpers/aaveHelpers/index.d.ts +1 -1
  36. package/esm/helpers/aaveHelpers/index.js +7 -5
  37. package/esm/helpers/morphoBlueHelpers/index.d.ts +1 -1
  38. package/esm/markets/aave/index.js +1 -1
  39. package/esm/markets/aave/marketAssets.d.ts +4 -0
  40. package/esm/markets/aave/marketAssets.js +4 -0
  41. package/esm/markets/compound/index.js +11 -0
  42. package/esm/markets/compound/marketsAssets.d.ts +7 -0
  43. package/esm/markets/compound/marketsAssets.js +7 -0
  44. package/esm/markets/fluid/index.d.ts +4 -0
  45. package/esm/markets/fluid/index.js +4 -0
  46. package/esm/markets/spark/marketAssets.d.ts +1 -0
  47. package/esm/markets/spark/marketAssets.js +1 -0
  48. package/esm/services/utils.d.ts +8 -4
  49. package/esm/services/utils.js +21 -5
  50. package/esm/services/viem.d.ts +54 -15
  51. package/esm/services/viem.js +3 -1
  52. package/esm/staking/eligibility.js +1 -6
  53. package/esm/types/common.d.ts +4 -2
  54. package/esm/types/common.js +2 -0
  55. package/esm/types/fluid.d.ts +7 -3
  56. package/esm/types/fluid.js +4 -0
  57. package/package.json +2 -2
  58. package/src/aaveV3/index.ts +4 -4
  59. package/src/aaveV3/merit.ts +3 -0
  60. package/src/config/contracts.ts +20 -0
  61. package/src/fluid/index.ts +44 -14
  62. package/src/helpers/aaveHelpers/index.ts +7 -5
  63. package/src/markets/aave/index.ts +1 -1
  64. package/src/markets/aave/marketAssets.ts +5 -0
  65. package/src/markets/compound/index.ts +11 -0
  66. package/src/markets/compound/marketsAssets.ts +7 -0
  67. package/src/markets/fluid/index.ts +4 -0
  68. package/src/markets/spark/marketAssets.ts +1 -0
  69. package/src/services/utils.ts +25 -9
  70. package/src/services/viem.ts +3 -1
  71. package/src/staking/eligibility.ts +1 -7
  72. package/src/types/common.ts +2 -0
  73. package/src/types/fluid.ts +4 -0
@@ -3,20 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.convertHybridArraysToObjects = exports.DEFAULT_TIMEOUT = exports.isMainnetNetwork = exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.wethToEth = exports.ethToWeth = exports.addToArrayIf = exports.addToObjectIf = exports.isLayer2Network = void 0;
6
+ exports.getNativeAssetFromWrapped = exports.getWrappedNativeAssetFromUnwrapped = exports.wxplToXpl = exports.xplToWxpl = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.wethToEth = exports.ethToWeth = exports.convertHybridArraysToObjects = exports.DEFAULT_TIMEOUT = exports.isMainnetNetwork = exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.addToArrayIf = exports.addToObjectIf = exports.isLayer2Network = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const tokens_1 = require("@defisaver/tokens");
9
9
  const common_1 = require("../types/common");
10
- const isLayer2Network = (networkId) => [common_1.NetworkNumber.Opt, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Base, common_1.NetworkNumber.Linea].includes(+networkId);
10
+ const isLayer2Network = (networkId) => [common_1.NetworkNumber.Opt, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Base, common_1.NetworkNumber.Linea, common_1.NetworkNumber.Plasma].includes(+networkId);
11
11
  exports.isLayer2Network = isLayer2Network;
12
12
  const addToObjectIf = (condition, item) => (condition ? item : {});
13
13
  exports.addToObjectIf = addToObjectIf;
14
14
  const addToArrayIf = (condition, ...items) => (condition ? items : []);
15
15
  exports.addToArrayIf = addToArrayIf;
16
- const ethToWeth = (maybeEth) => maybeEth === null || maybeEth === void 0 ? void 0 : maybeEth.replace(/^ETH$/, 'WETH');
17
- exports.ethToWeth = ethToWeth;
18
- const wethToEth = (maybeWeth) => maybeWeth === null || maybeWeth === void 0 ? void 0 : maybeWeth.replace(/^WETH$/, 'ETH');
19
- exports.wethToEth = wethToEth;
20
16
  const stEthToWstEth = (maybeStEth) => maybeStEth === null || maybeStEth === void 0 ? void 0 : maybeStEth.replace(/^stETH$/, 'wstETH');
21
17
  exports.stEthToWstEth = stEthToWstEth;
22
18
  const wstEthToStEth = (maybeStEth) => maybeStEth === null || maybeStEth === void 0 ? void 0 : maybeStEth.replace(/^wstETH$/, 'stETH');
@@ -34,10 +30,6 @@ const getEthAmountForDecimals = (amount, decimals) => new decimal_js_1.default(a
34
30
  exports.getEthAmountForDecimals = getEthAmountForDecimals;
35
31
  const handleWbtcLegacy = (asset) => (asset === 'WBTC Legacy' ? 'WBTC' : asset);
36
32
  exports.handleWbtcLegacy = handleWbtcLegacy;
37
- const wethToEthByAddress = (maybeWethAddr, chainId = common_1.NetworkNumber.Eth) => (0, tokens_1.getAssetInfo)((0, exports.wethToEth)((0, tokens_1.getAssetInfoByAddress)(maybeWethAddr, chainId).symbol), chainId).address;
38
- exports.wethToEthByAddress = wethToEthByAddress;
39
- const ethToWethByAddress = (maybeEthAddr, chainId = common_1.NetworkNumber.Eth) => (0, tokens_1.getAssetInfo)((0, exports.ethToWeth)((0, tokens_1.getAssetInfoByAddress)(maybeEthAddr, chainId).symbol), chainId).address;
40
- exports.ethToWethByAddress = ethToWethByAddress;
41
33
  const bytesToString = (hex) => Buffer.from(hex.replace(/^0x/, ''), 'hex')
42
34
  .toString()
43
35
  // eslint-disable-next-line no-control-regex
@@ -96,3 +88,31 @@ const convertHybridArraysToObjects = (value) => {
96
88
  return value;
97
89
  };
98
90
  exports.convertHybridArraysToObjects = convertHybridArraysToObjects;
91
+ const ethToWeth = (maybeEth) => maybeEth === null || maybeEth === void 0 ? void 0 : maybeEth.replace(/^ETH$/, 'WETH');
92
+ exports.ethToWeth = ethToWeth;
93
+ const wethToEth = (maybeWeth) => maybeWeth === null || maybeWeth === void 0 ? void 0 : maybeWeth.replace(/^WETH$/, 'ETH');
94
+ exports.wethToEth = wethToEth;
95
+ const wethToEthByAddress = (maybeWethAddr, chainId = common_1.NetworkNumber.Eth) => (0, tokens_1.getAssetInfo)((0, exports.wethToEth)((0, tokens_1.getAssetInfoByAddress)(maybeWethAddr, chainId).symbol), chainId).address;
96
+ exports.wethToEthByAddress = wethToEthByAddress;
97
+ const ethToWethByAddress = (maybeEthAddr, chainId = common_1.NetworkNumber.Eth) => (0, tokens_1.getAssetInfo)((0, exports.ethToWeth)((0, tokens_1.getAssetInfoByAddress)(maybeEthAddr, chainId).symbol), chainId).address;
98
+ exports.ethToWethByAddress = ethToWethByAddress;
99
+ const xplToWxpl = (maybeXpl) => maybeXpl === null || maybeXpl === void 0 ? void 0 : maybeXpl.replace(/^XPL$/, 'WXPL');
100
+ exports.xplToWxpl = xplToWxpl;
101
+ const wxplToXpl = (maybeWxpl) => maybeWxpl === null || maybeWxpl === void 0 ? void 0 : maybeWxpl.replace(/^WXPL$/, 'XPL');
102
+ exports.wxplToXpl = wxplToXpl;
103
+ const getWrappedNativeAssetFromUnwrapped = (symbol) => {
104
+ if (symbol === 'ETH')
105
+ return 'WETH';
106
+ if (symbol === 'XPL')
107
+ return 'WXPL';
108
+ return symbol;
109
+ };
110
+ exports.getWrappedNativeAssetFromUnwrapped = getWrappedNativeAssetFromUnwrapped;
111
+ const getNativeAssetFromWrapped = (symbol) => {
112
+ if (symbol === 'WETH')
113
+ return 'ETH';
114
+ if (symbol === 'WXPL')
115
+ return 'XPL';
116
+ return symbol;
117
+ };
118
+ exports.getNativeAssetFromWrapped = getNativeAssetFromWrapped;
@@ -7,14 +7,11 @@ export declare const getViemChain: (network: NetworkNumber) => {
7
7
  readonly apiUrl: "https://api.etherscan.io/api";
8
8
  };
9
9
  };
10
- blockTime?: number | undefined | undefined;
10
+ blockTime: 12000;
11
11
  contracts: {
12
- readonly ensRegistry: {
13
- readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
14
- };
15
12
  readonly ensUniversalResolver: {
16
- readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67";
17
- readonly blockCreated: 19258213;
13
+ readonly address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee";
14
+ readonly blockCreated: 23085558;
18
15
  };
19
16
  readonly multicall3: {
20
17
  readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
@@ -29,6 +26,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
29
26
  readonly symbol: "ETH";
30
27
  readonly decimals: 18;
31
28
  };
29
+ experimental_preconfirmationTime?: number | undefined | undefined;
32
30
  rpcUrls: {
33
31
  readonly default: {
34
32
  readonly http: readonly ["https://eth.merkle.io"];
@@ -101,6 +99,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
101
99
  readonly symbol: "ETH";
102
100
  readonly decimals: 18;
103
101
  };
102
+ experimental_preconfirmationTime?: number | undefined | undefined;
104
103
  rpcUrls: {
105
104
  readonly default: {
106
105
  readonly http: readonly ["https://mainnet.optimism.io"];
@@ -174,16 +173,16 @@ export declare const getViemChain: (network: NetworkNumber) => {
174
173
  r: import("viem").Hex;
175
174
  s: import("viem").Hex;
176
175
  v: bigint;
176
+ value: bigint;
177
+ gas: bigint;
177
178
  to: import("viem").Address | null;
178
179
  from: import("viem").Address;
179
- gas: bigint;
180
180
  nonce: number;
181
- value: bigint;
182
181
  blockHash: `0x${string}` | null;
183
182
  blockNumber: bigint | null;
183
+ transactionIndex: number | null;
184
184
  hash: import("viem").Hash;
185
185
  input: import("viem").Hex;
186
- transactionIndex: number | null;
187
186
  typeHex: import("viem").Hex | null;
188
187
  accessList?: undefined | undefined;
189
188
  authorizationList?: undefined | undefined;
@@ -352,7 +351,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
352
351
  readonly apiUrl: "https://api.arbiscan.io/api";
353
352
  };
354
353
  };
355
- blockTime?: number | undefined | undefined;
354
+ blockTime: 250;
356
355
  contracts: {
357
356
  readonly multicall3: {
358
357
  readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
@@ -367,6 +366,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
367
366
  readonly symbol: "ETH";
368
367
  readonly decimals: 18;
369
368
  };
369
+ experimental_preconfirmationTime?: number | undefined | undefined;
370
370
  rpcUrls: {
371
371
  readonly default: {
372
372
  readonly http: readonly ["https://arb1.arbitrum.io/rpc"];
@@ -441,6 +441,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
441
441
  readonly symbol: "ETH";
442
442
  readonly decimals: 18;
443
443
  };
444
+ experimental_preconfirmationTime?: number | undefined | undefined;
444
445
  rpcUrls: {
445
446
  readonly default: {
446
447
  readonly http: readonly ["https://mainnet.base.org"];
@@ -514,16 +515,16 @@ export declare const getViemChain: (network: NetworkNumber) => {
514
515
  r: import("viem").Hex;
515
516
  s: import("viem").Hex;
516
517
  v: bigint;
518
+ value: bigint;
519
+ gas: bigint;
517
520
  to: import("viem").Address | null;
518
521
  from: import("viem").Address;
519
- gas: bigint;
520
522
  nonce: number;
521
- value: bigint;
522
523
  blockHash: `0x${string}` | null;
523
524
  blockNumber: bigint | null;
525
+ transactionIndex: number | null;
524
526
  hash: import("viem").Hash;
525
527
  input: import("viem").Hex;
526
- transactionIndex: number | null;
527
528
  typeHex: import("viem").Hex | null;
528
529
  accessList?: undefined | undefined;
529
530
  authorizationList?: undefined | undefined;
@@ -703,8 +704,8 @@ export declare const getViemChain: (network: NetworkNumber) => {
703
704
  readonly blockCreated: 6682888;
704
705
  };
705
706
  readonly ensUniversalResolver: {
706
- readonly address: "0x3aA974fb3f8C1E02796048BDCdeD79e9D53a6965";
707
- readonly blockCreated: 6683000;
707
+ readonly address: "0x4D41762915F83c76EcaF6776d9b08076aA32b492";
708
+ readonly blockCreated: 22222151;
708
709
  };
709
710
  };
710
711
  ensTlds: readonly [".linea.eth"];
@@ -715,6 +716,7 @@ export declare const getViemChain: (network: NetworkNumber) => {
715
716
  readonly symbol: "ETH";
716
717
  readonly decimals: 18;
717
718
  };
719
+ experimental_preconfirmationTime?: number | undefined | undefined;
718
720
  rpcUrls: {
719
721
  readonly default: {
720
722
  readonly http: readonly ["https://rpc.linea.build"];
@@ -730,6 +732,40 @@ export declare const getViemChain: (network: NetworkNumber) => {
730
732
  };
731
733
  formatters?: undefined;
732
734
  serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
735
+ } | {
736
+ blockExplorers: {
737
+ readonly default: {
738
+ readonly name: "PlasmaScan";
739
+ readonly url: "https://plasmascan.to";
740
+ };
741
+ };
742
+ blockTime?: number | undefined | undefined;
743
+ contracts: {
744
+ readonly multicall3: {
745
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
746
+ readonly blockCreated: 0;
747
+ };
748
+ };
749
+ ensTlds?: readonly string[] | undefined;
750
+ id: 9745;
751
+ name: "Plasma";
752
+ nativeCurrency: {
753
+ readonly name: "Plasma";
754
+ readonly symbol: "XPL";
755
+ readonly decimals: 18;
756
+ };
757
+ experimental_preconfirmationTime?: number | undefined | undefined;
758
+ rpcUrls: {
759
+ readonly default: {
760
+ readonly http: readonly ["https://rpc.plasma.to"];
761
+ };
762
+ };
763
+ sourceId?: number | undefined | undefined;
764
+ testnet?: boolean | undefined | undefined;
765
+ custom?: Record<string, unknown> | undefined;
766
+ fees?: import("viem").ChainFees<undefined> | undefined;
767
+ formatters?: undefined;
768
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
733
769
  };
734
770
  export declare const getViemProvider: (provider: EthereumProvider, network: NetworkNumber, options?: any) => {
735
771
  account: undefined;
@@ -741,6 +777,7 @@ export declare const getViemProvider: (provider: EthereumProvider, network: Netw
741
777
  request?: (parameters: import("viem").CcipRequestParameters) => Promise<`0x${string}`>;
742
778
  } | undefined;
743
779
  chain: undefined;
780
+ experimental_blockTag?: import("viem").BlockTag | undefined;
744
781
  key: string;
745
782
  name: string;
746
783
  pollingInterval: number;
@@ -7579,6 +7616,7 @@ export declare const getViemProvider: (provider: EthereumProvider, network: Netw
7579
7616
  simulateBlocks: <const calls extends readonly unknown[]>(args: import("viem").SimulateBlocksParameters<calls>) => Promise<import("viem").SimulateBlocksReturnType<calls>>;
7580
7617
  simulateCalls: <const calls extends readonly unknown[]>(args: import("viem").SimulateCallsParameters<calls>) => Promise<import("viem").SimulateCallsReturnType<calls>>;
7581
7618
  simulateContract: <const abi extends import("viem").Abi | readonly unknown[], functionName extends import("viem").ContractFunctionName<abi, "nonpayable" | "payable">, const args_1 extends import("viem").ContractFunctionArgs<abi, "nonpayable" | "payable", functionName>, chainOverride extends import("viem").Chain | undefined, accountOverride extends import("viem").Account | import("viem").Address | undefined = undefined>(args: import("viem").SimulateContractParameters<abi, functionName, args_1, undefined, chainOverride, accountOverride>) => Promise<import("viem").SimulateContractReturnType<abi, functionName, args_1, undefined, import("viem").Account | undefined, chainOverride, accountOverride>>;
7619
+ verifyHash: (args: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>;
7582
7620
  verifyMessage: (args: import("viem").VerifyMessageActionParameters) => Promise<import("viem").VerifyMessageActionReturnType>;
7583
7621
  verifySiweMessage: (args: {
7584
7622
  blockNumber?: bigint | undefined | undefined;
@@ -7606,6 +7644,7 @@ export declare const getViemProvider: (provider: EthereumProvider, network: Netw
7606
7644
  cacheTime?: undefined;
7607
7645
  ccipRead?: undefined;
7608
7646
  chain?: undefined;
7647
+ experimental_blockTag?: undefined;
7609
7648
  key?: undefined;
7610
7649
  name?: undefined;
7611
7650
  pollingInterval?: undefined;
@@ -16,6 +16,8 @@ const getViemChain = (network) => {
16
16
  return chains_1.base;
17
17
  case common_1.NetworkNumber.Linea:
18
18
  return chains_1.linea;
19
+ case common_1.NetworkNumber.Plasma:
20
+ return chains_1.plasma;
19
21
  default:
20
22
  throw new Error(`Unsupported network: ${network}`);
21
23
  }
@@ -24,12 +24,6 @@ const isEligibleForEthenaUSDeRewards = (usedAssets, { healthRatio }) => {
24
24
  const anythingBorrowedNotAllowed = Object.values(usedAssets).some((asset) => asset.isBorrowed && !allowedBorrowAssets.includes(asset.symbol));
25
25
  if (anythingBorrowedNotAllowed)
26
26
  return { isEligible: false, eligibleUSDAmount: '0' };
27
- const totalAmountBorrowed = Object.values(usedAssets).reduce((acc, asset) => {
28
- if (asset.isBorrowed) {
29
- return acc.add(asset.borrowedUsd);
30
- }
31
- return acc;
32
- }, new decimal_js_1.default(0)).toString();
33
27
  if (new decimal_js_1.default(healthRatio).gte(2.5))
34
28
  return { isEligible: false, eligibleUSDAmount: '0' }; // health ratio must be below 2.5
35
29
  const halfAmountSupplied = new decimal_js_1.default(totalAmountSupplied).div(2).toString();
@@ -63,4 +57,5 @@ exports.EligibilityMapping = {
63
57
  [common_1.IncentiveEligibilityId.AaveV3EthenaLiquidLeverage]: exports.isEligibleForEthenaUSDeRewards,
64
58
  [common_1.IncentiveEligibilityId.AaveV3ArbitrumEthSupply]: exports.isEligibleForAaveV3ArbitrumEthSupply,
65
59
  [common_1.IncentiveEligibilityId.AaveV3ArbitrumETHLSBorrow]: exports.isEligibleForAaveV3ArbitrumETHLSBorrow,
60
+ [common_1.IncentiveEligibilityId.AaveV3EthenaLiquidLeveragePlasma]: exports.isEligibleForEthenaUSDeRewards,
66
61
  };
@@ -5,7 +5,8 @@ export declare enum IncentiveKind {
5
5
  export declare enum IncentiveEligibilityId {
6
6
  AaveV3EthenaLiquidLeverage = "0x7361e6f04060154e0268a8402b073cbf97e11ae3BORROW_BL",
7
7
  AaveV3ArbitrumEthSupply = "0x5d16261c6715a653248269861bbacf68a9774cde",
8
- AaveV3ArbitrumETHLSBorrow = "0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351"
8
+ AaveV3ArbitrumETHLSBorrow = "0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351",
9
+ AaveV3EthenaLiquidLeveragePlasma = "0x67264783f1e9a2af8627a235853057a6fc975bd2BORROW_BL"
9
10
  }
10
11
  export interface IncentiveData {
11
12
  token: string;
@@ -23,7 +24,8 @@ export declare enum NetworkNumber {
23
24
  Opt = 10,
24
25
  Arb = 42161,
25
26
  Base = 8453,
26
- Linea = 59144
27
+ Linea = 59144,
28
+ Plasma = 9745
27
29
  }
28
30
  export type Networkish = string | NetworkNumber;
29
31
  export interface MMAssetData {
@@ -11,6 +11,7 @@ var IncentiveEligibilityId;
11
11
  IncentiveEligibilityId["AaveV3EthenaLiquidLeverage"] = "0x7361e6f04060154e0268a8402b073cbf97e11ae3BORROW_BL";
12
12
  IncentiveEligibilityId["AaveV3ArbitrumEthSupply"] = "0x5d16261c6715a653248269861bbacf68a9774cde";
13
13
  IncentiveEligibilityId["AaveV3ArbitrumETHLSBorrow"] = "0x0c84331e39d6658Cd6e6b9ba04736cC4c4734351";
14
+ IncentiveEligibilityId["AaveV3EthenaLiquidLeveragePlasma"] = "0x67264783f1e9a2af8627a235853057a6fc975bd2BORROW_BL";
14
15
  })(IncentiveEligibilityId || (exports.IncentiveEligibilityId = IncentiveEligibilityId = {}));
15
16
  var NetworkNumber;
16
17
  (function (NetworkNumber) {
@@ -19,4 +20,5 @@ var NetworkNumber;
19
20
  NetworkNumber[NetworkNumber["Arb"] = 42161] = "Arb";
20
21
  NetworkNumber[NetworkNumber["Base"] = 8453] = "Base";
21
22
  NetworkNumber[NetworkNumber["Linea"] = 59144] = "Linea";
23
+ NetworkNumber[NetworkNumber["Plasma"] = 9745] = "Plasma";
22
24
  })(NetworkNumber || (exports.NetworkNumber = NetworkNumber = {}));
@@ -149,21 +149,25 @@ export declare enum FluidMainnetDepositToken {
149
149
  USDC = "USDC",
150
150
  USDT = "USDT",
151
151
  GHO = "GHO",
152
- sUSDS = "sUSDS"
152
+ sUSDS = "sUSDS",
153
+ USDtb = "USDtb"
153
154
  }
154
155
  export declare enum FluidArbitrumDepositToken {
155
156
  ETH = "ETH",
156
157
  wstETH = "wstETH",
157
158
  USDC = "USDC",
158
159
  USDT = "USDT",
159
- ARB = "ARB"
160
+ ARB = "ARB",
161
+ GHO = "GHO",
162
+ sUSDS = "sUSDS"
160
163
  }
161
164
  export declare enum FluidBaseDepositToken {
162
165
  ETH = "ETH",
163
166
  USDC = "USDC",
164
167
  wstETH = "wstETH",
165
168
  EURC = "EURC",
166
- sUSDS = "sUSDS"
169
+ sUSDS = "sUSDS",
170
+ GHO = "GHO"
167
171
  }
168
172
  export type FluidDepositTokenByNetwork = {
169
173
  [NetworkNumber.Eth]: FluidMainnetDepositToken;
@@ -136,6 +136,7 @@ var FluidMainnetDepositToken;
136
136
  FluidMainnetDepositToken["USDT"] = "USDT";
137
137
  FluidMainnetDepositToken["GHO"] = "GHO";
138
138
  FluidMainnetDepositToken["sUSDS"] = "sUSDS";
139
+ FluidMainnetDepositToken["USDtb"] = "USDtb";
139
140
  })(FluidMainnetDepositToken || (exports.FluidMainnetDepositToken = FluidMainnetDepositToken = {}));
140
141
  var FluidArbitrumDepositToken;
141
142
  (function (FluidArbitrumDepositToken) {
@@ -144,6 +145,8 @@ var FluidArbitrumDepositToken;
144
145
  FluidArbitrumDepositToken["USDC"] = "USDC";
145
146
  FluidArbitrumDepositToken["USDT"] = "USDT";
146
147
  FluidArbitrumDepositToken["ARB"] = "ARB";
148
+ FluidArbitrumDepositToken["GHO"] = "GHO";
149
+ FluidArbitrumDepositToken["sUSDS"] = "sUSDS";
147
150
  })(FluidArbitrumDepositToken || (exports.FluidArbitrumDepositToken = FluidArbitrumDepositToken = {}));
148
151
  var FluidBaseDepositToken;
149
152
  (function (FluidBaseDepositToken) {
@@ -152,6 +155,7 @@ var FluidBaseDepositToken;
152
155
  FluidBaseDepositToken["wstETH"] = "wstETH";
153
156
  FluidBaseDepositToken["EURC"] = "EURC";
154
157
  FluidBaseDepositToken["sUSDS"] = "sUSDS";
158
+ FluidBaseDepositToken["GHO"] = "GHO";
155
159
  })(FluidBaseDepositToken || (exports.FluidBaseDepositToken = FluidBaseDepositToken = {}));
156
160
  var FluidVaultType;
157
161
  (function (FluidVaultType) {
@@ -13,7 +13,7 @@ import { AaveIncentiveDataProviderV3ContractViem, AaveIncentivesControllerViem,
13
13
  import { aaveAnyGetAggregatedPositionData, aaveV3IsInIsolationMode, aaveV3IsInSiloedMode } from '../helpers/aaveHelpers';
14
14
  import { AAVE_V3 } from '../markets/aave';
15
15
  import { aprToApy, calculateBorrowingAssetLimit } from '../moneymarket';
16
- import { ethToWeth, isEnabledOnBitmap, isLayer2Network, wethToEth, wethToEthByAddress, } from '../services/utils';
16
+ import { getWrappedNativeAssetFromUnwrapped, isEnabledOnBitmap, isLayer2Network, wethToEth, wethToEthByAddress, } from '../services/utils';
17
17
  import { getStakingApy, STAKING_ASSETS } from '../staking';
18
18
  import { IncentiveKind, NetworkNumber, } from '../types/common';
19
19
  import { getViemProvider, setViemBlockNumber } from '../services/viem';
@@ -47,12 +47,12 @@ export const aaveV3EmodeCategoriesMapping = (extractedState, usedAssets) => {
47
47
  };
48
48
  export function _getAaveV3MarketData(provider_1, network_1, market_1) {
49
49
  return __awaiter(this, arguments, void 0, function* (provider, network, market, blockNumber = 'latest') {
50
- const _addresses = market.assets.map(a => getAssetInfo(ethToWeth(a), network).address);
50
+ const _addresses = market.assets.map(a => getAssetInfo(getWrappedNativeAssetFromUnwrapped(a), network).address);
51
51
  const isL2 = isLayer2Network(network);
52
52
  const loanInfoContract = AaveV3ViewContractViem(provider, network);
53
53
  const aaveIncentivesContract = AaveIncentiveDataProviderV3ContractViem(provider, network);
54
54
  const marketAddress = market.providerAddress;
55
- const networksWithIncentives = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Opt, NetworkNumber.Linea];
55
+ const networksWithIncentives = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Opt, NetworkNumber.Linea, NetworkNumber.Plasma];
56
56
  // eslint-disable-next-line prefer-const
57
57
  let [loanInfo, eModesInfo, isBorrowAllowed, rewardInfo, merkleRewardsMap, meritRewardsMap] = yield Promise.all([
58
58
  loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses], setViemBlockNumber(blockNumber)),
@@ -353,7 +353,7 @@ export const _getAaveV3AccountData = (provider_1, network_1, address_1, extracte
353
353
  const loanInfoContract = AaveV3ViewContractViem(provider, network);
354
354
  const lendingPoolContract = createViemContractFromConfigFunc(market.lendingPool, market.lendingPoolAddress)(provider, network);
355
355
  const marketAddress = market.providerAddress;
356
- const _addresses = market.assets.map((a) => getAssetInfo(ethToWeth(a), network).address);
356
+ const _addresses = market.assets.map((a) => getAssetInfo(getWrappedNativeAssetFromUnwrapped(a), network).address);
357
357
  const middleAddressIndex = Math.floor(_addresses.length / 2); // split addresses in half to avoid gas limit by multicall
358
358
  const [eModeCategory, tokenBalances1, tokenBalances2] = yield Promise.all([
359
359
  lendingPoolContract.read.getUserEMode([address], setViemBlockNumber(blockNumber)),
@@ -42,6 +42,9 @@ const MERIT_DATA_MAP = {
42
42
  [NetworkNumber.Linea]: {
43
43
  [AaveVersions.AaveV3]: {},
44
44
  },
45
+ [NetworkNumber.Plasma]: {
46
+ [AaveVersions.AaveV3]: {},
47
+ },
45
48
  };
46
49
  /**
47
50
  * Fetches merit rewards data from Aave API
@@ -1,6 +1,6 @@
1
1
  import { MerkleRewardMap } from '../types';
2
2
  import { NetworkNumber } from '../types/common';
3
- export declare const getAaveUnderlyingSymbol: (_symbol?: string) => any;
3
+ export declare const getAaveUnderlyingSymbol: (_symbol?: string) => string;
4
4
  /**
5
5
  * aEthLidoUSDC -> aUSDC
6
6
  * USDC -> USDC
@@ -28303,6 +28303,11 @@ export declare const AaveV3View: {
28303
28303
  };
28304
28304
  };
28305
28305
  };
28306
+ readonly "9745": {
28307
+ readonly address: "0xD8E67968d8a0df4beCf2D50daE1e34d4d80C701C";
28308
+ readonly createdBlock: 1880799;
28309
+ readonly oldVersions: {};
28310
+ };
28306
28311
  };
28307
28312
  };
28308
28313
  export declare const AaveV3PoolAddressesProvider: {
@@ -28763,6 +28768,9 @@ export declare const AaveV3PoolAddressesProvider: {
28763
28768
  readonly "59144": {
28764
28769
  readonly address: "0x89502c3731F69DDC95B65753708A07F8Cd0373F4";
28765
28770
  };
28771
+ readonly "9745": {
28772
+ readonly address: "0x061D8e131F26512348ee5FA42e2DF1bA9d6505E9";
28773
+ };
28766
28774
  };
28767
28775
  };
28768
28776
  export declare const AaveV3LidoPoolAddressesProvider: {
@@ -31133,6 +31141,9 @@ export declare const AaveV3LendingPool: {
31133
31141
  readonly "59144": {
31134
31142
  readonly address: "0xc47b8C00b0f69a36fa203Ffeac0334874574a8Ac";
31135
31143
  };
31144
+ readonly "9745": {
31145
+ readonly address: "0x925a2A7214Ed92428B5b1B090F80b25700095e12";
31146
+ };
31136
31147
  };
31137
31148
  };
31138
31149
  export declare const AaveV3LidoLendingPool: {
@@ -34467,6 +34478,9 @@ export declare const AaveV3ProtocolDataProvider: {
34467
34478
  readonly "59144": {
34468
34479
  readonly address: "0x47cd4b507B81cB831669c71c7077f4daF6762FF4";
34469
34480
  };
34481
+ readonly "9745": {
34482
+ readonly address: "0xf2D6E38B407e31E7E7e4a16E6769728b76c7419F";
34483
+ };
34470
34484
  };
34471
34485
  };
34472
34486
  export declare const AaveV3LidoProtocolDataProvider: {
@@ -35805,6 +35819,9 @@ export declare const AaveUiIncentiveDataProviderV3: {
35805
35819
  readonly "59144": {
35806
35820
  readonly address: "0x117684358D990E42Eb1649E7e8C4691951dc1E71";
35807
35821
  };
35822
+ readonly "9745": {
35823
+ readonly address: "0xcb85C501B3A5e9851850d66648d69B26A4c90942";
35824
+ };
35808
35825
  };
35809
35826
  };
35810
35827
  export declare const cUSDCv3: {
@@ -84964,6 +84981,9 @@ export declare const AaveRewardsController: {
84964
84981
  readonly "59144": {
84965
84982
  readonly address: "0xc67bb8F2314fA0df50cBa314c6509A7bdAD500C0";
84966
84983
  };
84984
+ readonly "9745": {
84985
+ readonly address: "0x3A57eAa3Ca3794D66977326af7991eB3F6dD5a5A";
84986
+ };
84967
84987
  };
84968
84988
  };
84969
84989
  export declare const LiquityV2ActivePool: {
@@ -227,6 +227,11 @@ export const AaveV3View = {
227
227
  "address": "0xc9D6EfA6e08B66a5Cdc516Bcd5807c2fa69E0f2A"
228
228
  }
229
229
  },
230
+ },
231
+ "9745": {
232
+ "address": "0xD8E67968d8a0df4beCf2D50daE1e34d4d80C701C",
233
+ "createdBlock": 1880799,
234
+ "oldVersions": {},
230
235
  }
231
236
  }
232
237
  };
@@ -247,6 +252,9 @@ export const AaveV3PoolAddressesProvider = {
247
252
  },
248
253
  "59144": {
249
254
  "address": "0x89502c3731F69DDC95B65753708A07F8Cd0373F4"
255
+ },
256
+ "9745": {
257
+ "address": "0x061D8e131F26512348ee5FA42e2DF1bA9d6505E9"
250
258
  }
251
259
  }
252
260
  };
@@ -283,6 +291,9 @@ export const AaveV3LendingPool = {
283
291
  },
284
292
  "59144": {
285
293
  "address": "0xc47b8C00b0f69a36fa203Ffeac0334874574a8Ac"
294
+ },
295
+ "9745": {
296
+ "address": "0x925a2A7214Ed92428B5b1B090F80b25700095e12"
286
297
  }
287
298
  }
288
299
  };
@@ -319,6 +330,9 @@ export const AaveV3ProtocolDataProvider = {
319
330
  },
320
331
  "59144": {
321
332
  "address": "0x47cd4b507B81cB831669c71c7077f4daF6762FF4"
333
+ },
334
+ "9745": {
335
+ "address": "0xf2D6E38B407e31E7E7e4a16E6769728b76c7419F"
322
336
  }
323
337
  }
324
338
  };
@@ -355,6 +369,9 @@ export const AaveUiIncentiveDataProviderV3 = {
355
369
  },
356
370
  "59144": {
357
371
  "address": "0x117684358D990E42Eb1649E7e8C4691951dc1E71"
372
+ },
373
+ "9745": {
374
+ "address": "0xcb85C501B3A5e9851850d66648d69B26A4c90942"
358
375
  }
359
376
  }
360
377
  };
@@ -1205,6 +1222,9 @@ export const AaveRewardsController = {
1205
1222
  },
1206
1223
  "59144": {
1207
1224
  "address": "0xc67bb8F2314fA0df50cBa314c6509A7bdAD500C0"
1225
+ },
1226
+ "9745": {
1227
+ "address": "0x3A57eAa3Ca3794D66977326af7991eB3F6dD5a5A"
1208
1228
  }
1209
1229
  }
1210
1230
  };
@@ -1081,19 +1081,21 @@ export const _getFluidTokenData = (provider, network, token) => __awaiter(void 0
1081
1081
  };
1082
1082
  });
1083
1083
  export const getFluidTokenData = (provider, network, token) => __awaiter(void 0, void 0, void 0, function* () { return _getFluidTokenData(getViemProvider(provider, network), network, token); });
1084
- const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
1085
- const supplyRate = new Dec(fTokenData.supplyRate).div(100).toString();
1086
- const rewardsRate = new Dec(fTokenData.rewardsRate).div(1e12).toString();
1084
+ const parseFDepositTokenData = (fTokenData, userPosition, apiData, fTokenAddress) => {
1085
+ var _a, _b;
1087
1086
  const decimals = fTokenData.decimals.toString();
1088
1087
  const depositRate = new Dec(getEthAmountForDecimals(fTokenData.convertToShares.toString(), decimals)).toString();
1089
1088
  const withdrawRate = new Dec(getEthAmountForDecimals(fTokenData.convertToAssets.toString(), decimals)).toString();
1089
+ const supplyRate = new Dec((apiData === null || apiData === void 0 ? void 0 : apiData.supplyRate) || '0').div(100).toString();
1090
+ const rewardRates = ((_a = apiData === null || apiData === void 0 ? void 0 : apiData.rewards) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => acc.add(new Dec(item.rate || '0').div(100)), new Dec(0))) || '0';
1091
+ const stakeRate = new Dec(((_b = apiData === null || apiData === void 0 ? void 0 : apiData.asset) === null || _b === void 0 ? void 0 : _b.stakingApr) || '0').div(100).toString();
1090
1092
  return {
1091
1093
  fTokenAddress,
1092
1094
  fTokenSymbol: fTokenData.symbol,
1093
1095
  decimals,
1094
1096
  totalDeposited: getEthAmountForDecimals(fTokenData.totalAssets.toString(), decimals),
1095
1097
  withdrawable: getEthAmountForDecimals(fTokenData.withdrawable.toString(), decimals),
1096
- apy: new Dec(supplyRate).add(rewardsRate).toString(),
1098
+ apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
1097
1099
  depositRate,
1098
1100
  withdrawRate,
1099
1101
  deposited: getEthAmountForDecimals(userPosition.underlyingAssets.toString(), decimals),
@@ -1103,19 +1105,42 @@ const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
1103
1105
  export const _getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () {
1104
1106
  const view = FluidViewContractViem(provider, network);
1105
1107
  const fTokenAddress = getFTokenAddress(token, network);
1106
- const [userPosition, fTokenData] = yield view.read.getUserEarnPositionWithFToken([fTokenAddress, address]);
1107
- return parseFDepositTokenData(fTokenData, userPosition, fTokenAddress);
1108
+ const [[userPosition, fTokenData], rewardsApiResponse,] = yield Promise.all([
1109
+ view.read.getUserEarnPositionWithFToken([fTokenAddress, address]),
1110
+ fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
1111
+ ]);
1112
+ let rewardsData = { rewards: [] };
1113
+ if (!rewardsApiResponse.ok) {
1114
+ console.log('External API Failure: Failed to fetch fluid rewards APY');
1115
+ }
1116
+ else {
1117
+ rewardsData = yield rewardsApiResponse.json();
1118
+ }
1119
+ return parseFDepositTokenData(fTokenData, userPosition, rewardsData, fTokenAddress);
1108
1120
  });
1109
1121
  export const getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () { return _getFluidDepositData(getViemProvider(provider, network), network, token, address); });
1110
1122
  export const _getAllUserEarnPositionsWithFTokens = (provider, network, user) => __awaiter(void 0, void 0, void 0, function* () {
1111
1123
  const view = FluidViewContractViem(provider, network);
1112
- const [userPositions, fTokensData] = yield view.read.getAllUserEarnPositionsWithFTokens([user]);
1124
+ const [[userPositions, fTokensData], rewardsApiResponse,] = yield Promise.all([
1125
+ view.read.getAllUserEarnPositionsWithFTokens([user]),
1126
+ fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens`),
1127
+ ]);
1128
+ let rewardsData = {
1129
+ data: [{ address: ZERO_ADDRESS, rewards: [] }],
1130
+ };
1131
+ if (!rewardsApiResponse.ok) {
1132
+ console.log('External API Failure: Failed to fetch fluid rewards APY');
1133
+ }
1134
+ else {
1135
+ rewardsData = yield rewardsApiResponse.json();
1136
+ }
1113
1137
  const parsedRes = fTokensData.reduce((acc, fTokenData, i) => {
1114
1138
  const userPosition = userPositions[i];
1115
1139
  const deposited = userPosition === null || userPosition === void 0 ? void 0 : userPosition.underlyingAssets;
1116
1140
  if (Number(deposited) > 0) {
1117
1141
  const fTokenAddress = fTokenData.tokenAddress;
1118
- acc.push(parseFDepositTokenData(fTokenData, userPosition, fTokenAddress));
1142
+ const apiData = rewardsData.data.find((item) => compareAddresses(item.address, fTokenAddress));
1143
+ acc.push(parseFDepositTokenData(fTokenData, userPosition, apiData, fTokenAddress));
1119
1144
  }
1120
1145
  return acc;
1121
1146
  }, []);
@@ -1160,19 +1185,22 @@ const getTokenPricePortfolio = (token, provider, network) => __awaiter(void 0, v
1160
1185
  const tokensWithoutChainlinkPrices = ['sUSDS', 'USDA', 'ezETH', 'rsETH', 'weETHs', 'LBTC'];
1161
1186
  const handleTokenWithoutChainlinkPrice = (token, prices) => {
1162
1187
  if (token === 'sUSDS') {
1163
- return new Dec('105276929').div(1e8).toString();
1188
+ return new Dec('107057929').div(1e8).toString();
1164
1189
  }
1165
1190
  if (token === 'USDA') {
1166
1191
  return new Dec('100000000').div(1e8).toString();
1167
1192
  }
1193
+ if (token === 'wstUSR') {
1194
+ return new Dec('111280000').div(1e8).toString();
1195
+ }
1168
1196
  if (token === 'ezETH') {
1169
- return new Dec(prices.ETH).mul(1.049).toString();
1197
+ return new Dec(prices.ETH).mul(1.06).toString();
1170
1198
  }
1171
1199
  if (token === 'rsETH') {
1172
- return new Dec(prices.wstETH).mul(1.0454).toString();
1200
+ return new Dec(prices.wstETH).mul(1.0557).toString();
1173
1201
  }
1174
1202
  if (token === 'weETHs') {
1175
- return new Dec(prices.wstETH).mul(1.026).toString();
1203
+ return new Dec(prices.wstETH).mul(1.032).toString();
1176
1204
  }
1177
1205
  if (token === 'LBTC') {
1178
1206
  return prices.WBTC;
@@ -44,4 +44,4 @@ export declare const getApyAfterValuesEstimation: (selectedMarket: AaveMarketInf
44
44
  /**
45
45
  * won't cover all cases
46
46
  */
47
- export declare const getAaveUnderlyingSymbol: (_symbol?: string) => any;
47
+ export declare const getAaveUnderlyingSymbol: (_symbol?: string) => string;