@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.
- package/cjs/staking/staking.js +22 -1
- package/esm/staking/staking.js +22 -1
- package/package.json +1 -1
- package/src/staking/staking.ts +24 -2
package/cjs/staking/staking.js
CHANGED
|
@@ -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}`);
|
package/esm/staking/staking.js
CHANGED
|
@@ -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
package/src/staking/staking.ts
CHANGED
|
@@ -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
|
-
|
|
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) => {
|