Skip to content

Commit

Permalink
taquito was updated and PRs was integrated
Browse files Browse the repository at this point in the history
  • Loading branch information
Sonmezturk committed Mar 6, 2024
1 parent db3321e commit e6f478d
Show file tree
Hide file tree
Showing 5 changed files with 127 additions and 23 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"@project-serum/anchor": "^0.18.2",
"@solana/web3.js": "^1.30.2",
"@supercharge/promise-pool": "^2.4.0",
"@taquito/taquito": "^14.1.0",
"@taquito/taquito": "^14.2.0",
"aptos": "^1.21.0",
"bignumber.js": "^9.1.0",
"dotenv": "^16.0.3",
Expand Down
25 changes: 25 additions & 0 deletions src/factory/providers/bsc/squadswap/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { ITvlParams, ITvlReturn } from '../../../../interfaces/ITvl';
import uniswapV2 from '../../../../util/calculators/uniswapV2';
import formatter from '../../../../util/formatter';

const START_BLOCK = 34130751;
const FACTORY_ADDRESS = '0x1D9F43a6195054313ac1aE423B1f810f593b6ac1';

async function tvl(params: ITvlParams): Promise<Partial<ITvlReturn>> {
const { block, chain, provider, web3 } = params;
if (block < START_BLOCK) {
return {};
}

const { balances, poolBalances } = await uniswapV2.getTvl(
FACTORY_ADDRESS,
block,
chain,
provider,
web3,
);
formatter.convertBalancesToFixed(balances);
return { balances, poolBalances };
}

export { tvl };
6 changes: 3 additions & 3 deletions src/factory/providers/tezos/crunchy/data.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"address": "KT1BHCumksALJQJ8q8to2EPigPW6qpyTr7Ng",
"name": "Crunchy Network Token",
"symbol": "CRUNCH",
"address": "KT1914CUZ7EegAFPbfgQMRkw8Uz5mYkEz2ui",
"name": "Crunchy.Network CRNCHY Token",
"symbol": "CRNCHY",
"decimals": 8,
"logo": "https://assets.coingecko.com/coins/images/19463/small/crunch.jpeg"
}
115 changes: 97 additions & 18 deletions src/factory/providers/tezos/crunchy/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,33 @@ import formatter from '../../../../util/formatter';
import basicUtil from '../../../../util/basicUtil';
import util from '../../../../util/blockchainUtil';

const FARM_ADDRESS = 'KT1KnuE87q1EKjPozJ5sRAjQA24FPsP57CE3';
const DEEP_FREEZERS_ADDRESS = 'KT1LjcQ4h5hCy9RcveFz9Pq8LtmF6oun7vNd';

const FARM_ADDRESSES = [
'KT1KnuE87q1EKjPozJ5sRAjQA24FPsP57CE3',
'KT1L1WZgdsfjEyP5T4ZCYVvN5vgzrNbu18kX',
];

const WTZ_ADDRESSES = [
'KT1BB3oNr5vUSw1CuPNb2zpYEVp376XrXWaJ',
'KT1H25LW5k4HQGm9hmNXzaxf3nqjsAEhQPah',
'KT1LpGZnT6dj6STSxHXmvSPqx39ZdPXAMpFz',
'KT1NBgqqJacbdoeNAg9MvrgPT9h6q6AGWvFA',
'KT1NGTDBKDPMrAYEufb72CLwuQJ7jU7jL6jD',
];

async function getTezosBalance(address, block, web3) {
try {
const tezosBalance = await web3.eth.getBalance(address, block);

return {
token: 'xtz',
balance: BigNumber(tezosBalance),
};
} catch {}
return null;
}

let pools = {};

async function tvl(params: ITvlParams): Promise<Partial<ITvlReturn>> {
Expand All @@ -17,36 +43,89 @@ async function tvl(params: ITvlParams): Promise<Partial<ITvlReturn>> {
pools = await basicUtil.readFromCache('cache/pools.json', chain, provider);
} catch {}

const contract = new web3.eth.Contract(null, FARM_ADDRESS);
await contract.init();
const farmLength = await contract.methods.nextFarmId().call(null, block);
const farms = await contract.methods.getBigmap('farms').call(null, block);
const balanceResults = [];
let globalIndex = 0;

console.log(`farm length: ${farmLength}`);
for (let i = 0; i < FARM_ADDRESSES.length; i++) {
const contract = new web3.eth.Contract(null, FARM_ADDRESSES[i]);
await contract.init();

const balanceResults = [];
const farms = await contract.methods.getBigmap('farms').call(null, block);
const totalFarms = farms.map((farm) => farm.key);
const farmLength = totalFarms.length;

for (let i = 0; i < farmLength; i++) {
console.log(`Farm length for address ${FARM_ADDRESSES[i]}: ${farmLength}`);
try {
if (!pools[i]) {
for (let j = 0; j < farmLength; j++) {
const farmIndex = j + i * globalIndex;

if (!pools[farmIndex]) {
let tokenId;
try {
const tokenType = Object.keys(farms[j].value.poolToken.tokenType);
if (tokenType[0] == 'fa2') {
tokenId = farms[j].value.poolToken.tokenId;
}
} catch {}
pools[farmIndex] = tokenId
? `${farms[j].value.poolToken.address}_${tokenId}`
: farms[j].value.poolToken.address;
}

balanceResults.push({
token: pools[farmIndex],
balance: BigNumber(farms[j].value.poolBalance),
});
}
globalIndex += farmLength;
} catch {}
}

// Fetch WTZ Liquid Staking
for (let i = 0; i < WTZ_ADDRESSES.length; i++) {
const wtzIndex = i + globalIndex;
pools[wtzIndex] = WTZ_ADDRESSES[i];
const wtz = await getTezosBalance(WTZ_ADDRESSES[i], block, web3);
balanceResults.push(wtz);
}
globalIndex += WTZ_ADDRESSES.length;

// Fetch Deep Freezers TVL
const contract = new web3.eth.Contract(null, DEEP_FREEZERS_ADDRESS);
await contract.init();

const locks = await contract.methods.getBigmap('locks').call(null, block);
const totalLocks = locks.map((lock) => lock.key);
const locksLength = totalLocks.length;

console.log(
`Lock length for address $DEEP_FREEZERS_ADDRESS}: ${locksLength}`,
);
try {
for (let i = 0; i < locksLength; i++) {
const lockIndex = i + globalIndex;

if (!pools[lockIndex]) {
let tokenId;
try {
const tokenType = Object.keys(farms[i].value.poolToken.tokenType);
const tokenType = Object.keys(locks[i].value.token.tokenType);
if (tokenType[0] == 'fa2') {
tokenId = farms[i].value.poolToken.tokenId;
tokenId = locks[i].value.token.tokenId;
}
} catch {}
pools[i] = tokenId
? `${farms[i].value.poolToken.address}_${tokenId}`
: farms[i].value.poolToken.address;
pools[lockIndex] = tokenId
? `${locks[i].value.token.address}_${tokenId}`
: locks[i].value.token.address;
}

balanceResults.push({
token: pools[i],
balance: BigNumber(farms[i].value.poolBalance),
token: pools[lockIndex],
balance: BigNumber(locks[i].value.amountLocked),
});
} catch {}
}
}
globalIndex += Number(locksLength);
} catch {}

await basicUtil.saveIntoCache(pools, 'cache/pools.json', chain, provider);

const tokenBalances = {};
Expand Down

0 comments on commit e6f478d

Please sign in to comment.