@defisaver/positions-sdk 0.0.3 → 0.0.4

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.
@@ -168,7 +168,7 @@ function getAaveV3MarketData(web3, network, market, defaultWeb3) {
168
168
  yield Promise.all(assetsData.map((_market) => __awaiter(this, void 0, void 0, function* () {
169
169
  /* eslint-disable no-param-reassign */
170
170
  const rewardForMarket = rewardInfo === null || rewardInfo === void 0 ? void 0 : rewardInfo[_market.underlyingTokenAddress];
171
- if (['wstETH', 'cbETH', 'rETH'].includes(_market.symbol)) {
171
+ if (['wstETH', 'cbETH', 'rETH', 'sDAI'].includes(_market.symbol)) {
172
172
  if (!(0, utils_1.isLayer2Network)(network) && _market.symbol === 'cbETH')
173
173
  return;
174
174
  _market.incentiveSupplyApy = yield (0, staking_1.getStakingApy)(_market.symbol, defaultWeb3);
@@ -3,6 +3,7 @@ import { MMAssetsData, MMUsedAssets } from '../types/common';
3
3
  export declare const getStETHApr: (web3: Web3, fromBlock?: number, blockNumber?: 'latest' | number) => Promise<any>;
4
4
  export declare const getCbETHApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
5
5
  export declare const getREthApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
6
+ export declare const getDsrApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
6
7
  export declare const getStakingApy: (asset: string, web3: Web3, blockNumber?: 'latest' | number, fromBlock?: number | undefined) => Promise<any> | undefined;
7
8
  export declare const calculateInterestEarned: (principal: string, interest: string, type: string, apy?: boolean) => number;
8
9
  export declare const calculateNetApy: (usedAssets: MMUsedAssets, assetsData: MMAssetsData, isMorpho?: boolean) => {
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getStETHByWstETHMultiple = exports.getStETHByWstETH = exports.getWstETHByStETH = exports.calculateNetApy = exports.calculateInterestEarned = exports.getStakingApy = exports.getREthApr = exports.getCbETHApr = exports.getStETHApr = void 0;
15
+ exports.getStETHByWstETHMultiple = exports.getStETHByWstETH = exports.getWstETHByStETH = exports.calculateNetApy = exports.calculateInterestEarned = exports.getStakingApy = exports.getDsrApy = exports.getREthApr = exports.getCbETHApr = exports.getStETHApr = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
17
  const contracts_1 = require("../contracts");
18
18
  const common_1 = require("../types/common");
@@ -76,6 +76,16 @@ const getREthApr = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, v
76
76
  return apr;
77
77
  });
78
78
  exports.getREthApr = getREthApr;
79
+ const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
80
+ const potContract = (0, contracts_1.PotContract)(web3, common_1.NetworkNumber.Eth);
81
+ return new decimal_js_1.default(yield potContract.methods.dsr().call())
82
+ .div(new decimal_js_1.default(1e27))
83
+ .pow(constants_1.SECONDS_PER_YEAR)
84
+ .sub(1)
85
+ .mul(100)
86
+ .toString();
87
+ });
88
+ exports.getDsrApy = getDsrApy;
79
89
  const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
80
90
  if (asset === 'stETH' || asset === 'wstETH')
81
91
  return (0, exports.getStETHApr)(web3, fromBlock, blockNumber);
@@ -83,6 +93,8 @@ const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefine
83
93
  return (0, exports.getCbETHApr)(web3, blockNumber);
84
94
  if (asset === 'rETH')
85
95
  return (0, exports.getREthApr)(web3, blockNumber);
96
+ if (asset === 'sDAI')
97
+ return (0, exports.getDsrApy)(web3);
86
98
  };
87
99
  exports.getStakingApy = getStakingApy;
88
100
  const calculateInterestEarned = (principal, interest, type, apy = false) => {
@@ -159,7 +159,7 @@ export function getAaveV3MarketData(web3, network, market, defaultWeb3) {
159
159
  yield Promise.all(assetsData.map((_market) => __awaiter(this, void 0, void 0, function* () {
160
160
  /* eslint-disable no-param-reassign */
161
161
  const rewardForMarket = rewardInfo === null || rewardInfo === void 0 ? void 0 : rewardInfo[_market.underlyingTokenAddress];
162
- if (['wstETH', 'cbETH', 'rETH'].includes(_market.symbol)) {
162
+ if (['wstETH', 'cbETH', 'rETH', 'sDAI'].includes(_market.symbol)) {
163
163
  if (!isLayer2Network(network) && _market.symbol === 'cbETH')
164
164
  return;
165
165
  _market.incentiveSupplyApy = yield getStakingApy(_market.symbol, defaultWeb3);
@@ -3,6 +3,7 @@ import { MMAssetsData, MMUsedAssets } from '../types/common';
3
3
  export declare const getStETHApr: (web3: Web3, fromBlock?: number, blockNumber?: 'latest' | number) => Promise<any>;
4
4
  export declare const getCbETHApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
5
5
  export declare const getREthApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
6
+ export declare const getDsrApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
6
7
  export declare const getStakingApy: (asset: string, web3: Web3, blockNumber?: 'latest' | number, fromBlock?: number | undefined) => Promise<any> | undefined;
7
8
  export declare const calculateInterestEarned: (principal: string, interest: string, type: string, apy?: boolean) => number;
8
9
  export declare const calculateNetApy: (usedAssets: MMUsedAssets, assetsData: MMAssetsData, isMorpho?: boolean) => {
@@ -8,7 +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 { CbEthContract, LidoContract, REthContract, wstETHContract, } from '../contracts';
11
+ import { CbEthContract, LidoContract, PotContract, REthContract, wstETHContract, } from '../contracts';
12
12
  import { NetworkNumber } from '../types/common';
13
13
  import { BLOCKS_IN_A_YEAR, SECONDS_PER_YEAR, AVG_BLOCK_TIME } from '../constants';
14
14
  import { multicall } from '../multicall';
@@ -67,6 +67,15 @@ export const getREthApr = (web3, blockNumber = 'latest') => __awaiter(void 0, vo
67
67
  .toString();
68
68
  return apr;
69
69
  });
70
+ export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
71
+ const potContract = PotContract(web3, NetworkNumber.Eth);
72
+ return new Dec(yield potContract.methods.dsr().call())
73
+ .div(new Dec(1e27))
74
+ .pow(SECONDS_PER_YEAR)
75
+ .sub(1)
76
+ .mul(100)
77
+ .toString();
78
+ });
70
79
  export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
71
80
  if (asset === 'stETH' || asset === 'wstETH')
72
81
  return getStETHApr(web3, fromBlock, blockNumber);
@@ -74,6 +83,8 @@ export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = u
74
83
  return getCbETHApr(web3, blockNumber);
75
84
  if (asset === 'rETH')
76
85
  return getREthApr(web3, blockNumber);
86
+ if (asset === 'sDAI')
87
+ return getDsrApy(web3);
77
88
  };
78
89
  export const calculateInterestEarned = (principal, interest, type, apy = false) => {
79
90
  let interval = 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -244,7 +244,7 @@ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, ma
244
244
  await Promise.all(assetsData.map(async (_market: AaveV3AssetData) => {
245
245
  /* eslint-disable no-param-reassign */
246
246
  const rewardForMarket: IUiIncentiveDataProviderV3.AggregatedReserveIncentiveDataStructOutput | undefined = rewardInfo?.[_market.underlyingTokenAddress as any];
247
- if (['wstETH', 'cbETH', 'rETH'].includes(_market.symbol)) {
247
+ if (['wstETH', 'cbETH', 'rETH', 'sDAI'].includes(_market.symbol)) {
248
248
  if (!isLayer2Network(network) && _market.symbol === 'cbETH') return;
249
249
  _market.incentiveSupplyApy = await getStakingApy(_market.symbol, defaultWeb3);
250
250
  _market.incentiveSupplyToken = _market.symbol;
@@ -1,7 +1,7 @@
1
1
  import Dec from 'decimal.js';
2
2
  import Web3 from 'web3';
3
3
  import {
4
- CbEthContract, LidoContract, REthContract, wstETHContract,
4
+ CbEthContract, LidoContract, PotContract, REthContract, wstETHContract,
5
5
  } from '../contracts';
6
6
  import { MMAssetsData, MMUsedAssets, NetworkNumber } from '../types/common';
7
7
  import { ContractEventLog } from '../types/contracts/generated/types';
@@ -66,10 +66,21 @@ export const getREthApr = async (web3: Web3, blockNumber: 'latest' | number = 'l
66
66
  return apr;
67
67
  };
68
68
 
69
+ export const getDsrApy = async (web3: Web3, blockNumber: 'latest' | number = 'latest') => {
70
+ const potContract = PotContract(web3, NetworkNumber.Eth);
71
+ return new Dec(await potContract.methods.dsr().call())
72
+ .div(new Dec(1e27))
73
+ .pow(SECONDS_PER_YEAR)
74
+ .sub(1)
75
+ .mul(100)
76
+ .toString();
77
+ };
78
+
69
79
  export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' | number = 'latest', fromBlock: number | undefined = undefined) => {
70
80
  if (asset === 'stETH' || asset === 'wstETH') return getStETHApr(web3, fromBlock, blockNumber);
71
81
  if (asset === 'cbETH') return getCbETHApr(web3, blockNumber);
72
82
  if (asset === 'rETH') return getREthApr(web3, blockNumber);
83
+ if (asset === 'sDAI') return getDsrApy(web3);
73
84
  };
74
85
 
75
86
  export const calculateInterestEarned = (principal: string, interest: string, type: string, apy = false) => {
package/yarn-error.log ADDED
@@ -0,0 +1,64 @@
1
+ Arguments:
2
+ /Users/stefan/.nvm/versions/node/v14.19.0/bin/node /usr/local/Cellar/yarn/1.22.19/libexec/bin/yarn.js
3
+
4
+ PATH:
5
+ /Users/stefan/.nvm/versions/node/v14.19.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Users/stefan/WebstormProjects/defisaver-positions-sdk/node_modules/.bin:/usr/local/go
6
+
7
+ Yarn version:
8
+ 1.22.19
9
+
10
+ Node version:
11
+ 14.19.0
12
+
13
+ Platform:
14
+ darwin x64
15
+
16
+ Trace:
17
+ Error: incorrect data check
18
+ at Zlib.zlibOnError [as onerror] (zlib.js:187:17)
19
+
20
+ npm manifest:
21
+ {
22
+ "name": "defisaver-positions-sdk",
23
+ "version": "0.0.1",
24
+ "description": "",
25
+ "main": "./cjs/index.js",
26
+ "module": "./esm/src/index.js",
27
+ "types": "./esm/src/index.d.ts",
28
+ "scripts": {
29
+ "build:esm": "rm -rf esm && tsc -p tsconfig.json",
30
+ "build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json",
31
+ "build": "npm run build:cjs && npm run build:esm",
32
+ "dev": "tsc -p tsconfig.cjs.json --watch",
33
+ "lint": "eslint src/ --fix",
34
+ "generate-contracts": "node scripts/generateContracts.js",
35
+ "test": "mocha tests/*",
36
+ "build-test": "npm run build && mocha tests/*"
37
+ },
38
+ "keywords": [],
39
+ "author": "",
40
+ "license": "ISC",
41
+ "dependencies": {
42
+ "@defisaver/tokens": "^1.4.56",
43
+ "decimal.js": "^10.4.3"
44
+ },
45
+ "devDependencies": {
46
+ "@defisaver/eslint-config": "^1.0.1",
47
+ "chai": "^4.3.8",
48
+ "dotenv": "^16.3.1",
49
+ "eslint": "^8.49.0",
50
+ "mocha": "^10.2.0",
51
+ "typechain": "^8.3.1",
52
+ "typechain-target-web3-v1-3mihai3": "^6.0.2",
53
+ "typescript": "^5.2.2"
54
+ },
55
+ "peerDependencies": {
56
+ "web3": "^1.10.2"
57
+ }
58
+ }
59
+
60
+ yarn manifest:
61
+ No manifest
62
+
63
+ Lockfile:
64
+ No lockfile