defi-state-querier 0.5.28__py3-none-any.whl → 0.5.29__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 (84) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/abis/lending/ionic/__init__.py +0 -0
  3. defi_services/abis/lending/ionic/ionic_ctoken_abi.py +1108 -0
  4. defi_services/abis/lending/moonwell/__init__.py +0 -0
  5. defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +1500 -0
  6. defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +1431 -0
  7. defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +817 -0
  8. defi_services/abis/token/trc20_abi.py +304 -0
  9. defi_services/abis/vault/tcv_abi.py +1523 -0
  10. defi_services/constants/chain_constant.py +8 -1
  11. defi_services/constants/entities/dex_info_constant.py +2 -2
  12. defi_services/constants/entities/dex_services.py +13 -1
  13. defi_services/constants/entities/lending_constant.py +11 -5
  14. defi_services/constants/entities/lending_services.py +31 -4
  15. defi_services/constants/entities/vault_constant.py +2 -2
  16. defi_services/constants/entities/vault_services.py +7 -1
  17. defi_services/constants/network_constants.py +20 -361
  18. defi_services/constants/token_constant.py +3 -1
  19. defi_services/jobs/processors/cosmos_state_processor.py +3 -2
  20. defi_services/jobs/processors/ton_state_processor.py +5 -4
  21. defi_services/jobs/queriers/call_state_querier.py +2 -0
  22. defi_services/jobs/queriers/state_querier.py +3 -0
  23. defi_services/jobs/tcv.py +144 -0
  24. defi_services/services/dex/dex_info/uniswap_info.py +29 -1
  25. defi_services/services/dex/uniswap_v3_service.py +6 -2
  26. defi_services/services/lending/aave_v2_services.py +44 -29
  27. defi_services/services/lending/aave_v3_services.py +41 -20
  28. defi_services/services/lending/compound_v3_services.py +9 -5
  29. defi_services/services/lending/granary_services.py +6 -4
  30. defi_services/services/lending/ionic_service.py +167 -0
  31. defi_services/services/lending/justlend_service.py +4 -3
  32. defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
  33. defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +96 -6
  34. defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +10 -0
  35. defi_services/services/lending/lending_info/base/__init__.py +0 -0
  36. defi_services/services/lending/lending_info/base/aave_v3_base.py +61 -0
  37. defi_services/services/lending/lending_info/base/compound_v3_base.py +116 -0
  38. defi_services/services/lending/lending_info/base/granary_base.py +62 -0
  39. defi_services/services/lending/lending_info/base/ionic_base.py +173 -0
  40. defi_services/services/lending/lending_info/base/moonwell_base.py +89 -0
  41. defi_services/services/lending/lending_info/base/radiant_v2_base.py +57 -0
  42. defi_services/services/lending/lending_info/base/sonne_base.py +53 -0
  43. defi_services/services/lending/lending_info/base/zerolend_base.py +109 -0
  44. defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +68 -0
  45. defi_services/services/lending/lending_info/bsc/apeswap_bsc.py +1 -1
  46. defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +1 -140
  47. defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +180 -5
  48. defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +150 -0
  49. defi_services/services/lending/lending_info/ethereum/radiant_eth.py +69 -0
  50. defi_services/services/lending/lending_info/ethereum/venus_eth.py +10 -0
  51. defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +96 -0
  52. defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +116 -0
  53. defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +9 -0
  54. defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +35 -5
  55. defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
  56. defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +47 -0
  57. defi_services/services/lending/lending_info/zksync/venus_zksync.py +10 -0
  58. defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +138 -0
  59. defi_services/services/lending/moonwell_service.py +120 -0
  60. defi_services/services/lending/morpho_aave_v2_services.py +3 -3
  61. defi_services/services/lending/morpho_aave_v3_services.py +2 -2
  62. defi_services/services/lending/radiant_v2_services.py +52 -10
  63. defi_services/services/lending/sonne_service.py +64 -0
  64. defi_services/services/lending/trava_services.py +2 -2
  65. defi_services/services/lending/uwu_services.py +3 -3
  66. defi_services/services/lending/valas_services.py +2 -2
  67. defi_services/services/lending/venus_services.py +9 -3
  68. defi_services/services/lending/zerolend_services.py +36 -0
  69. defi_services/services/multicall/multicall_v2.py +0 -317
  70. defi_services/services/vault/tcv_vault_services.py +108 -0
  71. defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
  72. defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +58 -0
  73. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/METADATA +1 -1
  74. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/RECORD +84 -47
  75. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/__init__.py +0 -0
  76. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_event_abi.py +0 -0
  77. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_incentives_abi.py +0 -0
  78. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/lending_pool_abi.py +0 -0
  79. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/oracle_abi.py +0 -0
  80. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/staked_incentives_abi.py +0 -0
  81. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/uwu_incentives_abi.py +0 -0
  82. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/WHEEL +0 -0
  83. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/licenses/LICENSE +0 -0
  84. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,167 @@
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
+ )
@@ -2,7 +2,7 @@ from web3 import Web3
2
2
 
3
3
  from defi_services.abis.lending.justlend.just_token_abi import JUST_TOKEN_ABI
4
4
  from defi_services.abis.lending.justlend.justlend_comptroller_abi import JUSTLEND_COMPTROLLER_ABI
5
- from defi_services.abis.token.erc20_abi import ERC20_ABI
5
+ from defi_services.abis.token.trc20_abi import TRC20_ABI
6
6
  from defi_services.constants.chain_constant import Chain
7
7
  from defi_services.constants.entities.lending_constant import Lending
8
8
  from defi_services.constants.token_constant import Token
@@ -74,8 +74,9 @@ class JustLendStateService(CompoundStateService):
74
74
  liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
75
75
 
76
76
  if underlying != Token.native_token:
77
- underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=ERC20_ABI)
77
+ underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=TRC20_ABI)
78
78
  underlying_decimal = underlying_contract.functions.decimals().call()
79
+
79
80
  else:
80
81
  underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
81
82
  exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
@@ -139,7 +140,7 @@ class JustLendStateService(CompoundStateService):
139
140
  rpc_calls[underlying_balance_key] = self.get_ctoken_function_info(
140
141
  ctoken, "balanceOfUnderlying", [wallet])
141
142
  rpc_calls[underlying_decimals_key] = self.state_service.get_function_info(
142
- underlying, ERC20_ABI, "decimals", []
143
+ underlying, TRC20_ABI, "decimals", []
143
144
  )
144
145
 
145
146
  return rpc_calls
@@ -1,6 +1,6 @@
1
1
  AAVE_V3_ARB = {
2
2
  "address": "0x794a61358d6845594f94dc1db02a252b5b4814ad",
3
- "name": "Radiant Lending Pool",
3
+ "name": "AAVE Lending Pool",
4
4
  "stakedIncentiveAddress": '0x929ec64c34a17401f460460d4b9390518e5b473e',
5
5
  "oracleAddress": "0xb56c2F0B653B2e0b10C9b928C8580Ac5Df02C7C7",
6
6
  "rewardTokensList": [],
@@ -37,23 +37,113 @@ COMPOUND_V3_ARBITRUM = {
37
37
  "assets": {
38
38
  "0x912ce59144191c1204e64559fe8253a0e49e6548": {
39
39
  "priceFeed": "0xb2a824043730fe05f3da2efafa1cbbe83fa548d6",
40
- "loanToValue": 0.55,
41
- "liquidationThreshold": 0.6
40
+ "loanToValue": 0.7,
41
+ "liquidationThreshold": 0.8
42
42
  },
43
43
  "0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a": {
44
44
  "priceFeed": "0xdb98056fecfff59d032ab628337a4887110df3db",
45
- "loanToValue": 0.4,
46
- "liquidationThreshold": 0.45
45
+ "loanToValue": 0.6,
46
+ "liquidationThreshold": 0.75
47
47
  },
48
48
  "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
49
49
  "priceFeed": "0x639fe6ab55c921f74e7fac1ee960c0b6293ba612",
50
- "loanToValue": 0.78,
50
+ "loanToValue": 0.83,
51
+ "liquidationThreshold": 0.9
52
+ },
53
+ "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
54
+ "priceFeed": "0xd0c7101eacbb49f3decccc166d238410d6d46d57",
55
+ "loanToValue": 0.75,
56
+ "liquidationThreshold": 0.85
57
+ },
58
+ "0x5979d7b546e38e414f7e9822514be443a4800529": {
59
+ "priceFeed": "0xe165155c34fe4cbfc55fc554437907bdb1af7e3e",
60
+ "loanToValue": 0.8,
61
+ "liquidationThreshold": 0.85
62
+ },
63
+ "0x2416092f143378750bb29b79ed961ab195cceea5": {
64
+ "priceFeed": "0xc49399814452b41da8a7cd76a159f5515cb3e493",
65
+ "loanToValue": 0.8,
66
+ "liquidationThreshold": 0.85
67
+ },
68
+ "0x57f5e098cad7a3d1eed53991d4d66c45c9af7812": {
69
+ "priceFeed": "0x13cdfb7db5e2f58e122b2e789b59de13645349c4",
70
+ "loanToValue": 0.88,
71
+ "liquidationThreshold": 0.9
72
+ }
73
+ }
74
+ },
75
+ "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
76
+ "comet": "0x6f7d514bbd4aff3bcd1140b7344b32f063dee486",
77
+ "assets": {
78
+ "0x35751007a407ca6feffe80b3cb397736d2cf4dbe": {
79
+ "priceFeed": "0xd3cf278f135d9831d2bf28f6672a4575906ca724",
80
+ "loanToValue": 0.9,
81
+ "liquidationThreshold": 0.93
82
+ },
83
+ "0xec70dcb4a1efa46b8f2d97c310c9c4790ba5ffa8": {
84
+ "priceFeed": "0x970ffd8e335b8fa4cd5c869c7cac3a90671d5dc3",
85
+ "loanToValue": 0.9,
86
+ "liquidationThreshold": 0.93
87
+ },
88
+ "0x5979d7b546e38e414f7e9822514be443a4800529": {
89
+ "priceFeed": "0x6c987dde50db1dcdd32cd4175778c2a291978e2a",
90
+ "loanToValue": 0.88,
91
+ "liquidationThreshold": 0.93
92
+ },
93
+ "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
94
+ "priceFeed": "0xfa454de61b317b6535a0c462267208e8fdb89f45",
95
+ "loanToValue": 0.8,
96
+ "liquidationThreshold": 0.85
97
+ },
98
+ "0x4186bfc76e2e237523cbc30fd220fe055156b41f": {
99
+ "priceFeed": "0x3870fac3de911c12a57e5a2532d15ad8ca275a60",
100
+ "loanToValue": 0.88,
101
+ "liquidationThreshold": 0.91
102
+ },
103
+ "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9": {
104
+ "priceFeed": "0x84e93ec6170ed630f5ebd89a1aae72d4f63f2713",
105
+ "loanToValue": 0.8,
106
+ "liquidationThreshold": 0.85
107
+ },
108
+ "0xaf88d065e77c8cc2239327c5edb3a432268e5831": {
109
+ "priceFeed": "0x443ea0340cb75a160f31a440722dec7b5bc3c2e9",
110
+ "loanToValue": 0.8,
111
+ "liquidationThreshold": 0.85
112
+ },
113
+ "0x2416092f143378750bb29b79ed961ab195cceea5": {
114
+ "priceFeed": "0x72e9b6f907365d76c6192ad49c0c5ba356b7fa48",
115
+ "loanToValue": 0.88,
116
+ "liquidationThreshold": 0.91
117
+ }
118
+ }
119
+ },
120
+ "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9": {
121
+ "comet": "0xd98be00b5d27fc98112bde293e487f8d4ca57d07",
122
+ "assets": {
123
+ "0x912ce59144191c1204e64559fe8253a0e49e6548": {
124
+ "priceFeed": "0xb2a824043730fe05f3da2efafa1cbbe83fa548d6",
125
+ "loanToValue": 0.7,
126
+ "liquidationThreshold": 0.8
127
+ },
128
+ "0x82af49447d8a07e3bd95bd0d56f35241523fbab1": {
129
+ "priceFeed": "0x639fe6ab55c921f74e7fac1ee960c0b6293ba612",
130
+ "loanToValue": 0.85,
131
+ "liquidationThreshold": 0.9
132
+ },
133
+ "0x5979d7b546e38e414f7e9822514be443a4800529": {
134
+ "priceFeed": "0xe165155c34fe4cbfc55fc554437907bdb1af7e3e",
135
+ "loanToValue": 0.8,
51
136
  "liquidationThreshold": 0.85
52
137
  },
53
138
  "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f": {
54
139
  "priceFeed": "0xd0c7101eacbb49f3decccc166d238410d6d46d57",
55
140
  "loanToValue": 0.7,
56
- "liquidationThreshold": 0.77
141
+ "liquidationThreshold": 0.8
142
+ },
143
+ "0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a": {
144
+ "priceFeed": "0xdb98056fecfff59d032ab628337a4887110df3db",
145
+ "loanToValue": 0.6,
146
+ "liquidationThreshold": 0.7
57
147
  }
58
148
  }
59
149
  }
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,61 @@
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
+ }
@@ -0,0 +1,116 @@
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
+ }
@@ -0,0 +1,62 @@
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
+ }