From 8d5b70fab393b97f2f67a0839d9811d27530432a Mon Sep 17 00:00:00 2001 From: Mantas S Date: Thu, 27 Jun 2024 14:21:48 +0300 Subject: [PATCH] setup and camelot --- .env.dev | 1 + src/app.config.ts | 1 + src/constants/contracts.json | 3 +- src/factory/providers/xai/camelot/index.ts | 41 ++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/factory/providers/xai/camelot/index.ts diff --git a/.env.dev b/.env.dev index 731691e..8917eec 100644 --- a/.env.dev +++ b/.env.dev @@ -22,6 +22,7 @@ CORE_NODE_URL=https://core.public.infstones.com BASE_NODE_URL=https://base.llamarpc.com LINEA_NODE_URL=https://rpc.linea.build BTTC_NODE_URL=https://rpc.bittorrentchain.io +XAI_NODE_URL= ##======================== LOGSTASH ======================== LOGSTASH_PORT= LOGSTASH_HOST= diff --git a/src/app.config.ts b/src/app.config.ts index 95ddd27..d12d8c8 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -67,5 +67,6 @@ nodeUrls['LINEA_NODE_URL'] = process.env['LINEA_NODE_URL']; nodeUrls['WAX_NODE_URL'] = process.env['WAX_NODE_URL']; nodeUrls['APTOS_NODE_URL'] = process.env['APTOS_NODE_URL']; nodeUrls['BTTC_NODE_URL'] = process.env['BTTC_NODE_URL']; +nodeUrls['XAI_NODE_URL'] = process.env['XAI_NODE_URL']; export { config, nodeUrls }; diff --git a/src/constants/contracts.json b/src/constants/contracts.json index 7a08f16..fb3eccc 100644 --- a/src/constants/contracts.json +++ b/src/constants/contracts.json @@ -16,7 +16,8 @@ "base": "0x4200000000000000000000000000000000000006", "core": "0x40375C92d9FAf44d2f9db9Bd9ba41a3317a2404f", "linea": "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f", - "bttc": "0x0000000000000000000000000000000000001010" + "bttc": "0x0000000000000000000000000000000000001010", + "xai": "0x3fb787101dc6be47cfe18aeee15404dcc842e6af" }, "BULK_BALANCE_ADDRESSES": { "ethereum": "0xb173393e08496209ad1cd9d57c769de76bdcea5a", diff --git a/src/factory/providers/xai/camelot/index.ts b/src/factory/providers/xai/camelot/index.ts new file mode 100644 index 0000000..6e5869d --- /dev/null +++ b/src/factory/providers/xai/camelot/index.ts @@ -0,0 +1,41 @@ +import formatter from '../../../../util/formatter'; +import uniswapV2 from '../../../../util/calculators/uniswapV2'; +import uniswapV3 from '../../../../util/calculators/uniswapV3chain'; +import { ITvlParams, ITvlReturn } from '../../../../interfaces/ITvl'; + +const START_BLOCK = 2398999; +const V2_FACTORY_ADDRESS = '0x18E621B64d7808c3C47bccbbD7485d23F257D26f'; +const V3_FACTORY_ADDRESS = '0xD8676fBdfa5b56BB2298D452c9768f51e80e34AE'; + +async function tvl(params: ITvlParams): Promise> { + const { block, chain, provider, web3 } = params; + if (block < START_BLOCK) { + return { balances: {} }; + } + + let balances = {}; + + const v2 = await uniswapV2.getTvl( + V2_FACTORY_ADDRESS, + block, + chain, + provider, + web3, + ); + + balances = await uniswapV3.getTvl( + V3_FACTORY_ADDRESS, + START_BLOCK, + block, + chain, + provider, + web3, + true, + ); + + balances = formatter.sum([v2.balances, balances]); + + return { balances }; +} + +export { tvl };