Skip to content

Commit

Permalink
add new file
Browse files Browse the repository at this point in the history
  • Loading branch information
realdealshaman committed Sep 14, 2024
1 parent 3d8c432 commit 2de20e9
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 1 deletion.
2 changes: 1 addition & 1 deletion projects/zomb2/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const ADDRESSES = require('../helper/coreAssets.json')
const { zombiTvl } = require("../zombi/zombi");
const { zombiTvl } = require("../zomb2/zombi");

const token = "0xA87bcE04d4a396DF40cC1be3a21CF04592C08290";
const share = "0x9E594379bC7e2034fCc8607Fb8C57F149Fb68284";
Expand Down
92 changes: 92 additions & 0 deletions projects/zomb2/zombi.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
const { stakingUnknownPricedLP } = require("../helper/staking");
const sdk = require("@defillama/sdk");
const token0Abi = 'address:token0'
const token1Abi = 'address:token1'
const { default: BigNumber } = require("bignumber.js");

function zombiTvl(token, share, rewardPool, rewardPool2, masonry, pool2LPs, listedTokenGeneris, chain = "ethereum", transform = undefined, tokensOnCoingecko = true, lpWithShare = undefined) {
if (transform === undefined) transform = addr => `${chain}:${addr}`;

const pool2 = async (timestamp, block, chainBlocks) => {
let balances = {};
token = token.toLowerCase();
share = share.toLowerCase();
block = chainBlocks[chain];
const pool2Balances = (await sdk.api.abi.multiCall({
calls: pool2LPs.map(p => ({
target: p,
params: rewardPool
})),
abi: "erc20:balanceOf",
block,
chain
})).output;
const supplies = (await sdk.api.abi.multiCall({
calls: pool2LPs.map(p => ({
target: p
})),
abi: "erc20:totalSupply",
block,
chain
})).output;
const pool2Token0 = (await sdk.api.abi.multiCall({
calls: pool2LPs.map(p => ({
target: p
})),
abi: token0Abi,
block,
chain
})).output;
const pool2Token1 = (await sdk.api.abi.multiCall({
calls: pool2LPs.map(p => ({
target: p
})),
abi: token1Abi,
block,
chain
})).output;

for (let i = 0; i < pool2LPs.length; i++) {
let listedToken;
const token0 = pool2Token0[i].output.toLowerCase();
const token1 = pool2Token1[i].output.toLowerCase();
if (token0 === token || token0 === share) {
listedToken = token1;
}
else if (token1 === token || token1 === share) {
listedToken = token0;
}
const listedTokenBalance = (await sdk.api.erc20.balanceOf({
target: listedToken,
owner: pool2LPs[i],
block,
chain
})).output;
const balance = BigNumber(pool2Balances[i].output).times(listedTokenBalance).div(supplies[i].output).times(2).toFixed(0);
sdk.util.sumSingleBalance(balances, transform(listedToken), balance);
}
// get tvl generis pool
for (let i = 0; i < listedTokenGeneris.length; i++) {
const balance = (await sdk.api.erc20.balanceOf({
target: listedTokenGeneris[i],
owner: rewardPool2,
block,
chain
})).output;
sdk.util.sumSingleBalance(balances, transform(listedTokenGeneris[i]), balance);
}
return balances
}

return {
[chain]: {
tvl: async () => ({}),
staking: stakingUnknownPricedLP(masonry, share, chain, lpWithShare),
pool2
}
}
}

module.exports = {
zombiTvl
}

0 comments on commit 2de20e9

Please sign in to comment.