@defisaver/positions-sdk 0.0.158 → 0.0.159

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.
@@ -86,13 +86,32 @@ const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, vo
86
86
  .toString();
87
87
  });
88
88
  exports.getDsrApy = getDsrApy;
89
+ const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
90
+ console.log('getSuperOETHApy');
91
+ const res = yield fetch('https://origin.squids.live/origin-squid/graphql', {
92
+ method: 'POST',
93
+ headers: {
94
+ 'Content-Type': 'application/json',
95
+ },
96
+ body: JSON.stringify({
97
+ query: '\n query OTokenApy($chainId: Int!, $token: String!) {\n oTokenApies(\n limit: 1\n orderBy: timestamp_DESC\n where: {chainId_eq: $chainId, otoken_containsInsensitive: $token}\n ) {\n apy7DayAvg\n apy14DayAvg\n apy30DayAvg\n apr\n apy\n }\n}\n ',
98
+ variables: {
99
+ token: '0xdbfefd2e8460a6ee4955a68582f85708baea60a3',
100
+ chainId: 8453,
101
+ },
102
+ }),
103
+ });
104
+ const data = yield res.json();
105
+ return data.data.oTokenApies[0].apy.toString();
106
+ });
89
107
  const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function* () {
90
108
  const res = yield fetch(`https://app.defisaver.com/api/staking/apy?asset=${asset}`);
91
109
  const data = yield res.json();
92
110
  return data.apy;
93
111
  });
94
- exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'];
112
+ exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
95
113
  const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
114
+ console.log('getStakingApy', asset, blockNumber, fromBlock);
96
115
  try {
97
116
  if (asset === 'stETH' || asset === 'wstETH')
98
117
  return (0, exports.getStETHApr)(web3, fromBlock, blockNumber);
@@ -116,6 +135,8 @@ const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefine
116
135
  return getApyFromDfsApi('rsETH');
117
136
  if (asset === 'pufETH')
118
137
  return getApyFromDfsApi('pufETH');
138
+ if (asset === 'wsuperOETHb')
139
+ return getSuperOETHApy();
119
140
  }
120
141
  catch (e) {
121
142
  console.error(`Failed to fetch APY for ${asset}`);
@@ -76,13 +76,32 @@ export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, voi
76
76
  .mul(100)
77
77
  .toString();
78
78
  });
79
+ const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
80
+ console.log('getSuperOETHApy');
81
+ const res = yield fetch('https://origin.squids.live/origin-squid/graphql', {
82
+ method: 'POST',
83
+ headers: {
84
+ 'Content-Type': 'application/json',
85
+ },
86
+ body: JSON.stringify({
87
+ query: '\n query OTokenApy($chainId: Int!, $token: String!) {\n oTokenApies(\n limit: 1\n orderBy: timestamp_DESC\n where: {chainId_eq: $chainId, otoken_containsInsensitive: $token}\n ) {\n apy7DayAvg\n apy14DayAvg\n apy30DayAvg\n apr\n apy\n }\n}\n ',
88
+ variables: {
89
+ token: '0xdbfefd2e8460a6ee4955a68582f85708baea60a3',
90
+ chainId: 8453,
91
+ },
92
+ }),
93
+ });
94
+ const data = yield res.json();
95
+ return data.data.oTokenApies[0].apy.toString();
96
+ });
79
97
  const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function* () {
80
98
  const res = yield fetch(`https://app.defisaver.com/api/staking/apy?asset=${asset}`);
81
99
  const data = yield res.json();
82
100
  return data.apy;
83
101
  });
84
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'];
102
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
85
103
  export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
104
+ console.log('getStakingApy', asset, blockNumber, fromBlock);
86
105
  try {
87
106
  if (asset === 'stETH' || asset === 'wstETH')
88
107
  return getStETHApr(web3, fromBlock, blockNumber);
@@ -106,6 +125,8 @@ export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = u
106
125
  return getApyFromDfsApi('rsETH');
107
126
  if (asset === 'pufETH')
108
127
  return getApyFromDfsApi('pufETH');
128
+ if (asset === 'wsuperOETHb')
129
+ return getSuperOETHApy();
109
130
  }
110
131
  catch (e) {
111
132
  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.158",
3
+ "version": "0.0.159",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -77,15 +77,36 @@ export const getDsrApy = async (web3: Web3, blockNumber: 'latest' | number = 'la
77
77
  .toString();
78
78
  };
79
79
 
80
+ const getSuperOETHApy = async () => {
81
+ console.log('getSuperOETHApy');
82
+ const res = await fetch('https://origin.squids.live/origin-squid/graphql', {
83
+ method: 'POST',
84
+ headers: {
85
+ 'Content-Type': 'application/json',
86
+ },
87
+ body: JSON.stringify({
88
+ query: '\n query OTokenApy($chainId: Int!, $token: String!) {\n oTokenApies(\n limit: 1\n orderBy: timestamp_DESC\n where: {chainId_eq: $chainId, otoken_containsInsensitive: $token}\n ) {\n apy7DayAvg\n apy14DayAvg\n apy30DayAvg\n apr\n apy\n }\n}\n ',
89
+ variables: {
90
+ token: '0xdbfefd2e8460a6ee4955a68582f85708baea60a3',
91
+ chainId: 8453,
92
+ },
93
+ }),
94
+ });
95
+
96
+ const data = await res.json();
97
+ return data.data.oTokenApies[0].apy.toString();
98
+ };
99
+
80
100
  const getApyFromDfsApi = async (asset: string) => {
81
101
  const res = await fetch(`https://app.defisaver.com/api/staking/apy?asset=${asset}`);
82
102
  const data = await res.json();
83
103
  return data.apy;
84
104
  };
85
105
 
86
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'];
106
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
87
107
 
88
108
  export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' | number = 'latest', fromBlock: number | undefined = undefined) => {
109
+ console.log('getStakingApy', asset, blockNumber, fromBlock);
89
110
  try {
90
111
  if (asset === 'stETH' || asset === 'wstETH') return getStETHApr(web3, fromBlock, blockNumber);
91
112
  if (asset === 'cbETH') return getCbETHApr(web3, blockNumber);
@@ -98,6 +119,7 @@ export const getStakingApy = (asset: string, web3: Web3, blockNumber: 'latest' |
98
119
  if (asset === 'ETHx') return getApyFromDfsApi('ETHx');
99
120
  if (asset === 'rsETH' || asset === 'wrsETH') return getApyFromDfsApi('rsETH');
100
121
  if (asset === 'pufETH') return getApyFromDfsApi('pufETH');
122
+ if (asset === 'wsuperOETHb') return getSuperOETHApy();
101
123
  } catch (e) {
102
124
  console.error(`Failed to fetch APY for ${asset}`);
103
125
  return '0';
@@ -117,7 +139,7 @@ export const calculateInterestEarned = (principal: string, interest: string, typ
117
139
  return (+principal * (1 + (+interest / 100 * interval))) - +principal;
118
140
  }
119
141
 
120
- return (+principal * (((1 + (+interest / 100) / BLOCKS_IN_A_YEAR)) ** (BLOCKS_IN_A_YEAR * interval))) - +principal; // eslint-disable-line
142
+ return (+principal * (((1 + (+interest / 100) / BLOCKS_IN_A_YEAR)) ** (BLOCKS_IN_A_YEAR * interval))) - +principal; // eslint-disable-line
121
143
  };
122
144
 
123
145
  export const calculateNetApy = (usedAssets: MMUsedAssets, assetsData: MMAssetsData, isMorpho = false) => {