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.
- defi_services/__init__.py +1 -1
- defi_services/constants/chain_constant.py +4 -1
- defi_services/constants/entities/vault_constant.py +5 -0
- defi_services/constants/entities/vault_services.py +24 -0
- defi_services/constants/query_constant.py +1 -0
- defi_services/jobs/processors/state_processor.py +4 -2
- defi_services/services/lending/aave_v2_services.py +1 -1
- defi_services/services/lending/aave_v3_services.py +1 -1
- defi_services/services/lending/apeswap_services.py +5 -2
- defi_services/services/lending/compound_service.py +7 -2
- defi_services/services/lending/compound_v3_services.py +1 -4
- defi_services/services/lending/flux_services.py +6 -5
- defi_services/services/lending/granary_services.py +1 -4
- defi_services/services/lending/iron_bank_service.py +17 -6
- defi_services/services/lending/justlend_service.py +21 -6
- defi_services/services/lending/lending_info/bsc/liqee_bsc.py +154 -106
- defi_services/services/lending/lending_info/ethereum/liqee_eth.py +160 -110
- defi_services/services/lending/liqee_service.py +7 -4
- defi_services/services/lending/morpho_aave_v2_services.py +1 -1
- defi_services/services/lending/morpho_aave_v3_services.py +1 -4
- defi_services/services/lending/morpho_compound_services.py +1 -5
- defi_services/services/lending/onyx_service.py +7 -5
- defi_services/services/lending/radiant_v2_services.py +1 -4
- defi_services/services/lending/silo_services.py +1 -1
- defi_services/services/lending/strike_service.py +7 -2
- defi_services/services/lending/trava_services.py +5 -5
- defi_services/services/lending/uwu_services.py +1 -1
- defi_services/services/lending/valas_services.py +1 -1
- defi_services/services/lending/venus_services.py +28 -16
- defi_services/services/lending/wepiggy_services.py +7 -2
- defi_services/services/protocol_services.py +34 -2
- defi_services/services/vault/__init__.py +0 -0
- defi_services/services/vault/trava_vault_services.py +196 -0
- defi_services/services/vault/vault_info/__init__.py +0 -0
- defi_services/services/vault/vault_info/bsc/__init__.py +0 -0
- defi_services/services/vault/vault_info/bsc/trava_bsc.py +41 -0
- defi_services/services/vault/vault_info/ethereum/__init__.py +0 -0
- defi_services/services/vault/vault_info/ethereum/trava_eth.py +22 -0
- defi_services/services/vault/vault_info/fantom/__init__.py +0 -0
- defi_services/services/vault/vault_info/fantom/trava_ftm.py +31 -0
- defi_services/utils/init_services.py +5 -0
- {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/METADATA +1 -1
- {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/RECORD +46 -37
- defi_services/jobs/queriers/cosmos_state_querier.py +0 -83
- defi_services/services/cosmos_token_services.py +0 -46
- {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/WHEEL +0 -0
- {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
|
+
__version__ = "0.4.3"
|
@@ -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
|
+
}
|
@@ -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
|
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,
|
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,
|
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,
|
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
|
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,
|
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
|
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
|
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
|
-
|
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", [
|
85
|
-
get_reward_id = f"compAccrued_{self.name}_{
|
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(
|
89
|
-
|
90
|
-
get_reward_id = f"compAccrued_{self.name}_{
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
"
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
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
|
}
|