Skip to content

Commit 30d3460

Browse files
authored
Add Bio Protocol Adapter (#16686)
1 parent f45b74f commit 30d3460

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

projects/bio/index.js

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
// Token and staking contract configurations per chain
2+
const config = {
3+
ethereum: [
4+
// BIO token staking (veBio)
5+
{ token: '0xcb1592591996765Ec0eFc1f92599A19767ee5ffA', staking: '0xF91a12742Aa609d41513a137d3c36b749F56f40C' },
6+
// HairDAO
7+
{ token: '0x9Ce115f0341ae5daBC8B477b74E83db2018A6f42', staking: '0xB90F1028266210a007780E6A37D2c36738830F69' },
8+
// VitaDAO
9+
{ token: '0x81f8f0bb1cB2A06649E51913A151F0E7Ef6FA321', staking: '0x3350153900C0bD8DfDbfE77B274Ac4e49d002588' },
10+
// AthenaDAO
11+
{ token: '0xA4fFdf3208F46898CE063e25c1C43056FA754739', staking: '0x67CdF8faF53fe5411940caE499799242c6dFCeCc' },
12+
// ValleyDAO
13+
{ token: '0x761A3557184cbC07b7493da0661c41177b2f97fA', staking: '0xD12E4175619607A39299388D0f8a4233f3121E79' },
14+
// CryoDAO
15+
{ token: '0xf4308b0263723b121056938c2172868E408079D0', staking: '0x0BB56479c5D9d253E22380ecFe9a2885aa126cCa' },
16+
// Cerebrum DAO
17+
{ token: '0xab814ce69E15F6B9660A3B184c0B0C97B9394A6b', staking: '0x357d6E1AE7c075984174d2a7E96f6E724ED0Ae7c' },
18+
// PsyDAO
19+
{ token: '0x2196B84EaCe74867b73fb003AfF93C11FcE1D47A', staking: '0x023c3e7cC97b5d00Bc88B47e068D324FafFB98BE' },
20+
// Quantum Biology DAO
21+
{ token: '0x3e6a1b21bd267677fa49be6425aebe2fc0f89bde', staking: '0xE41BA1329c76640A5DA6D995bfd1b56A08c52352' },
22+
],
23+
base: [
24+
// BIO token staking (veBio)
25+
{ token: '0x226A2FA2556C48245E57cd1cbA4C6c9e67077DD2', staking: '0xE1B48C0279Cd95D984f1290293116c45D049A3bD' },
26+
// HairDAO
27+
{ token: '0x3a38dde9824e18CC4C0A147824F95Bf5d608F0B3', staking: '0xEe8Ea7C133d986b8D9a2708Ef50d83D81fF3b4A1' },
28+
// VitaDAO
29+
{ token: '0x490a4B510d0Ea9f835D2dF29Eb73b4FcA5071937', staking: '0xCBD956381a12Cc84302344960C95E4AC313845db' },
30+
// AthenaDAO
31+
{ token: '0x58D75a1c4477914f9a98A8708fEaeD1DbE40b8a3', staking: '0xE01B67eacA87d742638842FcEb9E8C2f006dc29b' },
32+
// ValleyDAO
33+
{ token: '0x321725ee44cb4bfa544cf45a5a585b925d30a58c', staking: '0x6C85E430Ac13F6e88C83434b7789B969497Ca9f8' },
34+
// CryoDAO
35+
{ token: '0x1f4446fAAAed23090f324f051C3F8c5ce5aD1c36', staking: '0xe1eA71E1c1Dc3C2492A4D6B7618840d9f1EbE13F' },
36+
// Cerebrum DAO
37+
{ token: '0x3568c7a4f7545805e379c264303239781B4E9A79', staking: '0x85ecbC26F39fdCA293D76C40Fdd9feADc6a66797' },
38+
// Aubrai
39+
{ token: '0x9d56c29e820dd13b0580b185d0e0dc301d27581d', staking: '0xAfb64ab91DA6Be665d84016844e5C345399e07D0' },
40+
// PsyDAO
41+
{ token: '0x85d0e1bde4e71aede97e0f0412c6e4b3d1e59a97', staking: '0x852c11E88478aaFda31950F9E4F4Fe86d9342e53' },
42+
// BiomeAI
43+
{ token: '0x492AE2107F952b02f2554cE153841933c09d6d43', staking: '0xec637540aE2DA2b795aFe9427B840A827cF72f9a' },
44+
// EDMT
45+
{ token: '0x7dB6dFE35158bab10039648CE0e0e119d0ec21ec', staking: '0x9dFF3a11F315288cdb100364D6a81088ea9C6A7F' },
46+
// D1CKGPT
47+
{ token: '0xE183b1A4DD59Ca732211678EcA1836EE35bCE582', staking: '0xf17268f639C67512AB3857bD2113EE147eCD1C18' },
48+
// vitastem
49+
{ token: '0x5D4d258144bc954aEfC00ee6cBdA0433b1B2dcD3', staking: '0x240384103A66B87aB055BfC905306f1BA406941C' },
50+
],
51+
}
52+
53+
async function tvl(api) {
54+
const chainConfig = config[api.chain]
55+
if (!chainConfig) return {}
56+
57+
const tokens = chainConfig.map(c => c.token)
58+
const calls = chainConfig.map(c => ({ target: c.token, params: [c.staking] }))
59+
60+
const balances = await api.multiCall({ abi: 'erc20:balanceOf', calls })
61+
api.addTokens(tokens, balances)
62+
}
63+
64+
module.exports = {
65+
methodology: 'Calculates TVL by summing token balances in staking/vesting contracts across Ethereum and Base chains',
66+
ethereum: {
67+
tvl: () => ({}),
68+
staking: tvl,
69+
},
70+
base: {
71+
tvl: () => ({}),
72+
staking: tvl,
73+
},
74+
}

0 commit comments

Comments
 (0)