Skip to content

Commit 2b5e875

Browse files
committed
fix(snowbl-capital): migrate to new vaults (USDC/ETH/BTC)
The previous single USDC vault (sSnowbl, 0xd61b…06e8) was retired after a contract migration. Return one pool per new Base ERC-4626 vault, each with its own underlying decimals and USD price: - sUSD -> USDC (6 decimals) - sETH -> WETH (18 decimals) - sBTC -> cbBTC (8 decimals)
1 parent da7d26f commit 2b5e875

1 file changed

Lines changed: 53 additions & 16 deletions

File tree

src/adaptors/snowbl-capital/index.js

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,62 @@
11
const utils = require('../utils');
22

3+
const CHAIN = 'base';
4+
5+
const vaults = [
6+
{
7+
address: '0x0e1a8354e10057092ecb7218b784c0c21710db91',
8+
symbol: 'USDC',
9+
underlyingToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
10+
decimals: 6,
11+
poolMeta: 'Snowbl Capital USD Vault',
12+
},
13+
{
14+
address: '0xffa67bd20e656f1c7873525df81728e9d26c8ee2',
15+
symbol: 'WETH',
16+
underlyingToken: '0x4200000000000000000000000000000000000006',
17+
decimals: 18,
18+
poolMeta: 'Snowbl Capital ETH Vault',
19+
},
20+
{
21+
address: '0xf423393e84ca810e1955a7806d1cd84d18099809',
22+
symbol: 'cbBTC',
23+
underlyingToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
24+
decimals: 8,
25+
poolMeta: 'Snowbl Capital BTC Vault',
26+
},
27+
];
28+
329
const apy = async (timestamp) => {
4-
const snowblVault = await utils.getERC4626Info(
5-
'0xd61bfc9ca1d0d2b03a3dd74e2ab81df8e5f606e8',
6-
'base',
7-
timestamp
30+
const { pricesByAddress } = await utils.getPrices(
31+
vaults.map((v) => v.underlyingToken),
32+
CHAIN
833
);
934

10-
const { tvl, ...rest } = snowblVault;
35+
return Promise.all(
36+
vaults.map(async (v) => {
37+
const { tvl, ...rest } = await utils.getERC4626Info(
38+
v.address,
39+
CHAIN,
40+
timestamp
41+
);
42+
const price = pricesByAddress[v.underlyingToken.toLowerCase()];
43+
if (price == null || !Number.isFinite(price)) {
44+
throw new Error(
45+
`Missing/invalid price for ${v.underlyingToken} on ${CHAIN}`
46+
);
47+
}
1148

12-
return [
13-
{
14-
...rest,
15-
project: 'snowbl-capital',
16-
symbol: 'USDC',
17-
tvlUsd: tvl / 1e6,
18-
underlyingTokens: ['0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'],
19-
poolMeta: 'Snowbl Capital USDC Vault',
20-
url: 'https://snowbl.capital',
21-
},
22-
];
49+
return {
50+
...rest,
51+
project: 'snowbl-capital',
52+
symbol: v.symbol,
53+
tvlUsd: (tvl / 10 ** v.decimals) * price,
54+
underlyingTokens: [v.underlyingToken],
55+
poolMeta: v.poolMeta,
56+
url: 'https://snowbl.capital',
57+
};
58+
})
59+
);
2360
};
2461

2562
module.exports = {

0 commit comments

Comments
 (0)