@defisaver/positions-sdk 0.0.67 → 0.0.68

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.
@@ -7,7 +7,7 @@ exports.morphoAaveV2AssetDefaultMarket = ['DAI', 'ETH', 'USDC', 'USDT', 'WBTC',
7
7
  exports.morphoAaveV3AssetEthMarket = [
8
8
  'ETH', 'wstETH', 'DAI', 'USDC', 'WBTC', 'rETH', 'cbETH', 'sDAI', 'USDT',
9
9
  ];
10
- exports.aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH'];
10
+ exports.aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH'];
11
11
  exports.aaveV3AssetsDefaultMarketOpt = [
12
12
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
13
13
  ];
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.getStETHByWstETHMultiple = exports.getStETHByWstETH = exports.getWstETHByStETH = exports.calculateNetApy = exports.calculateInterestEarned = exports.getStakingApy = exports.STAKING_ASSETS = exports.getSUSDeApy = exports.getDsrApy = exports.getREthApr = exports.getCbETHApr = exports.getStETHApr = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
+ const v3_sdk_1 = require("@stakewise/v3-sdk");
17
18
  const contracts_1 = require("../contracts");
18
19
  const common_1 = require("../types/common");
19
20
  const constants_1 = require("../constants");
@@ -98,7 +99,12 @@ const getWeEthApr = () => __awaiter(void 0, void 0, void 0, function* () {
98
99
  const total = data.latest_aprs.reduce((acc, apr) => new decimal_js_1.default(acc).add(apr).toString());
99
100
  return new decimal_js_1.default(total).div(data.latest_aprs.length).div(100).toString();
100
101
  });
101
- exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe'];
102
+ const getOsETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
103
+ const sdk = new v3_sdk_1.StakeWiseSDK({ network: v3_sdk_1.Network.Mainnet });
104
+ const apy = yield sdk.osToken.getAPY();
105
+ return apy;
106
+ });
107
+ exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH'];
102
108
  const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
103
109
  try {
104
110
  if (asset === 'stETH' || asset === 'wstETH')
@@ -113,6 +119,8 @@ const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefine
113
119
  return (0, exports.getSUSDeApy)();
114
120
  if (asset === 'weETH')
115
121
  return getWeEthApr();
122
+ if (asset === 'osETH')
123
+ return getOsETHApy();
116
124
  }
117
125
  catch (e) {
118
126
  console.error(`Failed to fetch APY for ${asset}`);
@@ -4,7 +4,7 @@ export const morphoAaveV2AssetDefaultMarket = ['DAI', 'ETH', 'USDC', 'USDT', 'WB
4
4
  export const morphoAaveV3AssetEthMarket = [
5
5
  'ETH', 'wstETH', 'DAI', 'USDC', 'WBTC', 'rETH', 'cbETH', 'sDAI', 'USDT',
6
6
  ];
7
- export const aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH'];
7
+ export const aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH'];
8
8
  export const aaveV3AssetsDefaultMarketOpt = [
9
9
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
10
10
  ];
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import Dec from 'decimal.js';
11
+ import { StakeWiseSDK, Network } from '@stakewise/v3-sdk';
11
12
  import { CbEthContract, LidoContract, PotContract, REthContract, wstETHContract, } from '../contracts';
12
13
  import { NetworkNumber } from '../types/common';
13
14
  import { BLOCKS_IN_A_YEAR, SECONDS_PER_YEAR, AVG_BLOCK_TIME } from '../constants';
@@ -87,7 +88,12 @@ const getWeEthApr = () => __awaiter(void 0, void 0, void 0, function* () {
87
88
  const total = data.latest_aprs.reduce((acc, apr) => new Dec(acc).add(apr).toString());
88
89
  return new Dec(total).div(data.latest_aprs.length).div(100).toString();
89
90
  });
90
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe'];
91
+ const getOsETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
92
+ const sdk = new StakeWiseSDK({ network: Network.Mainnet });
93
+ const apy = yield sdk.osToken.getAPY();
94
+ return apy;
95
+ });
96
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH'];
91
97
  export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
92
98
  try {
93
99
  if (asset === 'stETH' || asset === 'wstETH')
@@ -102,6 +108,8 @@ export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = u
102
108
  return getSUSDeApy();
103
109
  if (asset === 'weETH')
104
110
  return getWeEthApr();
111
+ if (asset === 'osETH')
112
+ return getOsETHApy();
105
113
  }
106
114
  catch (e) {
107
115
  console.error(`Failed to fetch APY for ${asset}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "0.0.67",
3
+ "version": "0.0.68",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -19,9 +19,10 @@
19
19
  "author": "",
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
- "@defisaver/tokens": "^1.5.18",
22
+ "@defisaver/tokens": "^1.5.22",
23
23
  "@ethersproject/bignumber": "^5.7.0",
24
24
  "@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
25
+ "@stakewise/v3-sdk": "^1.3.0",
25
26
  "decimal.js": "^10.4.3"
26
27
  },
27
28
  "devDependencies": {
@@ -7,7 +7,7 @@ export const morphoAaveV3AssetEthMarket = [
7
7
  'ETH', 'wstETH', 'DAI', 'USDC', 'WBTC', 'rETH', 'cbETH', 'sDAI', 'USDT',
8
8
  ];
9
9
 
10
- export const aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH'];
10
+ export const aaveV3AssetsDefaultMarketEth = ['ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH'];
11
11
  export const aaveV3AssetsDefaultMarketOpt = [
12
12
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
13
13
  ];
@@ -1,5 +1,6 @@
1
1
  import Dec from 'decimal.js';
2
2
  import Web3 from 'web3';
3
+ import { StakeWiseSDK, Network } from '@stakewise/v3-sdk';
3
4
  import {
4
5
  CbEthContract, LidoContract, PotContract, REthContract, wstETHContract,
5
6
  } from '../contracts';
@@ -8,6 +9,7 @@ import { ContractEventLog } from '../types/contracts/generated/types';
8
9
  import { BLOCKS_IN_A_YEAR, SECONDS_PER_YEAR, AVG_BLOCK_TIME } from '../constants';
9
10
  import { multicall } from '../multicall';
10
11
 
12
+
11
13
  export const getStETHApr = async (web3: Web3, fromBlock = 17900000, blockNumber: 'latest' | number = 'latest') => {
12
14
  try {
13
15
  const tokenRebasedEvents: ContractEventLog<{ [key: string]: any }>[] = await LidoContract(web3, NetworkNumber.Eth).getPastEvents('TokenRebased', { fromBlock, toBlock: blockNumber });
@@ -89,7 +91,13 @@ const getWeEthApr = async () => {
89
91
  return new Dec(total).div(data.latest_aprs.length).div(100).toString();
90
92
  };
91
93
 
92
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe'];
94
+ const getOsETHApy = async () => {
95
+ const sdk = new StakeWiseSDK({ network: Network.Mainnet });
96
+ const apy = await sdk.osToken.getAPY();
97
+ return apy;
98
+ };
99
+
100
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH'];
93
101
 
94
102
  export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' | number = 'latest', fromBlock: number | undefined = undefined) => {
95
103
  try {
@@ -99,6 +107,7 @@ export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' |
99
107
  if (asset === 'sDAI') return getDsrApy(web3);
100
108
  if (asset === 'sUSDe') return getSUSDeApy();
101
109
  if (asset === 'weETH') return getWeEthApr();
110
+ if (asset === 'osETH') return getOsETHApy();
102
111
  } catch (e) {
103
112
  console.error(`Failed to fetch APY for ${asset}`);
104
113
  return '0';