Skip to content

Commit 2903315

Browse files
authored
Add Mars Protocol v2 TVL and Launch Date (DefiLlama#11480)
1 parent 9330e0e commit 2903315

File tree

1 file changed

+4
-86
lines changed

1 file changed

+4
-86
lines changed

projects/mars/index.js

Lines changed: 4 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ const addresses = {
1212
},
1313
neutron: {
1414
redBank: 'neutron1n97wnm7q6d2hrcna3rqlnyqw2we6k0l8uqvmyqq6gsml92epdu7quugyph',
15+
creditManager: 'neutron1qdzn3l4kn7gsjna2tfpg3g3mwd6kunx4p50lfya59k02846xas6qslgs3r',
16+
params: 'neutron1x4rgd7ry23v2n49y7xdzje0743c5tgrnqrqsvwyya2h6m48tz4jqqex06x'
1517
}
1618
}
1719

@@ -22,100 +24,15 @@ async function osmosisTVL() {
2224
let balances = {};
2325
await addRedBankTvl(balances, 'osmosis');
2426
await addCreditManagerTvl(balances, 'osmosis');
25-
await osmosisSumVaultsTVL(balances);
2627
return balances;
2728
}
2829

29-
async function osmosisSumVaultsTVL(balances) {
30-
let coins = [];
31-
let vaultPagesRemaining = true;
32-
let startAfter = null;
33-
const pageLimit = 10;
34-
const osmosisDenomTransform = await getChainTransform('osmosis');
35-
36-
while (vaultPagesRemaining) {
37-
const roverVaultConfigs = await queryContract({
38-
contract: addresses.osmosis.params,
39-
chain: 'osmosis',
40-
data: { 'all_vault_configs': { limit: pageLimit, 'start_after': startAfter } }
41-
});
42-
43-
if(roverVaultConfigs.length === pageLimit) {
44-
startAfter = roverVaultConfigs[roverVaultConfigs.length - 1].vault;
45-
vaultPagesRemaining = true
46-
} else {
47-
vaultPagesRemaining = false;
48-
}
49-
50-
await osmosisAddCoinsForVaultsInfoPage(coins, roverVaultConfigs);
51-
}
52-
53-
coins.forEach(coin => {
54-
sdk.util.sumSingleBalance(balances, osmosisDenomTransform(coin.denom), coin.amount);
55-
})
56-
}
57-
58-
async function osmosisAddCoinsForVaultsInfoPage(coins, roverVaultConfigsPage) {
59-
let vaultsMetadata = roverVaultConfigsPage.map(rvi => ({ fieldsVaultInfo: rvi }));
60-
61-
// query the vault info for the vault contract itself to get the vault's
62-
// base token
63-
await Promise.all(vaultsMetadata.map(async vm => {
64-
let vaultInfo = await queryContract({
65-
contract: vm.fieldsVaultInfo.addr,
66-
chain: 'osmosis',
67-
data: { 'info': {} }
68-
});
69-
vm.vaultInfo = vaultInfo;
70-
}));
71-
72-
// get total vault shares owned by fields for each vault
73-
await Promise.all(vaultsMetadata.map(async vm => {
74-
let vaultShares = await cosmosDenomBalanceStr(
75-
'osmosis',
76-
vm.vaultInfo.vault_token,
77-
addresses.osmosis.creditManager
78-
);
79-
vm.vaultShares = vaultShares;
80-
}));
81-
82-
// convert vault shares to vault base asset
83-
await Promise.all(vaultsMetadata.map( async vm => {
84-
let query = {
85-
contract: vm.fieldsVaultInfo.addr,
86-
chain: 'osmosis',
87-
data: { 'convert_to_assets': { amount: vm.vaultShares } }
88-
};
89-
let amount = await queryContract(query);
90-
vm.baseTokenAmount = amount;
91-
}));
92-
93-
// Add coins to then be added to balances
94-
// * For gamm lp tokens compute the share of underlying assets and add those
95-
// * For other assets, add as is
96-
await Promise.all(vaultsMetadata.map( async vm => {
97-
const baseToken = vm.vaultInfo['base_token'];
98-
if (baseToken.startsWith('gamm/pool/')) {
99-
let poolId = baseToken.split('/')[2];
100-
const url = `osmosis/gamm/v1beta1/pools/${poolId}`;
101-
const query = await cosmosLCDQuery(url, 'osmosis');
102-
const pool = query.pool;
103-
pool['pool_assets'].forEach(asset => {
104-
const denom = asset.token.denom;
105-
const amount = asset.token.amount * vm.baseTokenAmount / pool['total_shares'].amount;
106-
coins.push({denom, amount});
107-
});
108-
} else {
109-
coins.push({denom: baseToken, amount: vm.baseTokenAmount});
110-
}
111-
}));
112-
}
113-
11430
// NEUTRON
11531

11632
async function neutronTVL() {
11733
let balances = {};
11834
await addRedBankTvl(balances, 'neutron');
35+
await addCreditManagerTvl(balances, 'neutron');
11936
return balances;
12037
}
12138

@@ -163,5 +80,6 @@ module.exports = {
16380
[1675774800, 'Relaunch on Osmosis'],
16481
[1690945200, 'Red Bank launch on Neutron'],
16582
[1696906800, 'Mars V2 launch on Osmosis'],
83+
[1724166000, 'Mars v2 Launch on Neutron']
16684
]
16785
};

0 commit comments

Comments
 (0)