defi-state-querier 0.4.1__py3-none-any.whl → 0.4.3__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 (48) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/constants/chain_constant.py +4 -1
  3. defi_services/constants/entities/vault_constant.py +5 -0
  4. defi_services/constants/entities/vault_services.py +24 -0
  5. defi_services/constants/query_constant.py +1 -0
  6. defi_services/jobs/processors/state_processor.py +4 -2
  7. defi_services/services/lending/aave_v2_services.py +1 -1
  8. defi_services/services/lending/aave_v3_services.py +1 -1
  9. defi_services/services/lending/apeswap_services.py +5 -2
  10. defi_services/services/lending/compound_service.py +7 -2
  11. defi_services/services/lending/compound_v3_services.py +1 -4
  12. defi_services/services/lending/flux_services.py +6 -5
  13. defi_services/services/lending/granary_services.py +1 -4
  14. defi_services/services/lending/iron_bank_service.py +17 -6
  15. defi_services/services/lending/justlend_service.py +21 -6
  16. defi_services/services/lending/lending_info/bsc/liqee_bsc.py +154 -106
  17. defi_services/services/lending/lending_info/ethereum/liqee_eth.py +160 -110
  18. defi_services/services/lending/liqee_service.py +7 -4
  19. defi_services/services/lending/morpho_aave_v2_services.py +1 -1
  20. defi_services/services/lending/morpho_aave_v3_services.py +1 -4
  21. defi_services/services/lending/morpho_compound_services.py +1 -5
  22. defi_services/services/lending/onyx_service.py +7 -5
  23. defi_services/services/lending/radiant_v2_services.py +1 -4
  24. defi_services/services/lending/silo_services.py +1 -1
  25. defi_services/services/lending/strike_service.py +7 -2
  26. defi_services/services/lending/trava_services.py +5 -5
  27. defi_services/services/lending/uwu_services.py +1 -1
  28. defi_services/services/lending/valas_services.py +1 -1
  29. defi_services/services/lending/venus_services.py +28 -16
  30. defi_services/services/lending/wepiggy_services.py +7 -2
  31. defi_services/services/protocol_services.py +34 -2
  32. defi_services/services/vault/__init__.py +0 -0
  33. defi_services/services/vault/trava_vault_services.py +196 -0
  34. defi_services/services/vault/vault_info/__init__.py +0 -0
  35. defi_services/services/vault/vault_info/bsc/__init__.py +0 -0
  36. defi_services/services/vault/vault_info/bsc/trava_bsc.py +41 -0
  37. defi_services/services/vault/vault_info/ethereum/__init__.py +0 -0
  38. defi_services/services/vault/vault_info/ethereum/trava_eth.py +22 -0
  39. defi_services/services/vault/vault_info/fantom/__init__.py +0 -0
  40. defi_services/services/vault/vault_info/fantom/trava_ftm.py +31 -0
  41. defi_services/utils/init_services.py +5 -0
  42. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/METADATA +1 -1
  43. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/RECORD +46 -37
  44. defi_services/jobs/queriers/cosmos_state_querier.py +0 -83
  45. defi_services/services/cosmos_token_services.py +0 -46
  46. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/LICENSE +0 -0
  47. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/WHEEL +0 -0
  48. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/top_level.txt +0 -0
defi_services/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.4.1"
1
+ __version__ = "0.4.3"
@@ -9,9 +9,12 @@ class Chain:
9
9
  avalanche = "0xa86a"
10
10
  tron = "0x2b6653dc"
11
11
  cronos = "0x19"
12
+ polkadot = "polkadot"
12
13
 
13
14
  native_decimals = {
14
- tron: 6
15
+ tron: 6,
16
+ solana: 9,
17
+ polkadot: 10
15
18
  }
16
19
 
17
20
 
@@ -0,0 +1,5 @@
1
+ class Vault:
2
+ # service
3
+ trava_vault = "trava-vault"
4
+
5
+ all = [trava_vault]
@@ -0,0 +1,24 @@
1
+ from defi_services.constants.chain_constant import Chain
2
+ from defi_services.constants.entities.vault_constant import Vault
3
+ from defi_services.services.vault.trava_vault_services import TravaVaultStateService
4
+
5
+
6
+ class VaultServices:
7
+ # chain
8
+ bsc = {
9
+ Vault.trava_vault: TravaVaultStateService
10
+ }
11
+
12
+ ethereum = {
13
+ Vault.trava_vault: TravaVaultStateService
14
+ }
15
+
16
+ fantom = {
17
+ Vault.trava_vault: TravaVaultStateService
18
+ }
19
+
20
+ mapping = {
21
+ Chain.bsc: bsc,
22
+ Chain.ethereum: ethereum,
23
+ Chain.fantom: fantom
24
+ }
@@ -10,6 +10,7 @@ class Query:
10
10
  token_balance = 'token_balance'
11
11
  nft_balance = 'nft_balance'
12
12
  deposit_borrow = 'deposit_borrow'
13
+ staking_reward = 'staking_reward'
13
14
  protocol_reward = 'protocol_reward'
14
15
  protocol_apy = 'protocol_apy'
15
16
  health_factor = 'health_factor'
@@ -4,12 +4,13 @@ from web3 import Web3
4
4
 
5
5
  from defi_services.constants.chain_constant import Chain
6
6
  from defi_services.constants.entities.lending_services import LendingServices
7
+ from defi_services.constants.entities.vault_services import VaultServices
7
8
  from defi_services.constants.query_constant import Query
8
9
  from defi_services.jobs.queriers.state_querier import StateQuerier
9
10
  from defi_services.services.nft_services import NFTServices
10
11
  from defi_services.services.protocol_services import ProtocolServices
11
12
  from defi_services.services.token_services import TokenServices
12
- from defi_services.utils.convert_address import base58_to_hex, convert_address_dict
13
+ from defi_services.utils.convert_address import base58_to_hex
13
14
  from defi_services.utils.init_services import init_services
14
15
 
15
16
  logger = logging.getLogger("StateProcessor")
@@ -23,6 +24,7 @@ class StateProcessor:
23
24
  self.token_service = TokenServices(self.state_querier, chain_id)
24
25
  self.nft_service = NFTServices(self.state_querier, chain_id)
25
26
  self.lending_services = LendingServices.mapping.get(chain_id)
27
+ self.vault_services = VaultServices.mapping.get(chain_id, {})
26
28
 
27
29
  def get_service_info(self):
28
30
  info = self.nft_service.get_service_info()
@@ -104,7 +106,7 @@ class StateProcessor:
104
106
  if Query.nft_balance == query_type:
105
107
  data = self.nft_service.get_data(wallet, entity, entity_value, block_number)
106
108
 
107
- elif entity in self.lending_services:
109
+ elif (entity in self.lending_services) or (entity in self.vault_services):
108
110
  entity_service: ProtocolServices = self.services.get(entity)
109
111
  data = entity_service.get_data(
110
112
  [query_type], wallet, entity_value, block_number, **kwargs)
@@ -438,7 +438,7 @@ class AaveV2StateService(ProtocolServices):
438
438
  return rpc_calls
439
439
 
440
440
  def calculate_rewards_balance(
441
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
441
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
442
442
  reward_token = self.pool_info['rewardToken']
443
443
  key = f"getRewardsBalance_{self.name}_{wallet}_{block_number}".lower()
444
444
  rewards = decoded_data.get(key) / 10 ** 18
@@ -299,7 +299,7 @@ class AaveV3StateService(AaveV2StateService):
299
299
  return rpc_calls
300
300
 
301
301
  def calculate_rewards_balance(
302
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
302
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
303
303
  key = f"getAllUserRewards_{self.name}_{wallet}_{block_number}".lower()
304
304
  rewards = decoded_data.get(key)
305
305
  result = dict(zip(*rewards))
@@ -7,7 +7,6 @@ from defi_services.abis.lending.apeswape.apeswap_lens_abi import APESWAP_LENS_AB
7
7
  from defi_services.abis.lending.apeswape.apswap_ctoken_abi import APESWAP_CTOKEN_ABI
8
8
  from defi_services.constants.chain_constant import Chain, BlockTime
9
9
  from defi_services.constants.entities.lending_constant import Lending
10
- from defi_services.constants.token_constant import ContractAddresses
11
10
  from defi_services.jobs.queriers.state_querier import StateQuerier
12
11
  from defi_services.services.lending.compound_service import CompoundStateService
13
12
  from defi_services.services.lending.lending_info.bsc.apeswap_bsc import APESWAP_BSC
@@ -63,8 +62,12 @@ class ApeSwapStateService(CompoundStateService):
63
62
  ctoken = data[0].lower()
64
63
  lt = data[10] / 10 ** 18
65
64
  ltv = data[10] / 10 ** 18
65
+
66
+ underlying_decimal = int(data[15])
67
+ exchange_rate = data[1] / 10 ** (18 - 8 + underlying_decimal)
66
68
  reserves_info[underlying] = {
67
69
  "cToken": ctoken,
70
+ "exchangeRate": exchange_rate,
68
71
  "liquidationThreshold": lt,
69
72
  "loanToValue": ltv
70
73
  }
@@ -113,7 +116,7 @@ class ApeSwapStateService(CompoundStateService):
113
116
  return {}
114
117
 
115
118
  def calculate_rewards_balance(
116
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
119
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
117
120
  return {}
118
121
 
119
122
  def get_ctoken_function_info(self, ctoken: str, fn_name: str, fn_paras: list = None, block_number: int = "latest"):
@@ -10,7 +10,7 @@ from defi_services.constants.chain_constant import Chain, BlockTime
10
10
  from defi_services.constants.db_constant import DBConst
11
11
  from defi_services.constants.entities.lending_constant import Lending
12
12
  from defi_services.constants.time_constant import TimeConstants
13
- from defi_services.constants.token_constant import ContractAddresses, Token
13
+ 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.ethereum.compound_eth import COMPOUND_ETH
16
16
  from defi_services.services.protocol_services import ProtocolServices
@@ -67,10 +67,15 @@ class CompoundStateService(ProtocolServices):
67
67
  for data in metadata:
68
68
  underlying = data[11].lower()
69
69
  ctoken = data[0].lower()
70
+
70
71
  lt = data[10] / 10 ** 18
71
72
  ltv = data[10] / 10 ** 18
73
+
74
+ underlying_decimal = int(data[13])
75
+ exchange_rate = data[1] / 10 ** (18 - 8 + underlying_decimal)
72
76
  reserves_info[underlying] = {
73
77
  "cToken": ctoken,
78
+ "exchangeRate": exchange_rate,
74
79
  "liquidationThreshold": lt,
75
80
  "loanToValue": ltv
76
81
  }
@@ -277,7 +282,7 @@ class CompoundStateService(ProtocolServices):
277
282
  get_reward_id = f"getCompBalanceMetadataExt_{self.name}_{wallet}_{block_number}".lower()
278
283
  return {get_reward_id: rpc_call}
279
284
 
280
- def calculate_rewards_balance(self, decoded_data: dict, wallet: str, block_number: int = "latest"):
285
+ def calculate_rewards_balance(self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
281
286
  get_reward_id = f"getCompBalanceMetadataExt_{self.name}_{wallet}_{block_number}".lower()
282
287
  rewards = decoded_data.get(get_reward_id)[-1] / 10 ** 18
283
288
  reward_token = self.pool_info.get("rewardToken")
@@ -258,10 +258,7 @@ class CompoundV3StateService(CompoundStateService):
258
258
  return result
259
259
 
260
260
  def calculate_rewards_balance(
261
- self,
262
- decoded_data: dict,
263
- wallet: str,
264
- block_number: int = "latest"):
261
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
265
262
  reward_amount = 0
266
263
  reward_address = self.pool_info.get("rewardAddress")
267
264
  for token, value in self.pool_info.get("reservesList").items():
@@ -7,7 +7,7 @@ from defi_services.abis.lending.cream.cream_lens_abi import CREAM_LENS_ABI
7
7
  from defi_services.abis.token.erc20_abi import ERC20_ABI
8
8
  from defi_services.constants.chain_constant import Chain
9
9
  from defi_services.constants.entities.lending_constant import Lending
10
- from defi_services.constants.token_constant import ContractAddresses, Token
10
+ from defi_services.constants.token_constant import Token
11
11
  from defi_services.jobs.queriers.state_querier import StateQuerier
12
12
  from defi_services.services.lending.compound_service import CompoundStateService
13
13
  from defi_services.services.lending.lending_info.ethereum.flux_eth import FLUX_ETH
@@ -66,8 +66,12 @@ class FluxStateService(CompoundStateService):
66
66
  ctoken = data[0].lower()
67
67
  lt = data[10] / 10 ** 18
68
68
  ltv = data[10] / 10 ** 18
69
+
70
+ underlying_decimal = int(data[13])
71
+ exchange_rate = data[1] / 10 ** (18 - 8 + underlying_decimal)
69
72
  reserves_info[underlying] = {
70
73
  "cToken": ctoken,
74
+ "exchangeRate": exchange_rate,
71
75
  "liquidationThreshold": lt,
72
76
  "loanToValue": ltv
73
77
  }
@@ -85,10 +89,7 @@ class FluxStateService(CompoundStateService):
85
89
  return {get_reward_id: rpc_call}
86
90
 
87
91
  def calculate_rewards_balance(
88
- self,
89
- decoded_data: dict,
90
- wallet: str,
91
- block_number: int = "latest"):
92
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
92
93
  get_reward_id = f"compAccrued_{self.name}_{wallet}_{block_number}".lower()
93
94
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
94
95
  reward_token = self.pool_info.get("rewardToken")
@@ -331,10 +331,7 @@ class GranaryStateService(ProtocolServices):
331
331
  return rpc_calls
332
332
 
333
333
  def calculate_rewards_balance(
334
- self,
335
- decoded_data: dict,
336
- wallet: str,
337
- block_number: int = "latest"):
334
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
338
335
  reward_tokens = self.pool_info.get("rewardToken")
339
336
  if not reward_tokens:
340
337
  return {}
@@ -2,14 +2,13 @@ import logging
2
2
 
3
3
  from web3 import Web3
4
4
 
5
- from defi_services.abis.lending.cream.cream_comptroller_abi import CREAM_COMPTROLLER_ABI
6
5
  from defi_services.abis.lending.iron_bank.iron_comptroller_abi import IRON_COMPTROLLER_ABI
7
6
  from defi_services.abis.lending.iron_bank.iron_lens_abi import IRON_LENS_ABI
8
7
  from defi_services.abis.lending.iron_bank.ctoken_abi import CTOKEN_ABI
9
8
  from defi_services.abis.token.erc20_abi import ERC20_ABI
10
9
  from defi_services.constants.chain_constant import Chain, BlockTime
11
10
  from defi_services.constants.entities.lending_constant import Lending
12
- from defi_services.constants.token_constant import ContractAddresses, Token
11
+ from defi_services.constants.token_constant import Token
13
12
  from defi_services.jobs.queriers.state_querier import StateQuerier
14
13
  from defi_services.services.lending.compound_service import CompoundStateService
15
14
  from defi_services.services.lending.lending_info.avalanche.iron_bank_avalanche import IRON_BANK_AVALANCHE
@@ -77,6 +76,11 @@ class IronBankStateService(CompoundStateService):
77
76
  "function": "underlying",
78
77
  "block_number": "latest"
79
78
  }
79
+
80
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
81
+ queries[exchange_rate_query_id] = self.get_ctoken_function_info(
82
+ ctoken=token, fn_name='exchangeRateStored', block_number=block_number)
83
+
80
84
  markets = f"markets_{token}_latest".lower()
81
85
  queries[markets] = self.get_comptroller_function_info("markets", [token])
82
86
  decoded_data = self.state_service.query_state_data(queries)
@@ -85,8 +89,18 @@ class IronBankStateService(CompoundStateService):
85
89
  underlying = decoded_data.get(key).lower()
86
90
  markets = f"markets_{token}_latest".lower()
87
91
  liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
92
+
93
+ if underlying != Token.native_token:
94
+ underlying_contract = _w3.eth.contract(address=Web3.toChecksumAddress(underlying), abi=ERC20_ABI)
95
+ underlying_decimal = underlying_contract.functions.decimals().call()
96
+ else:
97
+ underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
98
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
99
+ exchange_rate = decoded_data.get(exchange_rate_query_id) / 10 ** (18 - 8 + underlying_decimal)
100
+
88
101
  reserves_info[underlying] = {
89
102
  'cToken': token.lower(),
103
+ "exchangeRate": exchange_rate,
90
104
  "liquidationThreshold": liquidation_threshold,
91
105
  "loanToValue": liquidation_threshold
92
106
  }
@@ -139,10 +153,7 @@ class IronBankStateService(CompoundStateService):
139
153
  return {get_reward_id: rpc_call}
140
154
 
141
155
  def calculate_rewards_balance(
142
- self,
143
- decoded_data: dict,
144
- wallet: str,
145
- block_number: int = "latest"):
156
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
146
157
  if self.chain_id in [Chain.optimism, Chain.avalanche]:
147
158
  return {}
148
159
  get_reward_id = f"compAccrued_{self.name}_{wallet}_{block_number}".lower()
@@ -59,6 +59,11 @@ class JustLendStateService(CompoundStateService):
59
59
  "function": "underlying",
60
60
  "block_number": "latest"
61
61
  }
62
+
63
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
64
+ queries[exchange_rate_query_id] = self.get_ctoken_function_info(
65
+ ctoken=token, fn_name='exchangeRateStored', block_number=block_number)
66
+
62
67
  markets = f"markets_{token}_latest".lower()
63
68
  queries[markets] = self.get_comptroller_function_info("markets", [token])
64
69
  decoded_data = self.state_service.query_state_data(queries)
@@ -67,8 +72,18 @@ class JustLendStateService(CompoundStateService):
67
72
  markets = f"markets_{token}_latest".lower()
68
73
  underlying = decoded_data.get(key).lower()
69
74
  liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
75
+
76
+ if underlying != Token.native_token:
77
+ underlying_contract = _w3.eth.contract(address=Web3.toChecksumAddress(underlying), abi=ERC20_ABI)
78
+ underlying_decimal = underlying_contract.functions.decimals().call()
79
+ else:
80
+ underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
81
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
82
+ exchange_rate = decoded_data.get(exchange_rate_query_id) / 10 ** (18 - 8 + underlying_decimal)
83
+
70
84
  reserves_info[underlying] = {
71
85
  'cToken': token.lower(),
86
+ "exchangeRate": exchange_rate,
72
87
  "liquidationThreshold": liquidation_threshold,
73
88
  "loanToValue": liquidation_threshold
74
89
  }
@@ -77,17 +92,17 @@ class JustLendStateService(CompoundStateService):
77
92
  # REWARDS BALANCE
78
93
  def get_rewards_balance_function_info(
79
94
  self,
80
- wallets: str,
95
+ wallet: str,
81
96
  reserves_info: dict = None,
82
97
  block_number: int = "latest",
83
98
  ):
84
- rpc_call = self.get_comptroller_function_info("compAccrued", [wallets])
85
- get_reward_id = f"compAccrued_{self.name}_{wallets}_{block_number}".lower()
99
+ rpc_call = self.get_comptroller_function_info("compAccrued", [wallet])
100
+ get_reward_id = f"compAccrued_{self.name}_{wallet}_{block_number}".lower()
86
101
  return {get_reward_id: rpc_call}
87
102
 
88
- def calculate_rewards_balance(self, decoded_data: dict, wallets: str,
89
- block_number: int = "latest"):
90
- get_reward_id = f"compAccrued_{self.name}_{wallets}_{block_number}".lower()
103
+ def calculate_rewards_balance(
104
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
105
+ get_reward_id = f"compAccrued_{self.name}_{wallet}_{block_number}".lower()
91
106
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
92
107
  reward_token = self.pool_info.get("rewardToken")
93
108
  result = {
@@ -1,109 +1,157 @@
1
1
  LIQEE_BSC = {
2
- "name": "Liqee Lending Pool",
3
- "rewardToken": "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623",
4
- "comptrollerAddress": "",
5
- "lensAddress": "",
6
- "controllerAddress": "0x0b53e608bd058bb54748c35148484fd627e6dc0a",
7
- "lendingDataAddress": "0xeb92b72272e66be56b74392519cf81e150bfae0e",
8
- "poolToken": "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623",
9
- "type": "LENDING_POOL",
10
- "forked": "compound",
11
- "reservesList": {
12
- "0xe9e7cea3dedca5984780bafc599bd69add087d56": {
13
- "cToken": "0x5511b64ae77452c7130670c79298dec978204a47",
14
- "liquidationThreshold": 0.75
15
- },
16
- "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d": {
17
- "cToken": "0xaf9c10b341f55465e8785f0f81dbb52a9bfe005d",
18
- "liquidationThreshold": 0.85
19
- },
20
- "0x55d398326f99059ff775485246999027b3197955": {
21
- "cToken": "0x0bf8c72d618b5d46b055165e21d661400008fa0f",
22
- "liquidationThreshold": 0.85
23
- },
24
- "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3": {
25
- "cToken": "0xad5ec11426970c32da48f58c92b1039bc50e5492",
26
- "liquidationThreshold": 0.85
27
- },
28
- "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623": {
29
- "cToken": "0xec3fd540a2dee6f479be539d64da593a59e12d08",
30
- "liquidationThreshold": 0.6
31
- },
32
- "0xa05478b34fad86cc86f07eb6698c69ea60b266e3": {
33
- "cToken": "0xc35acaeedb814f42b2214378d8950f8555b2d670",
34
- "liquidationThreshold": 0.8
35
- },
36
- "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c": {
37
- "cToken": "0x0b66a250dadf3237ddb38d485082a7bfe400356e",
38
- "liquidationThreshold": 0.8
39
- },
40
- "0x2170ed0880ac9a755fd29b2688956bd959f933f8": {
41
- "cToken": "0x390bf37355e9df6ea2e16eed5686886da6f47669",
42
- "liquidationThreshold": 0.8
43
- },
44
- "0xbf5140a22578168fd562dccf235e5d43a02ce9b1": {
45
- "cToken": "0xee9099c1318cf960651b3196747640eb84b8806b",
46
- "liquidationThreshold": 0.7
47
- },
48
- "0x0eb3a705fc54725037cc9e008bdede697f62f335": {
49
- "cToken": "0x55012ad2f0a50195aef44f403536df2465009ef7",
50
- "liquidationThreshold": 0.7
51
- },
52
- "0x7083609fce4d1d8dc0c979aab8c869ea2c873402": {
53
- "cToken": "0x9ab060ba568b86848bf19577226184db6192725b",
54
- "liquidationThreshold": 0.7
55
- },
56
- "0x0d8ce2a99bb6e3b7db580ed848240e4a0f9ae153": {
57
- "cToken": "0xd739a569ec254d6a20ecf029f024816be58fb810",
58
- "liquidationThreshold": 0.7
59
- },
60
- "0x3ee2200efb3400fabb9aacf31297cbdd1d435d47": {
61
- "cToken": "0xfc5bb1e8c29b100ef8f12773f972477bcab68862",
62
- "liquidationThreshold": 0.7
63
- },
64
- "0x0000000000000000000000000000000000000000": {
65
- "cToken": "0xd57e1425837567f74a35d07669b23bfb67aa4a93",
66
- "liquidationThreshold": 0.8
67
- },
68
- "0xb5102cee1528ce2c760893034a4603663495fd72": {
69
- "cToken": "0x36f4c36d1f6e8418ecb2402f896b2a8fedde0991",
70
- "liquidationThreshold": 0.7
71
- },
72
- "0x367c17d19fcd0f7746764455497d63c8e8b2bba3": {
73
- "cToken": "0xb22ef996c0a2d262a19db2a66a256067f51511eb",
74
- "liquidationThreshold": 0.7
75
- },
76
- "0x20ecc92f0a33e16e8cf0417dfc3f586cf597f3a9": {
77
- "cToken": "0x6e42423e1bcb6a093a58e203b5eb6e8a8023b4e5",
78
- "liquidationThreshold": 0.7
79
- },
80
- "0x463e3d1e01d048fdf872710f7f3745b5cdf50d0e": {
81
- "cToken": "0x6ac0a0b3959c1e5fcbd09b59b09abf7c53c72346",
82
- "liquidationThreshold": 0.7
83
- },
84
- "0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe": {
85
- "cToken": "0x6d64effe3af8697336fc57efd5a7517ad526dd6d",
86
- "liquidationThreshold": 0.7
87
- },
88
- "0x4338665cbb7b2485a8855a139b75d5e34ab0db94": {
89
- "cToken": "0xd957bea67aadb8a72061ce94d033c631d1c1e6ac",
90
- "liquidationThreshold": 0.7
91
- },
92
- "0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd": {
93
- "cToken": "0x50e894894809f642de1e11b4076451734c963087",
94
- "liquidationThreshold": 0.7
95
- },
96
- "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82": {
97
- "cToken": "0xefae8f7af4bada590d4e707d900258fc72194d73",
98
- "liquidationThreshold": 0.7
99
- },
100
- "0x8ff795a6f4d97e7887c79bea79aba5cc76444adf": {
101
- "cToken": "0x9747e26c5ad01d3594ea49ccf00790f564193c15",
102
- "liquidationThreshold": 0.7
103
- },
104
- "0x16939ef78684453bfdfb47825f8a5f714f12623a": {
105
- "cToken": "0x8be8cd81737b282c909f1911f3f0ade630c335aa",
106
- "liquidationThreshold": 0.7
107
- }
2
+ "comptrollerAddress": "",
3
+ "controllerAddress": "0x0b53e608bd058bb54748c35148484fd627e6dc0a",
4
+ "forked": "compound",
5
+ "lendingDataAddress": "0xeb92b72272e66be56b74392519cf81e150bfae0e",
6
+ "lensAddress": "",
7
+ "name": "Liqee Lending Pool",
8
+ "poolToken": "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623",
9
+ "reservesList": {
10
+ "0xe9e7cea3dedca5984780bafc599bd69add087d56": {
11
+ "cToken": "0x5511b64ae77452c7130670c79298dec978204a47",
12
+ "exchangeRate": 1.0727907490506678,
13
+ "liquidationThreshold": 0.75,
14
+ "loanToValue": 0.75
15
+ },
16
+ "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d": {
17
+ "cToken": "0xaf9c10b341f55465e8785f0f81dbb52a9bfe005d",
18
+ "exchangeRate": 1.0915276103263118,
19
+ "liquidationThreshold": 0.85,
20
+ "loanToValue": 0.85
21
+ },
22
+ "0x55d398326f99059ff775485246999027b3197955": {
23
+ "cToken": "0x0bf8c72d618b5d46b055165e21d661400008fa0f",
24
+ "exchangeRate": 1.107541263208309,
25
+ "liquidationThreshold": 0.85,
26
+ "loanToValue": 0.85
27
+ },
28
+ "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3": {
29
+ "cToken": "0xad5ec11426970c32da48f58c92b1039bc50e5492",
30
+ "exchangeRate": 1.090369296984632,
31
+ "liquidationThreshold": 0.85,
32
+ "loanToValue": 0.85
33
+ },
34
+ "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623": {
35
+ "cToken": "0xec3fd540a2dee6f479be539d64da593a59e12d08",
36
+ "exchangeRate": 1.023706366745555,
37
+ "liquidationThreshold": 0.6,
38
+ "loanToValue": 0.6
39
+ },
40
+ "0xa05478b34fad86cc86f07eb6698c69ea60b266e3": {
41
+ "cToken": "0xc35acaeedb814f42b2214378d8950f8555b2d670",
42
+ "exchangeRate": 1,
43
+ "liquidationThreshold": 0.8,
44
+ "loanToValue": 0.8
45
+ },
46
+ "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c": {
47
+ "cToken": "0x0b66a250dadf3237ddb38d485082a7bfe400356e",
48
+ "exchangeRate": 1.0008955018668733,
49
+ "liquidationThreshold": 0.8,
50
+ "loanToValue": 0.8
51
+ },
52
+ "0x2170ed0880ac9a755fd29b2688956bd959f933f8": {
53
+ "cToken": "0x390bf37355e9df6ea2e16eed5686886da6f47669",
54
+ "exchangeRate": 1.0180063558704127,
55
+ "liquidationThreshold": 0.8,
56
+ "loanToValue": 0.8
57
+ },
58
+ "0xbf5140a22578168fd562dccf235e5d43a02ce9b1": {
59
+ "cToken": "0xee9099c1318cf960651b3196747640eb84b8806b",
60
+ "exchangeRate": 1.0014743731623101,
61
+ "liquidationThreshold": 0.7,
62
+ "loanToValue": 0.7
63
+ },
64
+ "0x0eb3a705fc54725037cc9e008bdede697f62f335": {
65
+ "cToken": "0x55012ad2f0a50195aef44f403536df2465009ef7",
66
+ "exchangeRate": 1.0253052659477702,
67
+ "liquidationThreshold": 0.7,
68
+ "loanToValue": 0.7
69
+ },
70
+ "0x7083609fce4d1d8dc0c979aab8c869ea2c873402": {
71
+ "cToken": "0x9ab060ba568b86848bf19577226184db6192725b",
72
+ "exchangeRate": 1.0615419244367703,
73
+ "liquidationThreshold": 0.7,
74
+ "loanToValue": 0.7
75
+ },
76
+ "0x0d8ce2a99bb6e3b7db580ed848240e4a0f9ae153": {
77
+ "cToken": "0xd739a569ec254d6a20ecf029f024816be58fb810",
78
+ "exchangeRate": 1.0066415558494175,
79
+ "liquidationThreshold": 0.7,
80
+ "loanToValue": 0.7
81
+ },
82
+ "0x3ee2200efb3400fabb9aacf31297cbdd1d435d47": {
83
+ "cToken": "0xfc5bb1e8c29b100ef8f12773f972477bcab68862",
84
+ "exchangeRate": 1.0138756837775817,
85
+ "liquidationThreshold": 0.7,
86
+ "loanToValue": 0.7
87
+ },
88
+ "0x0000000000000000000000000000000000000000": {
89
+ "cToken": "0xd57e1425837567f74a35d07669b23bfb67aa4a93",
90
+ "exchangeRate": 1.1026774278138651,
91
+ "liquidationThreshold": 0.8,
92
+ "loanToValue": 0.8
93
+ },
94
+ "0xb5102cee1528ce2c760893034a4603663495fd72": {
95
+ "cToken": "0x36f4c36d1f6e8418ecb2402f896b2a8fedde0991",
96
+ "exchangeRate": 1,
97
+ "liquidationThreshold": 0.7,
98
+ "loanToValue": 0.7
99
+ },
100
+ "0x367c17d19fcd0f7746764455497d63c8e8b2bba3": {
101
+ "cToken": "0xb22ef996c0a2d262a19db2a66a256067f51511eb",
102
+ "exchangeRate": 1,
103
+ "liquidationThreshold": 0.7,
104
+ "loanToValue": 0.7
105
+ },
106
+ "0x20ecc92f0a33e16e8cf0417dfc3f586cf597f3a9": {
107
+ "cToken": "0x6e42423e1bcb6a093a58e203b5eb6e8a8023b4e5",
108
+ "exchangeRate": 1,
109
+ "liquidationThreshold": 0.7,
110
+ "loanToValue": 0.7
111
+ },
112
+ "0x463e3d1e01d048fdf872710f7f3745b5cdf50d0e": {
113
+ "cToken": "0x6ac0a0b3959c1e5fcbd09b59b09abf7c53c72346",
114
+ "exchangeRate": 1,
115
+ "liquidationThreshold": 0.7,
116
+ "loanToValue": 0.7
117
+ },
118
+ "0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe": {
119
+ "cToken": "0x6d64effe3af8697336fc57efd5a7517ad526dd6d",
120
+ "exchangeRate": 1.0095313806387172,
121
+ "liquidationThreshold": 0.7,
122
+ "loanToValue": 0.7
123
+ },
124
+ "0x4338665cbb7b2485a8855a139b75d5e34ab0db94": {
125
+ "cToken": "0xd957bea67aadb8a72061ce94d033c631d1c1e6ac",
126
+ "exchangeRate": 1.009766921268889,
127
+ "liquidationThreshold": 0.7,
128
+ "loanToValue": 0.7
129
+ },
130
+ "0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd": {
131
+ "cToken": "0x50e894894809f642de1e11b4076451734c963087",
132
+ "exchangeRate": 1.0113349577900335,
133
+ "liquidationThreshold": 0.7,
134
+ "loanToValue": 0.7
135
+ },
136
+ "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82": {
137
+ "cToken": "0xefae8f7af4bada590d4e707d900258fc72194d73",
138
+ "exchangeRate": 1.3218997732331732,
139
+ "liquidationThreshold": 0.7,
140
+ "loanToValue": 0.7
141
+ },
142
+ "0x8ff795a6f4d97e7887c79bea79aba5cc76444adf": {
143
+ "cToken": "0x9747e26c5ad01d3594ea49ccf00790f564193c15",
144
+ "exchangeRate": 1.086362444236688,
145
+ "liquidationThreshold": 0.7,
146
+ "loanToValue": 0.7
147
+ },
148
+ "0x16939ef78684453bfdfb47825f8a5f714f12623a": {
149
+ "cToken": "0x8be8cd81737b282c909f1911f3f0ade630c335aa",
150
+ "exchangeRate": 1.0046816669180731,
151
+ "liquidationThreshold": 0.7,
152
+ "loanToValue": 0.7
108
153
  }
154
+ },
155
+ "rewardToken": "0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623",
156
+ "type": "LENDING_POOL"
109
157
  }