defi-state-querier 0.5.26__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 +3 -7
  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.26.dist-info → defi_state_querier-0.5.28.dist-info}/METADATA +3 -2
  36. {defi_state_querier-0.5.26.dist-info → defi_state_querier-0.5.28.dist-info}/RECORD +46 -83
  37. {defi_state_querier-0.5.26.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.26.dist-info → defi_state_querier-0.5.28.dist-info/licenses}/LICENSE +0 -0
  83. {defi_state_querier-0.5.26.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
- }
@@ -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
- }