Skip to content

Commit e81236f

Browse files
rudewaltIvan Sanin
andauthored
Update levva adapter (#15698)
Co-authored-by: Ivan Sanin <ivan.sanin@equilibrium.io>
1 parent 4e11ad5 commit e81236f

File tree

2 files changed

+35
-3
lines changed

2 files changed

+35
-3
lines changed

projects/levva/config.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ module.exports = {
2222
fromBlock: 257563019,
2323
address: "0x7a923e412B934ceC16042AA28244eE4881f9B722",
2424
}
25-
]
25+
],
26+
levvaV2Factories:[],
2627
},
2728
blast: {
2829
factories: [
@@ -33,6 +34,7 @@ module.exports = {
3334
},
3435
],
3536
contractRegistries:[],
37+
levvaV2Factories:[],
3638
},
3739
ethereum: {
3840
factories: [
@@ -52,7 +54,13 @@ module.exports = {
5254
fromBlock: 21027804,
5355
address: "0x8Dbc09C0BD6D99AF01B8254432A13E6FF1b214Bd",
5456
}
55-
]
57+
],
58+
levvaV2Factories:[
59+
{
60+
factory: "0x3e104BB4c3777e1Ca3Ab25fF5e9c801Ff9f99559",
61+
fromBlock: 23017890
62+
}
63+
],
5664
},
5765
linea: {
5866
factories: [
@@ -63,5 +71,6 @@ module.exports = {
6371
}
6472
],
6573
contractRegistries:[],
74+
levvaV2Factories:[],
6675
}
6776
};

projects/levva/index.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ module.exports = {
88
};
99

1010
Object.keys(config).forEach((chain) => {
11-
const { factories, contractRegistries } = config[chain];
11+
const { factories, contractRegistries, levvaV2Factories } = config[chain];
1212

1313
module.exports[chain] = {
1414
tvl: async (api) => {
1515
await getPoolTvl(api, factories);
1616
await getVaultTvl(api, contractRegistries);
17+
await getVaultV2Tvl(api, levvaV2Factories);
1718
},
1819
};
1920
});
@@ -83,3 +84,25 @@ async function getVaultTvl(api, contractRegistries) {
8384
// Add free amount in ERC4626
8485
await api.erc4626Sum({ calls: vaults, tokenAbi: 'asset', balanceAbi: 'getFreeAmount' });
8586
}
87+
88+
async function getVaultV2Tvl(api, levvaV2Factories){
89+
const vaults = [];
90+
// Retrieve logs from each levva v2 factory
91+
for (const { factory, fromBlock } of levvaV2Factories) {
92+
const logs = await getLogs2({
93+
api,
94+
target: factory,
95+
topic: "ContractRegistered",
96+
eventAbi: "event NewVaultDeployed(address asset, address indexed vault, address indexed withdrawalQueue, string lpName)",
97+
onlyArgs: true,
98+
fromBlock,
99+
});
100+
101+
logs.forEach((l) => {
102+
vaults.push(l.vault);
103+
});
104+
}
105+
106+
// totalAssets of every vault
107+
await api.erc4626Sum({ calls: vaults, tokenAbi: 'asset', balanceAbi: 'totalAssets' });
108+
}

0 commit comments

Comments
 (0)