Skip to content

Commit aeb7969

Browse files
authored
Added Optimism, zkEVM pools to Idle adapter (#1065)
* NEW: added polygon pools * FIX: new line * FIX: Idle endpoint Authentication * NEW: idle optimism, zkevm pools * FIX: idle removed folder * NEW: idle dashboard url --------- Co-authored-by: Samster91 <samster91>
1 parent 61a746b commit aeb7969

File tree

1 file changed

+35
-48
lines changed

1 file changed

+35
-48
lines changed

src/adaptors/idle/index.js

Lines changed: 35 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,56 @@
11
const utils = require('../utils');
22
const superagent = require('superagent');
33

4-
const AUTH_TOKEN_ENCODED =
5-
'ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SmpiR2xsYm5SSlpDSTZJa0Z3Y0RZaUxDSnBZWFFpT2pFMk56QXlNemMxTWpkOS5rbnNtekVOSm40Yk5Ea0ZCM3h2eWZyaDBwVlFLTHY0NW9JanJQNHdRTU5N';
6-
7-
const mainnetPoolsUrl = 'https://api.idle.finance/pools';
8-
// const polygonPoolsUrl = 'https://api-polygon.idle.finance/pools';
9-
104
const chains = {
11-
eth: 'ethereum',
12-
// matic: 'polygon',
5+
ethereum: 'https://api.idle.finance/pools',
6+
polygon: 'https://api-polygon.idle.finance/pools',
7+
optimism: 'https://api-optimism.idle.finance/pools',
8+
polygon_zkevm: 'https://api-zkevm.idle.finance/pools',
139
};
1410

11+
const AUTH_TOKEN_ENCODED = 'ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SmpiR2xsYm5SSlpDSTZJa0Z3Y0RZaUxDSnBZWFFpT2pFMk56QXlNemMxTWpkOS5rbnNtekVOSm40Yk5Ea0ZCM3h2eWZyaDBwVlFLTHY0NW9JanJQNHdRTU5N';
12+
1513
async function getDataWithAuth(url, token) {
1614
const data = await superagent
1715
.get(url)
1816
.set('Authorization', `Bearer ${token}`);
1917
return data?.body;
2018
}
2119

22-
async function apy() {
20+
const getApy = async () => {
2321
const AUTH_TOKEN_DECODED = atob(AUTH_TOKEN_ENCODED);
24-
const mainnetPoolsResponse = await getDataWithAuth(
25-
mainnetPoolsUrl,
26-
AUTH_TOKEN_DECODED
22+
const data = await Promise.all(
23+
Object.entries(chains).map(async (chain) => {
24+
const data = await getDataWithAuth(chain[1], AUTH_TOKEN_DECODED);
25+
return data.map((v) => {
26+
let protocolName = v.protocolName;
27+
if (v.borrowerName){
28+
protocolName += ` ${v.borrowerName}`
29+
}
30+
return {
31+
pool: v.address,
32+
apyBase: Number(v.apr),
33+
symbol: v.tokenName,
34+
poolMeta: v.poolName.includes('Best')
35+
? v.poolName.split(' ').slice(1).join(' ')
36+
: `${protocolName} ${v.strategy}`,
37+
tvlUsd: Number(v.tvl),
38+
project: 'idle',
39+
chain: utils.formatChain(chain[0]),
40+
underlyingTokens: [v.underlyingAddress],
41+
}
42+
});
43+
})
2744
);
2845

29-
// console.log('mainnetPoolsResponse', mainnetPoolsResponse)
30-
// const polygonPoolsResponse = await utils.getData(polygonPoolsUrl);
31-
32-
const poolsResponse = {
33-
// matic: polygonPoolsResponse,
34-
eth: mainnetPoolsResponse,
35-
};
36-
37-
let allVaults = [];
38-
39-
for (let chain of Object.keys(chains)) {
40-
const chainPools = Object.values(poolsResponse[chain]);
41-
42-
const pools = chainPools.map((v) => ({
43-
pool: v.address,
44-
apyBase: Number(v.apr),
45-
symbol: v.tokenName,
46-
poolMeta: v.poolName.includes('Best')
47-
? v.poolName.split(' ').slice(1).join(' ')
48-
: v.strategy,
49-
tvlUsd: Number(v.tvl),
50-
project: 'idle',
51-
chain: utils.formatChain(chains[chain]),
52-
underlyingTokens: [v.underlyingAddress],
53-
}));
54-
55-
allVaults = [...allVaults, ...pools];
56-
}
57-
58-
return allVaults;
59-
}
60-
61-
const main = async () => {
62-
return await apy();
46+
return (
47+
data
48+
.flat()
49+
);
6350
};
6451

6552
module.exports = {
66-
apy: main,
6753
timetravel: false,
68-
url: 'https://app.idle.finance/#/best',
54+
apy: getApy,
55+
url: 'https://app.idle.finance/'
6956
};

0 commit comments

Comments
 (0)