@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
|
];
|
package/cjs/staking/staking.js
CHANGED
|
@@ -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
|
-
|
|
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
|
];
|
package/esm/staking/staking.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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.
|
|
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
|
];
|
package/src/staking/staking.ts
CHANGED
|
@@ -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
|
-
|
|
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';
|