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.
- defi_services/__init__.py +1 -1
- defi_services/constants/chain_constant.py +1 -8
- defi_services/constants/entities/dex_info_constant.py +2 -2
- defi_services/constants/entities/dex_services.py +1 -13
- defi_services/constants/entities/lending_constant.py +5 -11
- defi_services/constants/entities/lending_services.py +4 -31
- defi_services/constants/entities/vault_constant.py +2 -2
- defi_services/constants/entities/vault_services.py +1 -7
- defi_services/constants/network_constants.py +361 -20
- defi_services/constants/token_constant.py +1 -3
- defi_services/jobs/processors/cosmos_state_processor.py +2 -3
- defi_services/jobs/processors/ton_state_processor.py +4 -5
- defi_services/jobs/queriers/call_state_querier.py +0 -2
- defi_services/jobs/queriers/state_querier.py +0 -3
- defi_services/services/dex/dex_info/uniswap_info.py +1 -29
- defi_services/services/dex/uniswap_v3_service.py +2 -6
- defi_services/services/lending/aave_v2_services.py +29 -44
- defi_services/services/lending/aave_v3_services.py +20 -41
- defi_services/services/lending/compound_v3_services.py +5 -9
- defi_services/services/lending/granary_services.py +4 -6
- defi_services/services/lending/justlend_service.py +3 -4
- defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
- defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +6 -96
- defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +140 -1
- defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +5 -180
- defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +5 -35
- defi_services/services/lending/morpho_aave_v2_services.py +3 -3
- defi_services/services/lending/morpho_aave_v3_services.py +2 -2
- defi_services/services/lending/radiant_v2_services.py +10 -52
- defi_services/services/lending/trava_services.py +2 -2
- defi_services/services/lending/uwu_services.py +3 -3
- defi_services/services/lending/valas_services.py +2 -2
- defi_services/services/lending/venus_services.py +3 -9
- defi_services/services/multicall/multicall_v2.py +317 -0
- {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/METADATA +3 -2
- {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/RECORD +46 -83
- {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/WHEEL +1 -1
- defi_services/abis/lending/ionic/__init__.py +0 -0
- defi_services/abis/lending/ionic/ionic_ctoken_abi.py +0 -1108
- defi_services/abis/lending/moonwell/__init__.py +0 -0
- defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +0 -1500
- defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +0 -1431
- defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +0 -817
- defi_services/abis/token/trc20_abi.py +0 -304
- defi_services/abis/vault/tcv_abi.py +0 -1523
- defi_services/jobs/tcv.py +0 -144
- defi_services/services/lending/ionic_service.py +0 -167
- defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +0 -10
- defi_services/services/lending/lending_info/base/__init__.py +0 -0
- defi_services/services/lending/lending_info/base/aave_v3_base.py +0 -61
- defi_services/services/lending/lending_info/base/compound_v3_base.py +0 -116
- defi_services/services/lending/lending_info/base/granary_base.py +0 -62
- defi_services/services/lending/lending_info/base/ionic_base.py +0 -173
- defi_services/services/lending/lending_info/base/moonwell_base.py +0 -89
- defi_services/services/lending/lending_info/base/radiant_v2_base.py +0 -57
- defi_services/services/lending/lending_info/base/sonne_base.py +0 -53
- defi_services/services/lending/lending_info/base/zerolend_base.py +0 -109
- defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +0 -68
- defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +0 -150
- defi_services/services/lending/lending_info/ethereum/radiant_eth.py +0 -69
- defi_services/services/lending/lending_info/ethereum/venus_eth.py +0 -10
- defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +0 -96
- defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +0 -116
- defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +0 -9
- defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
- defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +0 -47
- defi_services/services/lending/lending_info/zksync/venus_zksync.py +0 -10
- defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +0 -138
- defi_services/services/lending/moonwell_service.py +0 -120
- defi_services/services/lending/sonne_service.py +0 -64
- defi_services/services/lending/zerolend_services.py +0 -36
- defi_services/services/vault/tcv_vault_services.py +0 -108
- defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
- defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +0 -58
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/__init__.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/aave_v2_event_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/aave_v2_incentives_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/lending_pool_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/oracle_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/staked_incentives_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forks → aave_v2_and_forlks}/uwu_incentives_abi.py +0 -0
- {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info/licenses}/LICENSE +0 -0
- {defi_state_querier-0.5.27.dist-info → defi_state_querier-0.5.28.dist-info}/top_level.txt +0 -0
defi_services/jobs/tcv.py
DELETED
@@ -1,144 +0,0 @@
|
|
1
|
-
from collections import defaultdict
|
2
|
-
|
3
|
-
from defi_services.constants.entities.dex_constant import Dex
|
4
|
-
from defi_services.constants.query_constant import Query
|
5
|
-
from defi_services.jobs.processors.state_processor import StateProcessor
|
6
|
-
|
7
|
-
|
8
|
-
class TCV:
|
9
|
-
def __init__(self, provider_uri, chain_id):
|
10
|
-
self.state_processor = StateProcessor(provider_uri, chain_id)
|
11
|
-
|
12
|
-
def get_tvl_info(
|
13
|
-
self,
|
14
|
-
address,
|
15
|
-
reserves_info,
|
16
|
-
block_number: int = "latest",
|
17
|
-
):
|
18
|
-
lp_token_dict = {information["pool"]: information["poolInfo"] for information in reserves_info.values()}
|
19
|
-
tcv_liquidity_user, dex_lp_info = self.get_tcv_liquidity_user_and_lp_token_info(
|
20
|
-
wallet=address,
|
21
|
-
dex_protocol=Dex.uniswap_v3, lp_token_list=lp_token_dict,
|
22
|
-
block_number=block_number
|
23
|
-
)
|
24
|
-
|
25
|
-
tcv_nfts = {}
|
26
|
-
for vault_address, liquidity_info in tcv_liquidity_user.items():
|
27
|
-
# For optimize
|
28
|
-
liquidity_user = liquidity_info.get('liquidity_user')
|
29
|
-
if not liquidity_user:
|
30
|
-
liquidity_info.update({'tvl': {}})
|
31
|
-
continue
|
32
|
-
|
33
|
-
vault_nft = self.get_user_nft(vault_address, Dex.uniswap_v3, block_number=block_number)
|
34
|
-
tcv_nfts.update(vault_nft)
|
35
|
-
|
36
|
-
nfts_info = self.get_nfts_info(address, Dex.uniswap_v3, tcv_nfts, block_number=block_number)
|
37
|
-
user_balance = self.get_user_token_balance(address, Dex.uniswap_v3, nfts_info, dex_lp_info, block_number=block_number)
|
38
|
-
|
39
|
-
for token_id, info in user_balance.items():
|
40
|
-
pool_address = info['pool_address']
|
41
|
-
addresses = [vault_address_ for vault_address_, info in reserves_info.items() if info['pool'] == pool_address]
|
42
|
-
vault_address = addresses[0] if addresses else None
|
43
|
-
|
44
|
-
if (not vault_address) or (vault_address not in tcv_liquidity_user):
|
45
|
-
continue
|
46
|
-
|
47
|
-
if tcv_liquidity_user[vault_address].get('tvl') is None:
|
48
|
-
tcv_liquidity_user[vault_address]['tvl'] = defaultdict(lambda: 0)
|
49
|
-
|
50
|
-
tcv_liquidity_user[vault_address]['tvl'][info['token0']] += info['token0_amount']
|
51
|
-
tcv_liquidity_user[vault_address]['tvl'][info['token1']] += info['token1_amount']
|
52
|
-
|
53
|
-
return tcv_liquidity_user
|
54
|
-
|
55
|
-
def get_user_nft(self, wallet, dex_protocol, block_number: int = 'latest'):
|
56
|
-
queries = [
|
57
|
-
{
|
58
|
-
'query_id': f'{dex_protocol}_{Query.dex_user_nft}',
|
59
|
-
"entity_id": dex_protocol,
|
60
|
-
'query_type': Query.dex_user_nft
|
61
|
-
}
|
62
|
-
]
|
63
|
-
|
64
|
-
res = self.state_processor.run(
|
65
|
-
wallet, queries, block_number=block_number,
|
66
|
-
batch_size=100, max_workers=8, ignore_error=True
|
67
|
-
)
|
68
|
-
user_nfts = res[0][Query.dex_user_nft]
|
69
|
-
return user_nfts
|
70
|
-
|
71
|
-
def get_nfts_info(self, wallet, dex_protocol, user_nfts, block_number: int = 'latest'):
|
72
|
-
queries = [
|
73
|
-
{
|
74
|
-
'query_id': f'{dex_protocol}_{Query.dex_user_info}',
|
75
|
-
"entity_id": dex_protocol,
|
76
|
-
'query_type': Query.dex_user_info,
|
77
|
-
'supplied_data': {
|
78
|
-
'user_data': user_nfts,
|
79
|
-
}
|
80
|
-
}
|
81
|
-
]
|
82
|
-
|
83
|
-
res = self.state_processor.run(
|
84
|
-
wallet, queries, block_number=block_number,
|
85
|
-
batch_size=100, max_workers=8, ignore_error=True
|
86
|
-
)
|
87
|
-
nfts_info = res[0][Query.dex_user_info]
|
88
|
-
return nfts_info
|
89
|
-
|
90
|
-
def get_user_token_balance(self, wallet, dex_protocol, nfts_info, lp_token_info, block_number: int = 'latest'):
|
91
|
-
queries = [
|
92
|
-
{
|
93
|
-
'query_id': f'{dex_protocol}_{Query.dex_user_token_balance}',
|
94
|
-
"entity_id": dex_protocol,
|
95
|
-
'query_type': Query.dex_user_token_balance,
|
96
|
-
'supplied_data': {
|
97
|
-
'user_data': nfts_info,
|
98
|
-
'lp_token_info': lp_token_info
|
99
|
-
}
|
100
|
-
}
|
101
|
-
]
|
102
|
-
|
103
|
-
res = self.state_processor.run(
|
104
|
-
wallet, queries, block_number=block_number,
|
105
|
-
batch_size=100, max_workers=8, ignore_error=True
|
106
|
-
)
|
107
|
-
user_balance = res[0][Query.dex_user_token_balance]
|
108
|
-
return user_balance
|
109
|
-
|
110
|
-
def get_tcv_liquidity_user_and_lp_token_info(self, wallet, dex_protocol, lp_token_list, block_number: int = 'latest'):
|
111
|
-
queries = [
|
112
|
-
{
|
113
|
-
"query_id": f"tcv-vault_{Query.staking_reward}",
|
114
|
-
"entity_id": "tcv-vault",
|
115
|
-
"query_type": Query.staking_reward
|
116
|
-
},
|
117
|
-
{
|
118
|
-
'query_id': f'{dex_protocol}_{Query.lp_token_info}',
|
119
|
-
"entity_id": dex_protocol,
|
120
|
-
'query_type': Query.lp_token_info,
|
121
|
-
'supplied_data': {
|
122
|
-
'lp_token_info': lp_token_list
|
123
|
-
}
|
124
|
-
},
|
125
|
-
# {
|
126
|
-
# 'query_id': f'{dex_protocol}_{Query.token_pair_balance}',
|
127
|
-
# "entity_id": dex_protocol,
|
128
|
-
# 'query_type': Query.token_pair_balance,
|
129
|
-
# 'supplied_data': {
|
130
|
-
# 'lp_token_info': lp_token_list
|
131
|
-
# }
|
132
|
-
# }
|
133
|
-
]
|
134
|
-
res = self.state_processor.run(
|
135
|
-
address=wallet, queries=queries,
|
136
|
-
block_number=block_number,
|
137
|
-
batch_size=100, max_workers=8,
|
138
|
-
ignore_error=True
|
139
|
-
)
|
140
|
-
data = {r['query_id']: r for r in res}
|
141
|
-
|
142
|
-
tcv_liquidity_user = data.get(f'tcv-vault_{Query.staking_reward}', {}).get(Query.staking_reward)
|
143
|
-
lp_token_info = data.get(f'{dex_protocol}_{Query.lp_token_info}', {}).get(Query.lp_token_info)
|
144
|
-
return tcv_liquidity_user, lp_token_info
|
@@ -1,167 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
|
3
|
-
from web3 import Web3
|
4
|
-
|
5
|
-
from defi_services.abis.lending.ionic.ionic_ctoken_abi import IONIC_CTOKEN_ABI
|
6
|
-
from defi_services.abis.lending.moonwell.moonwell_comptroller_abi import MOONWELL_COMPTROLLER_ABI
|
7
|
-
from defi_services.abis.token.erc20_abi import ERC20_ABI
|
8
|
-
from defi_services.constants.chain_constant import Chain
|
9
|
-
from defi_services.constants.entities.lending_constant import Lending
|
10
|
-
from defi_services.constants.token_constant import Token
|
11
|
-
from defi_services.jobs.queriers.state_querier import StateQuerier
|
12
|
-
from defi_services.services.lending.lending_info.base.ionic_base import IONIC_BASE
|
13
|
-
from defi_services.services.lending.venus_services import VenusStateService
|
14
|
-
|
15
|
-
logger = logging.getLogger("Ionic Lending Pool State Service")
|
16
|
-
|
17
|
-
|
18
|
-
class IonicInfo:
|
19
|
-
mapping = {
|
20
|
-
Chain.base: IONIC_BASE
|
21
|
-
}
|
22
|
-
|
23
|
-
|
24
|
-
class IonicStateService(VenusStateService):
|
25
|
-
def __init__(self, state_service: StateQuerier, chain_id: str = "0x38"):
|
26
|
-
super().__init__(state_service, chain_id)
|
27
|
-
self.name = f"{chain_id}_{Lending.ionic}"
|
28
|
-
self.chain_id = chain_id
|
29
|
-
self.pool_info = IonicInfo.mapping.get(chain_id)
|
30
|
-
self.state_service = state_service
|
31
|
-
self.comptroller_abi = MOONWELL_COMPTROLLER_ABI
|
32
|
-
self.vtoken_abi = IONIC_CTOKEN_ABI
|
33
|
-
|
34
|
-
def get_service_info(self):
|
35
|
-
info = {
|
36
|
-
Lending.ionic: {
|
37
|
-
"chain_id": self.chain_id,
|
38
|
-
"type": "lending",
|
39
|
-
"protocol_info": self.pool_info
|
40
|
-
}
|
41
|
-
}
|
42
|
-
return info
|
43
|
-
|
44
|
-
def get_dapp_asset_info(self, block_number: int = "latest"):
|
45
|
-
_w3 = self.state_service.get_w3()
|
46
|
-
comptroller_contract = _w3.eth.contract(
|
47
|
-
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
48
|
-
ctokens = []
|
49
|
-
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
50
|
-
ctokens.append(token)
|
51
|
-
|
52
|
-
reserves_info = {}
|
53
|
-
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
54
|
-
queries = {}
|
55
|
-
for token in tokens:
|
56
|
-
key = f"underlying_{token}_{block_number}".lower()
|
57
|
-
queries[key] = {
|
58
|
-
"address": token, "abi": self.vtoken_abi, "params": [],
|
59
|
-
"function": "underlying", "block_number": block_number
|
60
|
-
}
|
61
|
-
|
62
|
-
exchange_rate_query_id = f'exchangeRateCurrent_{token}_{block_number}'
|
63
|
-
queries[exchange_rate_query_id] = self.get_ctoken_function_info(
|
64
|
-
ctoken=token, fn_name='exchangeRateCurrent', block_number=block_number)
|
65
|
-
|
66
|
-
markets = f"markets_{token}_{block_number}".lower()
|
67
|
-
queries[markets] = self.get_comptroller_function_info("markets", [token])
|
68
|
-
|
69
|
-
decoded_data = self.state_service.query_state_data(queries)
|
70
|
-
for token in tokens:
|
71
|
-
key = f"underlying_{token}_{block_number}".lower()
|
72
|
-
underlying = decoded_data.get(key).lower()
|
73
|
-
markets = f"markets_{token}_{block_number}".lower()
|
74
|
-
liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
|
75
|
-
ltv = liquidation_threshold
|
76
|
-
|
77
|
-
exchange_rate_query_id = f'exchangeRateCurrent_{token}_{block_number}'
|
78
|
-
exchange_rate = decoded_data.get(exchange_rate_query_id) / 10 ** 18
|
79
|
-
|
80
|
-
reserves_info[underlying] = {
|
81
|
-
'cToken': token.lower(),
|
82
|
-
"exchangeRate": exchange_rate,
|
83
|
-
"liquidationThreshold": liquidation_threshold,
|
84
|
-
"loanToValue": ltv
|
85
|
-
}
|
86
|
-
return reserves_info
|
87
|
-
|
88
|
-
def get_apy_lending_pool_function_info(
|
89
|
-
self,
|
90
|
-
reserves_info: dict,
|
91
|
-
block_number: int = "latest"
|
92
|
-
):
|
93
|
-
rpc_calls = {}
|
94
|
-
for token_address, reserve_info in reserves_info.items():
|
95
|
-
if token_address != Token.native_token:
|
96
|
-
query_id = f"decimals_{token_address}_{block_number}".lower()
|
97
|
-
rpc_calls[query_id] = self.state_service.get_function_info(token_address, ERC20_ABI, "decimals", [], block_number)
|
98
|
-
|
99
|
-
ctoken = reserve_info.get("cToken")
|
100
|
-
for fn_name in ['decimals', 'totalSupply', 'totalBorrows', 'supplyRatePerBlock', 'borrowRatePerBlock', 'exchangeRateCurrent']:
|
101
|
-
query_id = f"{fn_name}_{ctoken}_{block_number}".lower()
|
102
|
-
rpc_calls[query_id] = self.get_ctoken_function_info(
|
103
|
-
ctoken=ctoken,
|
104
|
-
fn_name=fn_name,
|
105
|
-
block_number=block_number
|
106
|
-
)
|
107
|
-
|
108
|
-
return rpc_calls
|
109
|
-
|
110
|
-
def get_reserve_tokens_metadata(
|
111
|
-
self,
|
112
|
-
decoded_data: dict,
|
113
|
-
reserves_info: dict,
|
114
|
-
block_number: int = "latest"
|
115
|
-
):
|
116
|
-
reserve_tokens_info = []
|
117
|
-
for token_address, reserve_info in reserves_info.items():
|
118
|
-
if token_address != Token.native_token:
|
119
|
-
underlying_decimals_query_id = f"decimals_{token_address}_{block_number}".lower()
|
120
|
-
underlying_decimals = decoded_data.get(underlying_decimals_query_id)
|
121
|
-
else:
|
122
|
-
underlying_decimals = Chain.native_decimals.get(self.chain_id, 18)
|
123
|
-
|
124
|
-
ctoken = reserve_info.get("cToken")
|
125
|
-
ctoken_decimals_query_id = f"decimals_{ctoken}_{block_number}".lower()
|
126
|
-
total_supply_query_id = f"totalSupply_{ctoken}_{block_number}".lower()
|
127
|
-
total_borrow_query_id = f"totalBorrows_{ctoken}_{block_number}".lower()
|
128
|
-
supply_rate_query_id = f"supplyRatePerBlock_{ctoken}_{block_number}".lower()
|
129
|
-
borrow_rate_query_id = f"borrowRatePerBlock_{ctoken}_{block_number}".lower()
|
130
|
-
exchange_rate_query_id = f"exchangeRateCurrent_{ctoken}_{block_number}".lower()
|
131
|
-
|
132
|
-
reserve_tokens_info.append({
|
133
|
-
"token": ctoken,
|
134
|
-
"token_decimals": decoded_data.get(ctoken_decimals_query_id),
|
135
|
-
"borrow_rate": decoded_data.get(borrow_rate_query_id),
|
136
|
-
"supply_rate": decoded_data.get(supply_rate_query_id),
|
137
|
-
"supply": decoded_data.get(total_supply_query_id),
|
138
|
-
"borrow": decoded_data.get(total_borrow_query_id),
|
139
|
-
"exchange_rate": decoded_data.get(exchange_rate_query_id),
|
140
|
-
"underlying_decimals": underlying_decimals,
|
141
|
-
"underlying": token_address
|
142
|
-
})
|
143
|
-
return reserve_tokens_info
|
144
|
-
|
145
|
-
@classmethod
|
146
|
-
def _calculate_interest_rates(
|
147
|
-
cls, token_info: dict, pool_decimals: int, apx_block_speed_in_seconds: float):
|
148
|
-
block_per_day = int(86400 / apx_block_speed_in_seconds)
|
149
|
-
exchange_rate = float(token_info["exchange_rate"]) / 10 ** 18
|
150
|
-
|
151
|
-
total_borrow = float(token_info["borrow"]) / 10 ** int(token_info["underlying_decimals"])
|
152
|
-
total_supply = float(token_info["supply"]) * exchange_rate / 10 ** int(token_info["token_decimals"])
|
153
|
-
|
154
|
-
supply_apy = ((token_info["supply_rate"] / 10 ** pool_decimals) * block_per_day + 1) ** 365 - 1
|
155
|
-
borrow_apy = ((token_info["borrow_rate"] / 10 ** pool_decimals) * block_per_day + 1) ** 365 - 1
|
156
|
-
|
157
|
-
return {
|
158
|
-
'deposit_apy': supply_apy,
|
159
|
-
'borrow_apy': borrow_apy,
|
160
|
-
'total_deposit': total_supply,
|
161
|
-
'total_borrow': total_borrow
|
162
|
-
}
|
163
|
-
|
164
|
-
def get_ctoken_function_info(self, ctoken: str, fn_name: str, fn_paras: list = None, block_number: int = "latest"):
|
165
|
-
return self.state_service.get_function_info(
|
166
|
-
ctoken, self.vtoken_abi, fn_name, fn_paras, block_number
|
167
|
-
)
|
@@ -1,10 +0,0 @@
|
|
1
|
-
VENUS_ARB = {
|
2
|
-
"projectName": "Venus",
|
3
|
-
"name": "Venus Lending Pool",
|
4
|
-
"rewardToken": "0xc1eb7689147c81ac840d4ff0d298489fc7986d52",
|
5
|
-
"comptrollerAddress": "",
|
6
|
-
"lensAddress": "",
|
7
|
-
"poolToken": "0xc1eb7689147c81ac840d4ff0d298489fc7986d52",
|
8
|
-
"type": "LENDING_POOL",
|
9
|
-
"forked": "compound",
|
10
|
-
}
|
File without changes
|
@@ -1,61 +0,0 @@
|
|
1
|
-
AAVE_V3_BASE = {
|
2
|
-
"address": "0xa238dd80c259a72e81d7e4664a9801593f98d1c5",
|
3
|
-
"name": "AAVE Lending Pool",
|
4
|
-
"stakedIncentiveAddress": '0xf9cc4f0d883f1a1eb2c253bdb46c254ca51e1f44',
|
5
|
-
"oracleAddress": "0x2cc0fc26ed4563a5ce5e8bdcfe1a2878676ae156",
|
6
|
-
"rewardTokensList": ['0x4e65fe4dba92790696d040ac24aa414708f5c0ab'],
|
7
|
-
"type": "LENDING_POOL",
|
8
|
-
"poolToken": "0x4e65fe4dba92790696d040ac24aa414708f5c0ab",
|
9
|
-
"forked": "aave-v3",
|
10
|
-
"reservesList": {
|
11
|
-
"0x4200000000000000000000000000000000000006": {
|
12
|
-
"tToken": "0xd4a0e0b9149bcee3c920d2e00b5de09138fd8bb7",
|
13
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
14
|
-
"dToken": "0x24e6e0795b3c7c71d965fcc4f371803d1c1dca1e",
|
15
|
-
"loanToValue": 0.8,
|
16
|
-
"liquidationThreshold": 0.83
|
17
|
-
},
|
18
|
-
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": {
|
19
|
-
"tToken": "0xcf3d55c10db69f28fd1a75bd73f3d8a2d9c595ad",
|
20
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
21
|
-
"dToken": "0x1dabc36f19909425f654777249815c073e8fd79f",
|
22
|
-
"loanToValue": 0.75,
|
23
|
-
"liquidationThreshold": 0.79
|
24
|
-
},
|
25
|
-
"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": {
|
26
|
-
"tToken": "0x0a1d576f3efef75b330424287a95a366e8281d54",
|
27
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
28
|
-
"dToken": "0x7376b2f323dc56fcd4c191b34163ac8a84702dab",
|
29
|
-
"loanToValue": 0.75,
|
30
|
-
"liquidationThreshold": 0.78
|
31
|
-
},
|
32
|
-
"0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": {
|
33
|
-
"tToken": "0x99cbc45ea5bb7ef3a5bc08fb1b7e56bb2442ef0d",
|
34
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
35
|
-
"dToken": "0x41a7c3f5904ad176dacbb1d99101f59ef0811dc1",
|
36
|
-
"loanToValue": 0.75,
|
37
|
-
"liquidationThreshold": 0.79
|
38
|
-
},
|
39
|
-
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
40
|
-
"tToken": "0x4e65fe4dba92790696d040ac24aa414708f5c0ab",
|
41
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
42
|
-
"dToken": "0x59dca05b6c26dbd64b5381374aaac5cd05644c28",
|
43
|
-
"loanToValue": 0.75,
|
44
|
-
"liquidationThreshold": 0.78
|
45
|
-
},
|
46
|
-
"0x04c0599ae5a44757c0af6f9ec3b93da8976c150a": {
|
47
|
-
"tToken": "0x7c307e128efa31f540f2e2d976c995e0b65f51f6",
|
48
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
49
|
-
"dToken": "0x8d2e3f1f4b38aa9f1ced22ac06019c7561b03901",
|
50
|
-
"loanToValue": 0.725,
|
51
|
-
"liquidationThreshold": 0.75
|
52
|
-
},
|
53
|
-
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": {
|
54
|
-
"tToken": "0xbdb9300b7cde636d9cd4aff00f6f009ffbbc8ee6",
|
55
|
-
"sdToken": "0xaed3b56fea82e809665f02acbcdec0816c75f4d9",
|
56
|
-
"dToken": "0x05e08702028de6aad395dc6478b554a56920b9ad",
|
57
|
-
"loanToValue": 0.73,
|
58
|
-
"liquidationThreshold": 0.78
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
@@ -1,116 +0,0 @@
|
|
1
|
-
COMPOUND_V3_BASE = {
|
2
|
-
"name": "Compound V3 Lending Pool",
|
3
|
-
"rewardToken": "0x9e1028f5f1d5ede59748ffcee5532509976840e0",
|
4
|
-
"rewardAddress": "0x123964802e6ababbe1bc9547d72ef1b69b00a6b1",
|
5
|
-
"factoryAddress": "0x27c348936400791b7350d80fb81bc61ad68df4ae",
|
6
|
-
"poolToken": "0x9e1028f5f1d5ede59748ffcee5532509976840e0",
|
7
|
-
"type": "LENDING_POOL",
|
8
|
-
"forked": "compound-v3",
|
9
|
-
"reservesList": {
|
10
|
-
"0x940181a94a35a4569e4529a3cdfb74e38fd98631": {
|
11
|
-
"comet": "0x784efeb622244d2348d4f2522f8860b96fbece89",
|
12
|
-
"assets": {
|
13
|
-
"0x4200000000000000000000000000000000000006": {
|
14
|
-
"priceFeed": "0x2c7118c4c88b9841fcf839074c26ae8f035f2921",
|
15
|
-
"loanToValue": 0.6,
|
16
|
-
"liquidationThreshold": 0.65
|
17
|
-
},
|
18
|
-
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
19
|
-
"priceFeed": "0x970ffd8e335b8fa4cd5c869c7cac3a90671d5dc3",
|
20
|
-
"loanToValue": 0.65,
|
21
|
-
"liquidationThreshold": 0.7
|
22
|
-
},
|
23
|
-
"0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": {
|
24
|
-
"priceFeed": "0x5404872d8f2e24b230ec9b9ec64e3855f637fb93",
|
25
|
-
"loanToValue": 0.6,
|
26
|
-
"liquidationThreshold": 0.65
|
27
|
-
},
|
28
|
-
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": {
|
29
|
-
"priceFeed": "0x8df378453ff9deffa513367cdf9b3b53726303e9",
|
30
|
-
"loanToValue": 0.6,
|
31
|
-
"liquidationThreshold": 0.65
|
32
|
-
}
|
33
|
-
}
|
34
|
-
},
|
35
|
-
"0x4200000000000000000000000000000000000006": {
|
36
|
-
"comet": "0x46e6b214b524310239732d51387075e0e70970bf",
|
37
|
-
"assets": {
|
38
|
-
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": {
|
39
|
-
"priceFeed": "0x59e242d352ae13166b4987ae5c990c232f7f7cd6",
|
40
|
-
"loanToValue": 0.9,
|
41
|
-
"liquidationThreshold": 0.93
|
42
|
-
},
|
43
|
-
"0x2416092f143378750bb29b79ed961ab195cceea5": {
|
44
|
-
"priceFeed": "0x72874cfe957bb47795548e5a9fd740d135ba5e45",
|
45
|
-
"loanToValue": 0.88,
|
46
|
-
"liquidationThreshold": 0.91
|
47
|
-
},
|
48
|
-
"0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": {
|
49
|
-
"priceFeed": "0x1f71901daf98d70b4baf40de080321e5c2676856",
|
50
|
-
"loanToValue": 0.9,
|
51
|
-
"liquidationThreshold": 0.93
|
52
|
-
},
|
53
|
-
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
54
|
-
"priceFeed": "0x2f4eaf29dfeef4654bd091f7112926e108ef4ed0",
|
55
|
-
"loanToValue": 0.8,
|
56
|
-
"liquidationThreshold": 0.85
|
57
|
-
},
|
58
|
-
"0x04c0599ae5a44757c0af6f9ec3b93da8976c150a": {
|
59
|
-
"priceFeed": "0x841e380e3a98e4ee8912046d69731f4e21efb1d7",
|
60
|
-
"loanToValue": 0.9,
|
61
|
-
"liquidationThreshold": 0.93
|
62
|
-
},
|
63
|
-
"0xedfa23602d0ec14714057867a78d01e94176bea0": {
|
64
|
-
"priceFeed": "0xaeb318360f27748acb200ce616e389a6c9409a07",
|
65
|
-
"loanToValue": 0.88,
|
66
|
-
"liquidationThreshold": 0.91
|
67
|
-
},
|
68
|
-
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": {
|
69
|
-
"priceFeed": "0x4cfce7795bf75dc3795369a953d9a9b8c2679ae4",
|
70
|
-
"loanToValue": 0.8,
|
71
|
-
"liquidationThreshold": 0.85
|
72
|
-
}
|
73
|
-
}
|
74
|
-
},
|
75
|
-
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
76
|
-
"comet": "0xb125e6687d4313864e53df431d5425969c15eb2f",
|
77
|
-
"assets": {
|
78
|
-
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": {
|
79
|
-
"priceFeed": "0x4687670f5f01716faa382e2356c103bad776752c",
|
80
|
-
"loanToValue": 0.8,
|
81
|
-
"liquidationThreshold": 0.85
|
82
|
-
},
|
83
|
-
"0x4200000000000000000000000000000000000006": {
|
84
|
-
"priceFeed": "0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70",
|
85
|
-
"loanToValue": 0.85,
|
86
|
-
"liquidationThreshold": 0.9
|
87
|
-
},
|
88
|
-
"0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": {
|
89
|
-
"priceFeed": "0x4b5dee60531a72c1264319ec6a22678a4d0c8118",
|
90
|
-
"loanToValue": 0.8,
|
91
|
-
"liquidationThreshold": 0.85
|
92
|
-
},
|
93
|
-
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": {
|
94
|
-
"priceFeed": "0x8d38a3d6b3c3b7d96d6536da7eef94a9d7dbc991",
|
95
|
-
"loanToValue": 0.8,
|
96
|
-
"liquidationThreshold": 0.85
|
97
|
-
}
|
98
|
-
}
|
99
|
-
},
|
100
|
-
"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": {
|
101
|
-
"comet": "0x9c4ec768c28520b50860ea7a15bd7213a9ff58bf",
|
102
|
-
"assets": {
|
103
|
-
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": {
|
104
|
-
"priceFeed": "0x4687670f5f01716faa382e2356c103bad776752c",
|
105
|
-
"loanToValue": 0.65,
|
106
|
-
"liquidationThreshold": 0.7
|
107
|
-
},
|
108
|
-
"0x4200000000000000000000000000000000000006": {
|
109
|
-
"priceFeed": "0x71041dddad3595f9ced3dccfbe3d1f4b0a16bb70",
|
110
|
-
"loanToValue": 0.69,
|
111
|
-
"liquidationThreshold": 0.74
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
}
|
116
|
-
}
|
@@ -1,62 +0,0 @@
|
|
1
|
-
GRANARY_BASE = {
|
2
|
-
"address": "0xb702ce183b4e1faa574834715e5d4a6378d0eed3",
|
3
|
-
"name": "Granary Finance Lending Pool",
|
4
|
-
"rewardToken": [],
|
5
|
-
"rewarder": "0xc043ba54f34c9fb3a0b45d22e2ef1f171272bc9d",
|
6
|
-
"stakedIncentiveAddress": "",
|
7
|
-
"poolToken": "",
|
8
|
-
"oracleAddress": "0x5a3423210536d930150080f699248edebc65e2b4",
|
9
|
-
"type": "LENDING_POOL",
|
10
|
-
"forked": "aave-v2",
|
11
|
-
"reservesList": {
|
12
|
-
"0x50c5725949a6f0c72e6c4a641f24049a917db0cb": {
|
13
|
-
"tToken": "0xe7334ad0e325139329e747cf2fc24538dd564987",
|
14
|
-
"dToken": "0xe5415fa763489c813694d7a79d133f0a7363310c",
|
15
|
-
"sdToken": "0xc40709470139657e6d80249c5cc998efb44898c9",
|
16
|
-
"loanToValue": 0.7,
|
17
|
-
"liquidationThreshold": 0.75
|
18
|
-
},
|
19
|
-
"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": {
|
20
|
-
"tToken": "0x02cd18c03b5b3f250d2b29c87949cdab4ee11488",
|
21
|
-
"dToken": "0xbce07537df8ad5519c1d65e902e10aa48af83d88",
|
22
|
-
"sdToken": "0x73c177510cb7b5c6a7c770376fc6ebd29ef9e1a7",
|
23
|
-
"loanToValue": 0.8,
|
24
|
-
"liquidationThreshold": 0.85
|
25
|
-
},
|
26
|
-
"0x4200000000000000000000000000000000000006": {
|
27
|
-
"tToken": "0x9c29a8ec901dbec4fff165cd57d4f9e03d4838f7",
|
28
|
-
"dToken": "0x06d38c309d1dc541a23b0025b35d163c25754288",
|
29
|
-
"sdToken": "0x6f66c5c5e2ff94929582eabfc19051f19ed9eb70",
|
30
|
-
"loanToValue": 0.8,
|
31
|
-
"liquidationThreshold": 0.85
|
32
|
-
},
|
33
|
-
"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": {
|
34
|
-
"tToken": "0x272cfccefbefbe1518cd87002a8f9dfd8845a6c4",
|
35
|
-
"dToken": "0x5eea43129024eee861481f32c2541b12ddd44c08",
|
36
|
-
"sdToken": "0x09ab5ca2d537b81520f78474d6ed43675451a7f8",
|
37
|
-
"loanToValue": 0.7,
|
38
|
-
"liquidationThreshold": 0.75
|
39
|
-
},
|
40
|
-
"0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": {
|
41
|
-
"tToken": "0x58254000ee8127288387b04ce70292b56098d55c",
|
42
|
-
"dToken": "0x05249f9ba88f7d98fe21a8f3c460f4746689aea5",
|
43
|
-
"sdToken": "0xc73ac4d26025622167a2bc67c93a855c1c6bdb24",
|
44
|
-
"loanToValue": 0.865,
|
45
|
-
"liquidationThreshold": 0.9
|
46
|
-
},
|
47
|
-
"0x940181a94a35a4569e4529a3cdfb74e38fd98631": {
|
48
|
-
"tToken": "0xe3f709397e87032e61f4248f53ee5c9a9abb6440",
|
49
|
-
"dToken": "0x083e519e76fe7e68c15a6163279eaaf87e2addae",
|
50
|
-
"sdToken": "0x383995fd2e86a2e067ffb31674aa0d1b370b39bd",
|
51
|
-
"loanToValue": 0.7,
|
52
|
-
"liquidationThreshold": 0.75
|
53
|
-
},
|
54
|
-
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
55
|
-
"tToken": "0xc17312076f48764d6b4d263efdd5a30833e311dc",
|
56
|
-
"dToken": "0x3f332f38926b809670b3cac52df67706856a1555",
|
57
|
-
"sdToken": "0x5183adca8472b7c999c310e4d5aaab04ad12e252",
|
58
|
-
"loanToValue": 0.85,
|
59
|
-
"liquidationThreshold": 0.9
|
60
|
-
}
|
61
|
-
}
|
62
|
-
}
|