defi-state-querier 0.5.27__py3-none-any.whl → 0.5.28__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/constants/chain_constant.py +1 -8
  3. defi_services/constants/entities/dex_info_constant.py +2 -2
  4. defi_services/constants/entities/dex_services.py +1 -13
  5. defi_services/constants/entities/lending_constant.py +5 -11
  6. defi_services/constants/entities/lending_services.py +4 -31
  7. defi_services/constants/entities/vault_constant.py +2 -2
  8. defi_services/constants/entities/vault_services.py +1 -7
  9. defi_services/constants/network_constants.py +361 -20
  10. defi_services/constants/token_constant.py +1 -3
  11. defi_services/jobs/processors/cosmos_state_processor.py +2 -3
  12. defi_services/jobs/processors/ton_state_processor.py +4 -5
  13. defi_services/jobs/queriers/call_state_querier.py +0 -2
  14. defi_services/jobs/queriers/state_querier.py +0 -3
  15. defi_services/services/dex/dex_info/uniswap_info.py +1 -29
  16. defi_services/services/dex/uniswap_v3_service.py +2 -6
  17. defi_services/services/lending/aave_v2_services.py +29 -44
  18. defi_services/services/lending/aave_v3_services.py +20 -41
  19. defi_services/services/lending/compound_v3_services.py +5 -9
  20. defi_services/services/lending/granary_services.py +4 -6
  21. defi_services/services/lending/justlend_service.py +3 -4
  22. defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
  23. defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +6 -96
  24. defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +140 -1
  25. defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +5 -180
  26. defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +5 -35
  27. defi_services/services/lending/morpho_aave_v2_services.py +3 -3
  28. defi_services/services/lending/morpho_aave_v3_services.py +2 -2
  29. defi_services/services/lending/radiant_v2_services.py +10 -52
  30. defi_services/services/lending/trava_services.py +2 -2
  31. defi_services/services/lending/uwu_services.py +3 -3
  32. defi_services/services/lending/valas_services.py +2 -2
  33. defi_services/services/lending/venus_services.py +3 -9
  34. defi_services/services/multicall/multicall_v2.py +317 -0
  35. {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/METADATA +3 -2
  36. {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/RECORD +46 -83
  37. {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/WHEEL +1 -1
  38. defi_services/abis/lending/ionic/__init__.py +0 -0
  39. defi_services/abis/lending/ionic/ionic_ctoken_abi.py +0 -1108
  40. defi_services/abis/lending/moonwell/__init__.py +0 -0
  41. defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +0 -1500
  42. defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +0 -1431
  43. defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +0 -817
  44. defi_services/abis/token/trc20_abi.py +0 -304
  45. defi_services/abis/vault/tcv_abi.py +0 -1523
  46. defi_services/jobs/tcv.py +0 -144
  47. defi_services/services/lending/ionic_service.py +0 -167
  48. defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +0 -10
  49. defi_services/services/lending/lending_info/base/__init__.py +0 -0
  50. defi_services/services/lending/lending_info/base/aave_v3_base.py +0 -61
  51. defi_services/services/lending/lending_info/base/compound_v3_base.py +0 -116
  52. defi_services/services/lending/lending_info/base/granary_base.py +0 -62
  53. defi_services/services/lending/lending_info/base/ionic_base.py +0 -173
  54. defi_services/services/lending/lending_info/base/moonwell_base.py +0 -89
  55. defi_services/services/lending/lending_info/base/radiant_v2_base.py +0 -57
  56. defi_services/services/lending/lending_info/base/sonne_base.py +0 -53
  57. defi_services/services/lending/lending_info/base/zerolend_base.py +0 -109
  58. defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +0 -68
  59. defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +0 -150
  60. defi_services/services/lending/lending_info/ethereum/radiant_eth.py +0 -69
  61. defi_services/services/lending/lending_info/ethereum/venus_eth.py +0 -10
  62. defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +0 -96
  63. defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +0 -116
  64. defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +0 -9
  65. defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
  66. defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +0 -47
  67. defi_services/services/lending/lending_info/zksync/venus_zksync.py +0 -10
  68. defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +0 -138
  69. defi_services/services/lending/moonwell_service.py +0 -120
  70. defi_services/services/lending/sonne_service.py +0 -64
  71. defi_services/services/lending/zerolend_services.py +0 -36
  72. defi_services/services/vault/tcv_vault_services.py +0 -108
  73. defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
  74. defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +0 -58
  75. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/__init__.py +0 -0
  76. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/aave_v2_event_abi.py +0 -0
  77. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/aave_v2_incentives_abi.py +0 -0
  78. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/lending_pool_abi.py +0 -0
  79. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/oracle_abi.py +0 -0
  80. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/staked_incentives_abi.py +0 -0
  81. /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/uwu_incentives_abi.py +0 -0
  82. {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info/licenses}/LICENSE +0 -0
  83. {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/top_level.txt +0 -0
@@ -26,9 +26,6 @@ class StateQuerier:
26
26
  def get_client_querier(self):
27
27
  return self.client_querier
28
28
 
29
- def get_provider(self):
30
- return self.provider_uri
31
-
32
29
  @staticmethod
33
30
  def get_function_info(address: str, abi: list, fn_name: str, fn_paras: list = None, block_number: int = 'latest'):
34
31
  if fn_paras is None:
@@ -7,6 +7,7 @@ UNISWAP_ETH_INFO = {
7
7
  'factory_address': '0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f',
8
8
  'factory_abi': UNISWAP_FACTORY_ABI,
9
9
  'forked': 'uniswap-v2'
10
+
10
11
  }
11
12
 
12
13
  UNISWAP_V3_ETH_INFO = {
@@ -17,34 +18,5 @@ UNISWAP_V3_ETH_INFO = {
17
18
  'NFT_manager_abi': UNISWAP_V3_NFT_TOKEN_MANGAGER_ABI,
18
19
  'pool_abi': UNISWAP_V3_POOL_ABI,
19
20
  'forked': 'uniswap-v3'
20
- }
21
-
22
- UNISWAP_V3_ARBITRUM_INFO = {
23
- 'factory_address': '0x1f98431c8ad98523631ae4a59f267346ea31f984',
24
- 'factory_abi': UNISWAP_V3_FACTORY_ABI,
25
- 'staker_address': '0xe34139463ba50bd61336e0c446bd8c0867c6fe65',
26
- 'NFT_manager_address': '0xc36442b4a4522e871399cd717abdd847ab11fe88',
27
- 'NFT_manager_abi': UNISWAP_V3_NFT_TOKEN_MANGAGER_ABI,
28
- 'pool_abi': UNISWAP_V3_POOL_ABI,
29
- 'forked': 'uniswap-v3'
30
- }
31
-
32
- UNISWAP_V3_BASE_INFO = {
33
- 'factory_address': '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
34
- 'factory_abi': UNISWAP_V3_FACTORY_ABI,
35
- 'staker_address': '0x42bE4D6527829FeFA1493e1fb9F3676d2425C3C1',
36
- 'NFT_manager_address': '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',
37
- 'NFT_manager_abi': UNISWAP_V3_NFT_TOKEN_MANGAGER_ABI,
38
- 'pool_abi': UNISWAP_V3_POOL_ABI,
39
- 'forked': 'uniswap-v3'
40
- }
41
21
 
42
- UNISWAP_V3_ZKSYNC_INFO = {
43
- 'factory_address': '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',
44
- 'factory_abi': UNISWAP_V3_FACTORY_ABI,
45
- 'staker_address': '0xf84268FA8EB857c2e4298720C1C617178F5e78e1',
46
- 'NFT_manager_address': '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',
47
- 'NFT_manager_abi': UNISWAP_V3_NFT_TOKEN_MANGAGER_ABI,
48
- 'pool_abi': UNISWAP_V3_POOL_ABI,
49
- 'forked': 'uniswap-v3'
50
22
  }
@@ -5,8 +5,7 @@ from defi_services.abis.token.erc20_abi import ERC20_ABI
5
5
  from defi_services.constants.chain_constant import Chain
6
6
  from defi_services.constants.entities.dex_constant import Dex
7
7
  from defi_services.jobs.queriers.state_querier import StateQuerier
8
- from defi_services.services.dex.dex_info.uniswap_info import UNISWAP_V3_ETH_INFO, UNISWAP_V3_ARBITRUM_INFO, \
9
- UNISWAP_V3_ZKSYNC_INFO, UNISWAP_V3_BASE_INFO
8
+ from defi_services.services.dex.dex_info.uniswap_info import UNISWAP_V3_ETH_INFO
10
9
  from defi_services.services.dex_protocol_services import DexProtocolServices
11
10
  from defi_services.utils.get_fees import get_fees
12
11
  from defi_services.utils.sqrt_price_math import get_token_amount_of_user, get_token_amount_of_pool
@@ -16,10 +15,7 @@ logger = logging.getLogger("UniSwap V3 State Service")
16
15
 
17
16
  class UniswapV3Info:
18
17
  mapping = {
19
- Chain.ethereum: UNISWAP_V3_ETH_INFO,
20
- Chain.arbitrum: UNISWAP_V3_ARBITRUM_INFO,
21
- Chain.zksync: UNISWAP_V3_ZKSYNC_INFO,
22
- Chain.base: UNISWAP_V3_BASE_INFO
18
+ Chain.ethereum: UNISWAP_V3_ETH_INFO
23
19
  }
24
20
 
25
21
 
@@ -3,14 +3,13 @@ import time
3
3
 
4
4
  from web3 import Web3
5
5
 
6
- from defi_services.abis.lending.aave_v2_and_forks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
- from defi_services.abis.lending.aave_v2_and_forks.lending_pool_abi import LENDING_POOL_ABI
8
- from defi_services.abis.lending.aave_v2_and_forks.oracle_abi import ORACLE_ABI
6
+ from defi_services.abis.lending.aave_v2_and_forlks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
+ from defi_services.abis.lending.aave_v2_and_forlks.lending_pool_abi import LENDING_POOL_ABI
8
+ from defi_services.abis.lending.aave_v2_and_forlks.oracle_abi import ORACLE_ABI
9
9
  from defi_services.abis.token.erc20_abi import ERC20_ABI
10
10
  from defi_services.constants.chain_constant import Chain
11
11
  from defi_services.constants.db_constant import DBConst
12
12
  from defi_services.constants.entities.lending_constant import Lending
13
- from defi_services.constants.network_constants import NATIVE_TOKEN
14
13
  from defi_services.constants.time_constant import TimeConstants
15
14
  from defi_services.jobs.queriers.state_querier import StateQuerier
16
15
  from defi_services.services.lending.lending_info.avalanche.aave_v2_avalanche import AAVE_V2_AVALANCHE
@@ -84,20 +83,19 @@ class AaveV2StateService(ProtocolServices):
84
83
  reserve_key = f"getReserveData_{self.name}_{token_address}_{block_number}".lower()
85
84
  atoken_total_supply_key = f'totalSupply_{value["tToken"]}_{block_number}'.lower()
86
85
  debt_token_total_supply_key = f'totalSupply_{value["dToken"]}_{block_number}'.lower()
86
+ sdebt_token_total_supply_key = f'totalSupply_{value["sdToken"]}_{block_number}'.lower()
87
87
  decimals_key = f"decimals_{token_address}_{block_number}".lower()
88
+
88
89
  rpc_calls[reserve_key] = self.get_function_lending_pool_info("getReserveData", [token_address])
89
90
  rpc_calls[atoken_total_supply_key] = self.state_service.get_function_info(
90
91
  value["tToken"], ERC20_ABI, "totalSupply", block_number=block_number)
91
92
  rpc_calls[debt_token_total_supply_key] = self.state_service.get_function_info(
92
93
  value["dToken"], ERC20_ABI, "totalSupply", block_number=block_number)
94
+ rpc_calls[sdebt_token_total_supply_key] = self.state_service.get_function_info(
95
+ value["sdToken"], ERC20_ABI, "totalSupply", block_number=block_number)
93
96
  rpc_calls[decimals_key] = self.state_service.get_function_info(
94
97
  token_address, ERC20_ABI, "decimals", block_number=block_number)
95
98
 
96
- if value["sdToken"] != NATIVE_TOKEN:
97
- sdebt_token_total_supply_key = f'totalSupply_{value["sdToken"]}_{block_number}'.lower()
98
- rpc_calls[sdebt_token_total_supply_key] = self.state_service.get_function_info(
99
- value["sdToken"], ERC20_ABI, "totalSupply", block_number=block_number)
100
-
101
99
  return rpc_calls
102
100
 
103
101
  @staticmethod
@@ -175,23 +173,18 @@ class AaveV2StateService(ProtocolServices):
175
173
  decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
176
174
  atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
177
175
  debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
178
- data = {
176
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
177
+
178
+ reserve_tokens_info.append({
179
179
  'underlying': token_address,
180
180
  'underlying_decimals': decoded_data.get(decimals_call_id),
181
181
  'a_token_supply': decoded_data.get(atoken_total_supply_key),
182
182
  'd_token_supply': decoded_data.get(debt_token_total_supply_key),
183
+ 'sd_token_supply': decoded_data.get(sdebt_token_total_supply_key),
183
184
  'supply_apy': reserve_data[3],
184
- 'borrow_apy': reserve_data[4]
185
- }
186
- if sdebt_token != NATIVE_TOKEN:
187
- sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
188
- data['sd_token_supply'] = decoded_data.get(sdebt_token_total_supply_key)
189
- data['stable_borrow_apy'] = reserve_data[5]
190
- else:
191
- data['sd_token_supply'] = 0
192
- data['stable_borrow_apy'] = 0
193
-
194
- reserve_tokens_info.append(data)
185
+ 'borrow_apy': reserve_data[4],
186
+ 'stable_borrow_apy': reserve_data[5]
187
+ })
195
188
 
196
189
  return reserve_tokens_info
197
190
 
@@ -215,19 +208,19 @@ class AaveV2StateService(ProtocolServices):
215
208
 
216
209
  @classmethod
217
210
  def _calculate_interest_rates(cls, token_info: dict):
218
- total_supply_t = token_info.get('a_token_supply', 0)
219
- total_supply_d = token_info.get('d_token_supply', 0)
220
- total_supply_sd = token_info.get('sd_token_supply', 0)
211
+ total_supply_t = token_info.get('a_token_supply')
212
+ total_supply_d = token_info.get('d_token_supply')
213
+ total_supply_sd = token_info.get('sd_token_supply')
221
214
  total_borrow = total_supply_d + total_supply_sd
222
215
 
223
216
  total_supply = total_supply_t / 10 ** token_info['underlying_decimals']
224
217
  total_borrow = total_borrow / 10 ** token_info['underlying_decimals']
225
218
 
226
- supply_apr = float(token_info.get('supply_apy', 0)) / 10 ** 27
219
+ supply_apr = float(token_info['supply_apy']) / 10 ** 27
227
220
  supply_apy = apr_to_apy(supply_apr)
228
- borrow_apr = float(token_info.get('borrow_apy', 0)) / 10 ** 27
221
+ borrow_apr = float(token_info['borrow_apy']) / 10 ** 27
229
222
  borrow_apy = apr_to_apy(borrow_apr)
230
- stable_borrow_apr = float(token_info.get('stable_borrow_apy', 0)) / 10 ** 27
223
+ stable_borrow_apr = float(token_info['stable_borrow_apy']) / 10 ** 27
231
224
  stable_borrow_apy = apr_to_apy(stable_borrow_apr)
232
225
 
233
226
  return {
@@ -267,23 +260,21 @@ class AaveV2StateService(ProtocolServices):
267
260
  decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
268
261
  atoken_assets_key = f"assets_{atoken}_{block_number}".lower()
269
262
  debt_token_assets_key = f"assets_{debt_token}_{block_number}".lower()
263
+ sdebt_token_assets_key = f"assets_{sdebt_token}_{block_number}".lower()
270
264
  atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
271
265
  debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
266
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
267
+
272
268
  atokens[lower_address] = atoken
273
269
  debt_tokens[lower_address] = debt_token
274
270
  sdebt_tokens[lower_address] = sdebt_token
275
271
  decimals[lower_address] = decoded_data.get(decimals_call_id)
276
272
  asset_data_tokens[atoken] = decoded_data.get(atoken_assets_key)
277
273
  asset_data_tokens[debt_token] = decoded_data.get(debt_token_assets_key)
274
+ asset_data_tokens[sdebt_token] = decoded_data.get(sdebt_token_assets_key)
278
275
  total_supply_tokens[atoken] = decoded_data.get(atoken_total_supply_key)
279
276
  total_supply_tokens[debt_token] = decoded_data.get(debt_token_total_supply_key)
280
- if sdebt_token != NATIVE_TOKEN:
281
- sdebt_token_assets_key = f"assets_{sdebt_token}_{block_number}".lower()
282
- sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
283
- asset_data_tokens[sdebt_token] = decoded_data.get(sdebt_token_assets_key)
284
- total_supply_tokens[sdebt_token] = decoded_data.get(sdebt_token_total_supply_key)
285
- interest_rate[lower_address]['stable_borrow_apy'] = float(reserve_data[5]) / 10 ** 27
286
-
277
+ total_supply_tokens[sdebt_token] = decoded_data.get(sdebt_token_total_supply_key)
287
278
 
288
279
  asset_price_key = f"getAssetsPrices_{self.name}_{block_number}".lower()
289
280
  if not token_prices and asset_price_key in decoded_data:
@@ -312,19 +303,17 @@ class AaveV2StateService(ProtocolServices):
312
303
  value = reserves_info[token]
313
304
  atoken_balance_of_key = f'balanceOf_{value["tToken"]}_{wallet}_{block_number}'.lower()
314
305
  debt_token_balance_of_key = f'balanceOf_{value["dToken"]}_{wallet}_{block_number}'.lower()
306
+ sdebt_token_balance_of_key = f'balanceOf_{value["sdToken"]}_{wallet}_{block_number}'.lower()
315
307
  decimals_key = f"decimals_{token}_{block_number}".lower()
316
308
 
317
309
  rpc_calls[atoken_balance_of_key] = self.state_service.get_function_info(
318
310
  value["tToken"], ERC20_ABI, "balanceOf", [wallet], block_number=block_number)
319
311
  rpc_calls[debt_token_balance_of_key] = self.state_service.get_function_info(
320
312
  value["dToken"], ERC20_ABI, "balanceOf", [wallet], block_number=block_number)
313
+ rpc_calls[sdebt_token_balance_of_key] = self.state_service.get_function_info(
314
+ value["sdToken"], ERC20_ABI, "balanceOf", [wallet], block_number=block_number)
321
315
  rpc_calls[decimals_key] = self.state_service.get_function_info(
322
316
  token, ERC20_ABI, "decimals", block_number=block_number)
323
- if value["sdToken"] != NATIVE_TOKEN:
324
- sdebt_token_balance_of_key = f'balanceOf_{value["sdToken"]}_{wallet}_{block_number}'.lower()
325
- rpc_calls[sdebt_token_balance_of_key] = self.state_service.get_function_info(
326
- value["sdToken"], ERC20_ABI, "balanceOf", [wallet], block_number=block_number)
327
-
328
317
  if health_factor:
329
318
  rpc_calls.update(self.get_health_factor_function_info(wallet, reserves_info, block_number))
330
319
 
@@ -386,12 +375,8 @@ class AaveV2StateService(ProtocolServices):
386
375
  get_decimals_id = f"decimals_{token}_{block_number}".lower()
387
376
  deposit_amount[token] = decoded_data.get(get_total_deposit_id)
388
377
  borrow_amount[token] = decoded_data.get(get_total_borrow_id)
378
+ stable_borrow_amount[token] = decoded_data.get(get_total_stable_borrow_id)
389
379
  decimals[token] = decoded_data.get(get_decimals_id)
390
- if value['sdToken'] != NATIVE_TOKEN:
391
- stable_borrow_amount[token] = decoded_data.get(get_total_stable_borrow_id)
392
- else:
393
- stable_borrow_amount[token] = 0
394
-
395
380
  data = self.get_wallet_deposit_borrow_balance(
396
381
  reserves_info, token_prices, decimals, deposit_amount,
397
382
  borrow_amount, stable_borrow_amount
@@ -10,19 +10,15 @@ from defi_services.abis.token.erc20_abi import ERC20_ABI
10
10
  from defi_services.constants.chain_constant import Chain
11
11
  from defi_services.constants.db_constant import DBConst
12
12
  from defi_services.constants.entities.lending_constant import Lending
13
- from defi_services.constants.network_constants import NATIVE_TOKEN
14
13
  from defi_services.constants.time_constant import TimeConstants
15
14
  from defi_services.jobs.queriers.state_querier import StateQuerier
16
15
  from defi_services.services.lending.aave_v2_services import AaveV2StateService
17
16
  from defi_services.services.lending.lending_info.arbitrum.aave_v3_arbitrum import AAVE_V3_ARB
18
17
  from defi_services.services.lending.lending_info.avalanche.aave_v3_avalanche import AAVE_V3_AVALANCHE
19
- from defi_services.services.lending.lending_info.base.aave_v3_base import AAVE_V3_BASE
20
- from defi_services.services.lending.lending_info.bsc.aave_v3_bsc import AAVE_V3_BSC
21
- from defi_services.services.lending.lending_info.ethereum.old_aave_v3_eth import AAVE_V3_ETH
18
+ from defi_services.services.lending.lending_info.ethereum.aave_v3_eth import AAVE_V3_ETH
22
19
  from defi_services.services.lending.lending_info.fantom.aave_v3_ftm import AAVE_V3_FTM
23
20
  from defi_services.services.lending.lending_info.optimism.aave_v3_optimism import AAVE_V3_OPTIMISM
24
21
  from defi_services.services.lending.lending_info.polygon.aave_v3_polygon import AAVE_V3_POLYGON
25
- from defi_services.services.lending.lending_info.zksync.aave_v3_zksync import AAVE_V3_ZKSYNC
26
22
 
27
23
  logger = logging.getLogger("Aave V3 Lending Pool State Service")
28
24
 
@@ -34,10 +30,7 @@ class AaveV3Info:
34
30
  Chain.avalanche: AAVE_V3_AVALANCHE,
35
31
  Chain.fantom: AAVE_V3_FTM,
36
32
  Chain.optimism: AAVE_V3_OPTIMISM,
37
- Chain.arbitrum: AAVE_V3_ARB,
38
- Chain.base: AAVE_V3_BASE,
39
- Chain.zksync: AAVE_V3_ZKSYNC,
40
- Chain.bsc: AAVE_V3_BSC
33
+ Chain.arbitrum: AAVE_V3_ARB
41
34
  }
42
35
 
43
36
 
@@ -95,33 +88,25 @@ class AaveV3StateService(AaveV2StateService):
95
88
  for token_address, reserve_info in reserves_info.items():
96
89
  get_reserve_data_call_id = f'getReserveData_{self.name}_{token_address}_{block_number}'.lower()
97
90
  reserve_data = decoded_data.get(get_reserve_data_call_id)
91
+
98
92
  atoken = reserve_data[8].lower()
93
+ sdebt_token = reserve_data[9].lower()
99
94
  debt_token = reserve_data[10].lower()
100
95
  decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
101
96
  atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
102
97
  debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
103
- sdebt_token = reserve_data[9].lower()
98
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
104
99
 
105
-
106
- data = {
100
+ reserve_tokens_info.append({
107
101
  'underlying': token_address,
108
102
  'underlying_decimals': decoded_data.get(decimals_call_id),
109
103
  'a_token_supply': decoded_data.get(atoken_total_supply_key),
110
104
  'd_token_supply': decoded_data.get(debt_token_total_supply_key),
111
-
105
+ 'sd_token_supply': decoded_data.get(sdebt_token_total_supply_key),
112
106
  'supply_apy': reserve_data[2],
113
107
  'borrow_apy': reserve_data[4],
114
-
115
- }
116
- if sdebt_token != NATIVE_TOKEN:
117
- sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
118
- data['sd_token_supply'] = decoded_data.get(sdebt_token_total_supply_key)
119
- data['stable_borrow_apy'] = reserve_data[5]
120
- else:
121
- data['sd_token_supply'] = 0
122
- data['stable_borrow_apy'] = 0
123
-
124
- reserve_tokens_info.append(data)
108
+ 'stable_borrow_apy': reserve_data[5]
109
+ })
125
110
 
126
111
  return reserve_tokens_info
127
112
 
@@ -136,17 +121,17 @@ class AaveV3StateService(AaveV2StateService):
136
121
  reserve_key = f"getReserveData_{self.name}_{token_address}_{block_number}".lower()
137
122
  atoken_total_supply_key = f'totalSupply_{value["tToken"]}_{block_number}'.lower()
138
123
  debt_token_total_supply_key = f'totalSupply_{value["dToken"]}_{block_number}'.lower()
124
+ sdebt_token_total_supply_key = f'totalSupply_{value["sdToken"]}_{block_number}'.lower()
139
125
  decimals_key = f"decimals_{token_address}_{block_number}".lower()
140
126
  for reward_token in reward_tokens:
141
127
  atoken_assets_key = f"getRewardsData_{value['tToken']}_{reward_token}_{block_number}".lower()
142
128
  debt_token_assets_key = f"getRewardsData_{value['dToken']}_{reward_token}_{block_number}".lower()
129
+ sdebt_token_assets_key = f"getRewardsData_{value['sdToken']}_{reward_token}_{block_number}".lower()
143
130
  rpc_calls[atoken_assets_key] = self.get_function_incentive_info(
144
131
  "getRewardsData", [value['tToken'], reward_token], block_number)
145
132
  rpc_calls[debt_token_assets_key] = self.get_function_incentive_info(
146
133
  "getRewardsData", [value['dToken'], reward_token], block_number)
147
- if value['sdToken'] != NATIVE_TOKEN:
148
- sdebt_token_assets_key = f"getRewardsData_{value['sdToken']}_{reward_token}_{block_number}".lower()
149
- rpc_calls[sdebt_token_assets_key] = self.get_function_incentive_info(
134
+ rpc_calls[sdebt_token_assets_key] = self.get_function_incentive_info(
150
135
  "getRewardsData", [value['sdToken'], reward_token], block_number)
151
136
 
152
137
  rpc_calls[reserve_key] = self.get_function_lending_pool_info("getReserveData", [token_address])
@@ -154,14 +139,11 @@ class AaveV3StateService(AaveV2StateService):
154
139
  value["tToken"], ERC20_ABI, "totalSupply", block_number=block_number)
155
140
  rpc_calls[debt_token_total_supply_key] = self.state_service.get_function_info(
156
141
  value["dToken"], ERC20_ABI, "totalSupply", block_number=block_number)
142
+ rpc_calls[sdebt_token_total_supply_key] = self.state_service.get_function_info(
143
+ value["sdToken"], ERC20_ABI, "totalSupply", block_number=block_number)
157
144
  rpc_calls[decimals_key] = self.state_service.get_function_info(
158
145
  token_address, ERC20_ABI, "decimals", block_number=block_number)
159
146
 
160
- if value['sdToken'] != NATIVE_TOKEN:
161
- sdebt_token_total_supply_key = f'totalSupply_{value["sdToken"]}_{block_number}'.lower()
162
- rpc_calls[sdebt_token_total_supply_key] = self.state_service.get_function_info(
163
- value["sdToken"], ERC20_ABI, "totalSupply", block_number=block_number)
164
-
165
147
  return rpc_calls
166
148
 
167
149
  def get_apy_lending_pool_deprecated(
@@ -258,32 +240,29 @@ class AaveV3StateService(AaveV2StateService):
258
240
  sdebt_token = reserve_data[8].lower()
259
241
  debt_token = reserve_data[9].lower()
260
242
  decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
243
+
261
244
  atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
262
245
  debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
246
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
263
247
  asset_data_tokens[atoken] = {}
264
248
  asset_data_tokens[debt_token] = {}
265
- if sdebt_token != NATIVE_TOKEN:
266
- asset_data_tokens[sdebt_token] = {}
267
-
249
+ asset_data_tokens[sdebt_token] = {}
268
250
  total_supply_tokens[atoken] = {}
269
251
  for reward_token in reward_tokens:
270
252
  atoken_assets_key = f"getRewardsData_{atoken}_{reward_token}_{block_number}".lower()
271
253
  debt_token_assets_key = f"getRewardsData_{debt_token}_{reward_token}_{block_number}".lower()
254
+ sdebt_token_assets_key = f"getRewardsData_{sdebt_tokens}_{reward_token}_{block_number}".lower()
272
255
  asset_data_tokens[atoken][reward_token] = decoded_data.get(atoken_assets_key)
273
256
  asset_data_tokens[debt_token][reward_token] = decoded_data.get(debt_token_assets_key)
257
+ asset_data_tokens[sdebt_token][reward_token] = decoded_data.get(sdebt_token_assets_key)
274
258
  total_supply_tokens[atoken][reward_token] = decoded_data.get(atoken_total_supply_key)
275
- if sdebt_token != NATIVE_TOKEN:
276
- sdebt_token_assets_key = f"getRewardsData_{sdebt_tokens}_{reward_token}_{block_number}".lower()
277
- asset_data_tokens[sdebt_token][reward_token] = decoded_data.get(sdebt_token_assets_key)
278
259
 
279
260
  atokens[lower_address] = atoken
280
261
  debt_tokens[lower_address] = debt_token
281
262
  sdebt_tokens[lower_address] = sdebt_token
282
263
  decimals[lower_address] = decoded_data.get(decimals_call_id)
283
264
  total_supply_tokens[debt_token] = decoded_data.get(debt_token_total_supply_key)
284
- if sdebt_token != NATIVE_TOKEN:
285
- sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
286
- total_supply_tokens[sdebt_token] = decoded_data.get(sdebt_token_total_supply_key)
265
+ total_supply_tokens[sdebt_token] = decoded_data.get(sdebt_token_total_supply_key)
287
266
 
288
267
  asset_price_key = f"getAssetsPrices_{self.name}_{block_number}".lower()
289
268
  if not token_prices and asset_price_key in decoded_data:
@@ -9,9 +9,7 @@ from defi_services.constants.token_constant import Token
9
9
  from defi_services.jobs.queriers.state_querier import StateQuerier
10
10
  from defi_services.services.lending.compound_service import CompoundStateService
11
11
  from defi_services.services.lending.lending_info.arbitrum.compound_v3_arbitrum import COMPOUND_V3_ARBITRUM
12
- from defi_services.services.lending.lending_info.base.compound_v3_base import COMPOUND_V3_BASE
13
12
  from defi_services.services.lending.lending_info.ethereum.compound_v3_eth import COMPOUND_V3_ETH
14
- from defi_services.services.lending.lending_info.optimism.compound_v3_optimism import COMPOUND_V3_OPTIMISM
15
13
  from defi_services.services.lending.lending_info.polygon.compound_v3_polygon import COMPOUND_V3_POLYGON
16
14
 
17
15
 
@@ -19,9 +17,7 @@ class CompoundV3Info:
19
17
  mapping = {
20
18
  Chain.ethereum: COMPOUND_V3_ETH,
21
19
  Chain.polygon: COMPOUND_V3_POLYGON,
22
- Chain.arbitrum: COMPOUND_V3_ARBITRUM,
23
- Chain.base: COMPOUND_V3_BASE,
24
- Chain.optimism: COMPOUND_V3_OPTIMISM
20
+ Chain.arbitrum: COMPOUND_V3_ARBITRUM
25
21
  }
26
22
 
27
23
 
@@ -29,7 +25,7 @@ class CompoundV3StateService(CompoundStateService):
29
25
  def __init__(self, state_service: StateQuerier, chain_id: str = "0x1"):
30
26
  super().__init__(state_service, chain_id)
31
27
  self.name = f"{chain_id}_{Lending.compound_v3}"
32
- self.pool_info = CompoundV3Info.mapping.get(chain_id, {})
28
+ self.pool_info = CompoundV3Info.mapping.get(chain_id)
33
29
  self.comet_abi = COMET_ABI
34
30
  self.comet_ext = COMET_EXT_ABI
35
31
  self.reward_abi = REWARD_ABI
@@ -51,7 +47,7 @@ class CompoundV3StateService(CompoundStateService):
51
47
  ):
52
48
  result = {}
53
49
  w3 = self.state_service.get_w3()
54
- pools = [value.get('comet') for key, value in self.pool_info.get('reservesList', {}).items()]
50
+ pools = [value.get('comet') for key, value in self.pool_info.get('reservesList').items()]
55
51
  if comets:
56
52
  pools += comets
57
53
  for pool in pools:
@@ -189,7 +185,7 @@ class CompoundV3StateService(CompoundStateService):
189
185
 
190
186
  assets = {
191
187
  underlying_token: {
192
- 'deposit_apy': asset_info['deposit_apy'],
188
+ 'deposit_apy': 0,
193
189
  'borrow_apy': asset_info['borrow_apy'],
194
190
  'total_deposit': 0,
195
191
  'total_borrow': asset_info['total_borrow'],
@@ -207,7 +203,7 @@ class CompoundV3StateService(CompoundStateService):
207
203
  'is_base': False
208
204
  }
209
205
  assets[collateral_address]['total_deposit'] += total_supply
210
- # assets[collateral_address]['deposit_apy'] = asset_info['deposit_apy']
206
+ assets[collateral_address]['deposit_apy'] = asset_info['deposit_apy']
211
207
 
212
208
  comet = token_info['token']
213
209
  data[comet] = assets
@@ -3,9 +3,9 @@ import time
3
3
 
4
4
  from web3 import Web3
5
5
 
6
- from defi_services.abis.lending.aave_v2_and_forks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
- from defi_services.abis.lending.aave_v2_and_forks.lending_pool_abi import LENDING_POOL_ABI
8
- from defi_services.abis.lending.aave_v2_and_forks.oracle_abi import ORACLE_ABI
6
+ from defi_services.abis.lending.aave_v2_and_forlks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
+ from defi_services.abis.lending.aave_v2_and_forlks.lending_pool_abi import LENDING_POOL_ABI
8
+ from defi_services.abis.lending.aave_v2_and_forlks.oracle_abi import ORACLE_ABI
9
9
  from defi_services.abis.lending.granary.granary_rewarder_abi import GRANARY_REWARDER_ABI
10
10
  from defi_services.abis.token.erc20_abi import ERC20_ABI
11
11
  from defi_services.constants.chain_constant import Chain
@@ -14,7 +14,6 @@ from defi_services.constants.token_constant import Token
14
14
  from defi_services.jobs.queriers.state_querier import StateQuerier
15
15
  from defi_services.services.lending.lending_info.arbitrum.granary_arbitrum import GRANARY_ARBITRUM
16
16
  from defi_services.services.lending.lending_info.avalanche.granary_avalanche import GRANARY_AVALANCHE
17
- from defi_services.services.lending.lending_info.base.granary_base import GRANARY_BASE
18
17
  from defi_services.services.lending.lending_info.bsc.granary_bsc import GRANARY_BSC
19
18
  from defi_services.services.lending.lending_info.ethereum.granary_eth import GRANARY_V1_ETH
20
19
  from defi_services.services.lending.lending_info.fantom.granary_ftm import GRANARY_FTM
@@ -32,8 +31,7 @@ class GranaryV1Info:
32
31
  Chain.optimism: GRANARY_OPTIMISM,
33
32
  Chain.fantom: GRANARY_FTM,
34
33
  Chain.avalanche: GRANARY_AVALANCHE,
35
- Chain.arbitrum: GRANARY_ARBITRUM,
36
- Chain.base: GRANARY_BASE
34
+ Chain.arbitrum: GRANARY_ARBITRUM
37
35
  }
38
36
 
39
37
 
@@ -2,7 +2,7 @@ from web3 import Web3
2
2
 
3
3
  from defi_services.abis.lending.justlend.just_token_abi import JUST_TOKEN_ABI
4
4
  from defi_services.abis.lending.justlend.justlend_comptroller_abi import JUSTLEND_COMPTROLLER_ABI
5
- from defi_services.abis.token.trc20_abi import TRC20_ABI
5
+ from defi_services.abis.token.erc20_abi import ERC20_ABI
6
6
  from defi_services.constants.chain_constant import Chain
7
7
  from defi_services.constants.entities.lending_constant import Lending
8
8
  from defi_services.constants.token_constant import Token
@@ -74,9 +74,8 @@ class JustLendStateService(CompoundStateService):
74
74
  liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
75
75
 
76
76
  if underlying != Token.native_token:
77
- underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=TRC20_ABI)
77
+ underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=ERC20_ABI)
78
78
  underlying_decimal = underlying_contract.functions.decimals().call()
79
-
80
79
  else:
81
80
  underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
82
81
  exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
@@ -140,7 +139,7 @@ class JustLendStateService(CompoundStateService):
140
139
  rpc_calls[underlying_balance_key] = self.get_ctoken_function_info(
141
140
  ctoken, "balanceOfUnderlying", [wallet])
142
141
  rpc_calls[underlying_decimals_key] = self.state_service.get_function_info(
143
- underlying, TRC20_ABI, "decimals", []
142
+ underlying, ERC20_ABI, "decimals", []
144
143
  )
145
144
 
146
145
  return rpc_calls
@@ -1,6 +1,6 @@
1
1
  AAVE_V3_ARB = {
2
2
  "address": "0x794a61358d6845594f94dc1db02a252b5b4814ad",
3
- "name": "AAVE Lending Pool",
3
+ "name": "Radiant Lending Pool",
4
4
  "stakedIncentiveAddress": '0x929ec64c34a17401f460460d4b9390518e5b473e',
5
5
  "oracleAddress": "0xb56c2F0B653B2e0b10C9b928C8580Ac5Df02C7C7",
6
6
  "rewardTokensList": [],
@@ -37,113 +37,23 @@ COMPOUND_V3_ARBITRUM = {
37
37
  "assets": {
38
38
  "0x912ce59144191c1204e64559fe8253a0e49e6548": {
39
39
  "priceFeed": "0xb2a824043730fe05f3da2efafa1cbbe83fa548d6",
40
- "loanToValue": 0.7,
41
- "liquidationThreshold": 0.8
40
+ "loanToValue": 0.55,
41
+ "liquidationThreshold": 0.6
42
42
  },
43
43
  "0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a": {
44
44
  "priceFeed": "0xdb98056fecfff59d032ab628337a4887110df3db",
45
- "loanToValue": 0.6,
46
- "liquidationThreshold": 0.75
47
- },
48
- "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
49
- "priceFeed": "0x639fe6ab55c921f74e7fac1ee960c0b6293ba612",
50
- "loanToValue": 0.83,
51
- "liquidationThreshold": 0.9
52
- },
53
- "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
54
- "priceFeed": "0xd0c7101eacbb49f3decccc166d238410d6d46d57",
55
- "loanToValue": 0.75,
56
- "liquidationThreshold": 0.85
57
- },
58
- "0x5979d7b546e38e414f7e9822514be443a4800529": {
59
- "priceFeed": "0xe165155c34fe4cbfc55fc554437907bdb1af7e3e",
60
- "loanToValue": 0.8,
61
- "liquidationThreshold": 0.85
62
- },
63
- "0x2416092f143378750bb29b79ed961ab195cceea5": {
64
- "priceFeed": "0xc49399814452b41da8a7cd76a159f5515cb3e493",
65
- "loanToValue": 0.8,
66
- "liquidationThreshold": 0.85
67
- },
68
- "0x57f5e098cad7a3d1eed53991d4d66c45c9af7812": {
69
- "priceFeed": "0x13cdfb7db5e2f58e122b2e789b59de13645349c4",
70
- "loanToValue": 0.88,
71
- "liquidationThreshold": 0.9
72
- }
73
- }
74
- },
75
- "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
76
- "comet": "0x6f7d514bbd4aff3bcd1140b7344b32f063dee486",
77
- "assets": {
78
- "0x35751007a407ca6feffe80b3cb397736d2cf4dbe": {
79
- "priceFeed": "0xd3cf278f135d9831d2bf28f6672a4575906ca724",
80
- "loanToValue": 0.9,
81
- "liquidationThreshold": 0.93
82
- },
83
- "0xec70dcb4a1efa46b8f2d97c310c9c4790ba5ffa8": {
84
- "priceFeed": "0x970ffd8e335b8fa4cd5c869c7cac3a90671d5dc3",
85
- "loanToValue": 0.9,
86
- "liquidationThreshold": 0.93
87
- },
88
- "0x5979d7b546e38e414f7e9822514be443a4800529": {
89
- "priceFeed": "0x6c987dde50db1dcdd32cd4175778c2a291978e2a",
90
- "loanToValue": 0.88,
91
- "liquidationThreshold": 0.93
92
- },
93
- "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
94
- "priceFeed": "0xfa454de61b317b6535a0c462267208e8fdb89f45",
95
- "loanToValue": 0.8,
96
- "liquidationThreshold": 0.85
97
- },
98
- "0x4186bfc76e2e237523cbc30fd220fe055156b41f": {
99
- "priceFeed": "0x3870fac3de911c12a57e5a2532d15ad8ca275a60",
100
- "loanToValue": 0.88,
101
- "liquidationThreshold": 0.91
102
- },
103
- "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9": {
104
- "priceFeed": "0x84e93ec6170ed630f5ebd89a1aae72d4f63f2713",
105
- "loanToValue": 0.8,
106
- "liquidationThreshold": 0.85
107
- },
108
- "0xaf88d065e77c8cc2239327c5edb3a432268e5831": {
109
- "priceFeed": "0x443ea0340cb75a160f31a440722dec7b5bc3c2e9",
110
- "loanToValue": 0.8,
111
- "liquidationThreshold": 0.85
112
- },
113
- "0x2416092f143378750bb29b79ed961ab195cceea5": {
114
- "priceFeed": "0x72e9b6f907365d76c6192ad49c0c5ba356b7fa48",
115
- "loanToValue": 0.88,
116
- "liquidationThreshold": 0.91
117
- }
118
- }
119
- },
120
- "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9": {
121
- "comet": "0xd98be00b5d27fc98112bde293e487f8d4ca57d07",
122
- "assets": {
123
- "0x912ce59144191c1204e64559fe8253a0e49e6548": {
124
- "priceFeed": "0xb2a824043730fe05f3da2efafa1cbbe83fa548d6",
125
- "loanToValue": 0.7,
126
- "liquidationThreshold": 0.8
45
+ "loanToValue": 0.4,
46
+ "liquidationThreshold": 0.45
127
47
  },
128
48
  "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
129
49
  "priceFeed": "0x639fe6ab55c921f74e7fac1ee960c0b6293ba612",
130
- "loanToValue": 0.85,
131
- "liquidationThreshold": 0.9
132
- },
133
- "0x5979d7b546e38e414f7e9822514be443a4800529": {
134
- "priceFeed": "0xe165155c34fe4cbfc55fc554437907bdb1af7e3e",
135
- "loanToValue": 0.8,
50
+ "loanToValue": 0.78,
136
51
  "liquidationThreshold": 0.85
137
52
  },
138
53
  "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
139
54
  "priceFeed": "0xd0c7101eacbb49f3decccc166d238410d6d46d57",
140
55
  "loanToValue": 0.7,
141
- "liquidationThreshold": 0.8
142
- },
143
- "0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a": {
144
- "priceFeed": "0xdb98056fecfff59d032ab628337a4887110df3db",
145
- "loanToValue": 0.6,
146
- "liquidationThreshold": 0.7
56
+ "liquidationThreshold": 0.77
147
57
  }
148
58
  }
149
59
  }