defi-state-querier 0.5.29__py3-none-any.whl → 0.5.31__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 (27) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/abis/lending/kinza/__init__.py +0 -0
  3. defi_services/abis/lending/kinza/kinza_incentive.py +928 -0
  4. defi_services/abis/lending/kinza/kinza_lending_pool.py +1791 -0
  5. defi_services/abis/lending/seamless/__init__.py +0 -0
  6. defi_services/abis/lending/seamless/seamless_incentive.py +1049 -0
  7. defi_services/abis/lending/seamless/seamless_lending_pool.py +1738 -0
  8. defi_services/abis/lending/seamless/seamless_oracle.py +233 -0
  9. defi_services/constants/entities/lending_constant.py +6 -3
  10. defi_services/constants/entities/lending_services.py +14 -4
  11. defi_services/services/lending/avalon_services.py +34 -0
  12. defi_services/services/lending/kinza_services.py +315 -0
  13. defi_services/services/lending/lending_info/base/seamless_base.py +145 -0
  14. defi_services/services/lending/lending_info/base/xlend_base.py +91 -0
  15. defi_services/services/lending/lending_info/bsc/avalon_bsc.py +75 -0
  16. defi_services/services/lending/lending_info/bsc/kinza_bsc.py +182 -0
  17. defi_services/services/lending/lending_info/ethereum/kinza_eth.py +119 -0
  18. defi_services/services/lending/lending_info/optimism/xlend_optimism.py +112 -0
  19. defi_services/services/lending/liqee_service.py +2 -2
  20. defi_services/services/lending/onyx_service.py +2 -1
  21. defi_services/services/lending/seamless_services.py +313 -0
  22. defi_services/services/lending/xlend_services.py +325 -0
  23. {defi_state_querier-0.5.29.dist-info → defi_state_querier-0.5.31.dist-info}/METADATA +1 -1
  24. {defi_state_querier-0.5.29.dist-info → defi_state_querier-0.5.31.dist-info}/RECORD +27 -10
  25. {defi_state_querier-0.5.29.dist-info → defi_state_querier-0.5.31.dist-info}/WHEEL +0 -0
  26. {defi_state_querier-0.5.29.dist-info → defi_state_querier-0.5.31.dist-info}/licenses/LICENSE +0 -0
  27. {defi_state_querier-0.5.29.dist-info → defi_state_querier-0.5.31.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,325 @@
1
+ import logging
2
+
3
+ from web3 import Web3
4
+
5
+ from defi_services.abis.lending.aave.aave_v3.aave_v3_incentives_abi import AAVE_V3_INCENTIVES_ABI
6
+ from defi_services.abis.lending.aave.aave_v3.aave_v3_lending_pool_abi import AAVE_V3_LENDING_POOL_ABI
7
+ from defi_services.abis.lending.aave.aave_v3.aave_v3_oracle_abi import AAVE_V3_ORACLE_ABI
8
+ from defi_services.abis.lending.morpho.morpho_aave_v3_comptroller_abi import MORPHO_AAVE_V3_COMPTROLLER_ABI
9
+ from defi_services.abis.token.erc20_abi import ERC20_ABI
10
+ from defi_services.constants.chain_constant import Chain
11
+ from defi_services.constants.db_constant import DBConst
12
+ from defi_services.constants.entities.lending_constant import Lending
13
+ from defi_services.constants.network_constants import NATIVE_TOKEN
14
+ from defi_services.constants.time_constant import TimeConstants
15
+ from defi_services.jobs.queriers.state_querier import StateQuerier
16
+ from defi_services.services.lending.aave_v2_services import AaveV2StateService
17
+ from defi_services.services.lending.lending_info.arbitrum.aave_v3_arbitrum import AAVE_V3_ARB
18
+ from defi_services.services.lending.lending_info.avalanche.aave_v3_avalanche import AAVE_V3_AVALANCHE
19
+ from defi_services.services.lending.lending_info.base.aave_v3_base import AAVE_V3_BASE
20
+ from defi_services.services.lending.lending_info.base.xlend_base import XLEND_BASE
21
+ from defi_services.services.lending.lending_info.bsc.aave_v3_bsc import AAVE_V3_BSC
22
+ from defi_services.services.lending.lending_info.ethereum.old_aave_v3_eth import AAVE_V3_ETH
23
+ from defi_services.services.lending.lending_info.fantom.aave_v3_ftm import AAVE_V3_FTM
24
+ from defi_services.services.lending.lending_info.optimism.aave_v3_optimism import AAVE_V3_OPTIMISM
25
+ from defi_services.services.lending.lending_info.polygon.aave_v3_polygon import AAVE_V3_POLYGON
26
+ from defi_services.services.lending.lending_info.zksync.aave_v3_zksync import AAVE_V3_ZKSYNC
27
+
28
+ logger = logging.getLogger("Xlend Lending Pool State Service")
29
+
30
+
31
+ class XlendInfo:
32
+ mapping = {
33
+ Chain.base: XLEND_BASE,
34
+ Chain.optimism: AAVE_V3_OPTIMISM
35
+ }
36
+
37
+
38
+ class XlendStateService(AaveV2StateService):
39
+ def __init__(self, state_service: StateQuerier, chain_id: str = "0x1"):
40
+ super().__init__(state_service, chain_id)
41
+ self.name = f"{chain_id}_{Lending.xlend}"
42
+ self.chain_id = chain_id
43
+ self.pool_info = XlendInfo.mapping.get(chain_id)
44
+ self.lending_abi = AAVE_V3_LENDING_POOL_ABI
45
+ self.incentive_abi = AAVE_V3_INCENTIVES_ABI
46
+ self.oracle_abi = AAVE_V3_ORACLE_ABI
47
+ self.comptroller_abi = MORPHO_AAVE_V3_COMPTROLLER_ABI
48
+ self.state_service = state_service
49
+
50
+ def get_service_info(self):
51
+ info = {
52
+ Lending.xlend: {
53
+ "chain_id": self.chain_id,
54
+ "type": "lending",
55
+ "protocol_info": self.pool_info
56
+ }
57
+ }
58
+ return info
59
+
60
+ def get_dapp_asset_info(self, block_number: int = 'latest'):
61
+ _w3 = self.state_service.get_w3()
62
+ pool_address = self.pool_info.get("address")
63
+ pool_contract = _w3.eth.contract(address=_w3.to_checksum_address(pool_address), abi=self.lending_abi)
64
+ reserve_list = pool_contract.functions.getReservesList().call(block_identifier=block_number)
65
+ reserves_info = {}
66
+ for token in reserve_list:
67
+ token = token.lower()
68
+ reserve_data = pool_contract.functions.getReserveData(
69
+ _w3.to_checksum_address(token)).call(block_identifier=block_number)
70
+ reserves_info[token] = {}
71
+ reserves_info[token]["tToken"] = reserve_data[8].lower()
72
+ reserves_info[token]["sdToken"] = reserve_data[9].lower()
73
+ reserves_info[token]["dToken"] = reserve_data[10].lower()
74
+
75
+ risk_param = bin(reserve_data[0][0])[2:]
76
+ reserves_info[token]["loanToValue"] = int(risk_param[-15:], 2) / 10 ** 4
77
+ reserves_info[token]["liquidationThreshold"] = int(risk_param[-31:-16], 2) / 10 ** 4
78
+
79
+ return reserves_info
80
+
81
+ # CALCULATE APY LENDING POOL
82
+ def get_reserve_tokens_metadata(
83
+ self,
84
+ decoded_data: dict,
85
+ reserves_info: dict,
86
+ block_number: int = "latest"
87
+ ):
88
+ reserve_tokens_info = []
89
+ for token_address, reserve_info in reserves_info.items():
90
+ get_reserve_data_call_id = f'getReserveData_{self.name}_{token_address}_{block_number}'.lower()
91
+ reserve_data = decoded_data.get(get_reserve_data_call_id)
92
+ atoken = reserve_data[8].lower()
93
+ debt_token = reserve_data[10].lower()
94
+ decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
95
+ atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
96
+ debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
97
+ sdebt_token = reserve_data[9].lower()
98
+
99
+
100
+ data = {
101
+ 'underlying': token_address,
102
+ 'underlying_decimals': decoded_data.get(decimals_call_id),
103
+ 'a_token_supply': decoded_data.get(atoken_total_supply_key),
104
+ 'd_token_supply': decoded_data.get(debt_token_total_supply_key),
105
+
106
+ 'supply_apy': reserve_data[2],
107
+ 'borrow_apy': reserve_data[4],
108
+
109
+ }
110
+ if sdebt_token != NATIVE_TOKEN:
111
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
112
+ data['sd_token_supply'] = decoded_data.get(sdebt_token_total_supply_key)
113
+ data['stable_borrow_apy'] = reserve_data[5]
114
+ else:
115
+ data['sd_token_supply'] = 0
116
+ data['stable_borrow_apy'] = 0
117
+
118
+ reserve_tokens_info.append(data)
119
+
120
+ return reserve_tokens_info
121
+
122
+ def get_apy_lending_pool_function_info_deprecated(
123
+ self,
124
+ reserves_info: dict,
125
+ block_number: int = "latest",
126
+ ):
127
+ rpc_calls = {}
128
+ reward_tokens = self.pool_info.get("rewardTokensList")
129
+ for token_address, value in reserves_info.items():
130
+ reserve_key = f"getReserveData_{self.name}_{token_address}_{block_number}".lower()
131
+ atoken_total_supply_key = f'totalSupply_{value["tToken"]}_{block_number}'.lower()
132
+ debt_token_total_supply_key = f'totalSupply_{value["dToken"]}_{block_number}'.lower()
133
+ decimals_key = f"decimals_{token_address}_{block_number}".lower()
134
+ for reward_token in reward_tokens:
135
+ atoken_assets_key = f"getRewardsData_{value['tToken']}_{reward_token}_{block_number}".lower()
136
+ debt_token_assets_key = f"getRewardsData_{value['dToken']}_{reward_token}_{block_number}".lower()
137
+ rpc_calls[atoken_assets_key] = self.get_function_incentive_info(
138
+ "getRewardsData", [value['tToken'], reward_token], block_number)
139
+ rpc_calls[debt_token_assets_key] = self.get_function_incentive_info(
140
+ "getRewardsData", [value['dToken'], reward_token], block_number)
141
+ if value['sdToken'] != NATIVE_TOKEN:
142
+ sdebt_token_assets_key = f"getRewardsData_{value['sdToken']}_{reward_token}_{block_number}".lower()
143
+ rpc_calls[sdebt_token_assets_key] = self.get_function_incentive_info(
144
+ "getRewardsData", [value['sdToken'], reward_token], block_number)
145
+
146
+ rpc_calls[reserve_key] = self.get_function_lending_pool_info("getReserveData", [token_address])
147
+ rpc_calls[atoken_total_supply_key] = self.state_service.get_function_info(
148
+ value["tToken"], ERC20_ABI, "totalSupply", block_number=block_number)
149
+ rpc_calls[debt_token_total_supply_key] = self.state_service.get_function_info(
150
+ value["dToken"], ERC20_ABI, "totalSupply", block_number=block_number)
151
+ rpc_calls[decimals_key] = self.state_service.get_function_info(
152
+ token_address, ERC20_ABI, "decimals", block_number=block_number)
153
+
154
+ if value['sdToken'] != NATIVE_TOKEN:
155
+ sdebt_token_total_supply_key = f'totalSupply_{value["sdToken"]}_{block_number}'.lower()
156
+ rpc_calls[sdebt_token_total_supply_key] = self.state_service.get_function_info(
157
+ value["sdToken"], ERC20_ABI, "totalSupply", block_number=block_number)
158
+
159
+ return rpc_calls
160
+
161
+ def get_apy_lending_pool_deprecated(
162
+ self,
163
+ atokens: dict,
164
+ debt_tokens: dict,
165
+ decimals: dict,
166
+ reserves_info: dict,
167
+ asset_data_tokens: dict,
168
+ total_supply_tokens: dict,
169
+ interest_rate: dict,
170
+ token_prices: dict,
171
+ pool_token_price: float,
172
+ pool_decimals: int = 18,
173
+ ):
174
+ reward_tokens = self.pool_info.get("rewardTokensList")
175
+ for token_address in reserves_info:
176
+ atoken = atokens.get(token_address)
177
+ debt_token = debt_tokens.get(token_address)
178
+ decimal = decimals.get(token_address)
179
+ total_supply_t = total_supply_tokens.get(atoken, 0)
180
+ total_supply_d = total_supply_tokens.get(debt_token, 0)
181
+ # update deposit, borrow apy
182
+ total_supply_t = total_supply_t / 10 ** decimal
183
+ total_supply_d = total_supply_d / 10 ** decimal
184
+ token_price = token_prices.get(token_address)
185
+ interest_rate[token_address].update({
186
+ "utilization": total_supply_d / total_supply_t,
187
+ })
188
+ total_supply_t_in_usd = total_supply_t * token_price
189
+ total_supply_d_in_usd = total_supply_d * token_price
190
+ if reward_tokens:
191
+ interest_rate[token_address][DBConst.reward_deposit_apy] = {}
192
+ interest_rate[token_address][DBConst.reward_borrow_apy] = {}
193
+ asset_data_t = asset_data_tokens.get(atoken)
194
+ asset_data_d = asset_data_tokens.get(debt_token)
195
+ # update deposit, borrow apy
196
+ for reward_address in reward_tokens:
197
+ eps_t = asset_data_t[reward_address][1] / 10 ** 18
198
+ eps_d = asset_data_d[reward_address][1] / 10 ** 18
199
+ if total_supply_t:
200
+ deposit_apr = eps_t * TimeConstants.A_YEAR * pool_token_price / (
201
+ total_supply_t * token_price)
202
+ else:
203
+ deposit_apr = 0
204
+ if total_supply_d:
205
+ borrow_apr = eps_d * TimeConstants.A_YEAR * pool_token_price / (
206
+ total_supply_d * token_price)
207
+ else:
208
+ borrow_apr = 0
209
+ interest_rate[token_address][DBConst.reward_deposit_apy].update({
210
+ DBConst.reward_borrow_apy: deposit_apr}
211
+ )
212
+ interest_rate[token_address][DBConst.reward_borrow_apy].update({
213
+ reward_address: borrow_apr}
214
+ )
215
+ # update liquidity
216
+ liquidity_log = {
217
+ 'total_borrow': {
218
+ DBConst.amount: total_supply_d,
219
+ DBConst.value_in_usd: total_supply_d_in_usd},
220
+ 'total_deposit': {
221
+ DBConst.amount: total_supply_t,
222
+ DBConst.value_in_usd: total_supply_t_in_usd}
223
+ }
224
+ interest_rate[token_address].update({DBConst.liquidity_change_logs: liquidity_log})
225
+
226
+ return interest_rate
227
+
228
+ def calculate_apy_lending_pool_function_call_deprecated(
229
+ self,
230
+ reserves_info: dict,
231
+ decoded_data: dict,
232
+ token_prices: dict,
233
+ pool_token_price: float,
234
+ pool_decimals: int = 18,
235
+ block_number: int = 'latest',
236
+ ):
237
+ reserves_data = {}
238
+ for token in reserves_info:
239
+ get_reserve_data_call_id = f'getReserveData_{self.name}_{token}_{block_number}'.lower()
240
+ reserves_data[token.lower()] = decoded_data.get(get_reserve_data_call_id)
241
+ reward_tokens = self.pool_info.get("rewardTokensList")
242
+ interest_rate, atokens, debt_tokens, sdebt_tokens, decimals, asset_data_tokens = {}, {}, {}, {}, {}, {}
243
+ total_supply_tokens = {}
244
+ for token_address in reserves_info:
245
+ lower_address = token_address.lower()
246
+ reserve_data = reserves_data[lower_address]
247
+ interest_rate[lower_address] = {
248
+ 'deposit_apy': float(reserve_data[3]) / 10 ** 27,
249
+ 'borrow_apy': float(reserve_data[4]) / 10 ** 27,
250
+ 'stable_borrow_apy': float(reserve_data[5]) / 10 ** 27}
251
+ atoken = reserve_data[7].lower()
252
+ sdebt_token = reserve_data[8].lower()
253
+ debt_token = reserve_data[9].lower()
254
+ decimals_call_id = f"decimals_{token_address}_{block_number}".lower()
255
+ atoken_total_supply_key = f'totalSupply_{atoken}_{block_number}'.lower()
256
+ debt_token_total_supply_key = f'totalSupply_{debt_token}_{block_number}'.lower()
257
+ asset_data_tokens[atoken] = {}
258
+ asset_data_tokens[debt_token] = {}
259
+ if sdebt_token != NATIVE_TOKEN:
260
+ asset_data_tokens[sdebt_token] = {}
261
+
262
+ total_supply_tokens[atoken] = {}
263
+ for reward_token in reward_tokens:
264
+ atoken_assets_key = f"getRewardsData_{atoken}_{reward_token}_{block_number}".lower()
265
+ debt_token_assets_key = f"getRewardsData_{debt_token}_{reward_token}_{block_number}".lower()
266
+ asset_data_tokens[atoken][reward_token] = decoded_data.get(atoken_assets_key)
267
+ asset_data_tokens[debt_token][reward_token] = decoded_data.get(debt_token_assets_key)
268
+ total_supply_tokens[atoken][reward_token] = decoded_data.get(atoken_total_supply_key)
269
+ if sdebt_token != NATIVE_TOKEN:
270
+ sdebt_token_assets_key = f"getRewardsData_{sdebt_tokens}_{reward_token}_{block_number}".lower()
271
+ asset_data_tokens[sdebt_token][reward_token] = decoded_data.get(sdebt_token_assets_key)
272
+
273
+ atokens[lower_address] = atoken
274
+ debt_tokens[lower_address] = debt_token
275
+ sdebt_tokens[lower_address] = sdebt_token
276
+ decimals[lower_address] = decoded_data.get(decimals_call_id)
277
+ total_supply_tokens[debt_token] = decoded_data.get(debt_token_total_supply_key)
278
+ if sdebt_token != NATIVE_TOKEN:
279
+ sdebt_token_total_supply_key = f'totalSupply_{sdebt_token}_{block_number}'.lower()
280
+ total_supply_tokens[sdebt_token] = decoded_data.get(sdebt_token_total_supply_key)
281
+
282
+ asset_price_key = f"getAssetsPrices_{self.name}_{block_number}".lower()
283
+ if not token_prices and asset_price_key in decoded_data:
284
+ token_prices = {}
285
+ prices = decoded_data.get(asset_price_key)
286
+ for pos in range(len(reserves_info.keys())):
287
+ token_prices[reserves_info[pos].lower()] = prices[pos] / 10 ** pool_decimals
288
+
289
+ data = self.get_apy_lending_pool_deprecated(
290
+ atokens, debt_tokens, decimals, reserves_info, asset_data_tokens, total_supply_tokens, interest_rate,
291
+ token_prices, pool_token_price, pool_decimals
292
+ )
293
+
294
+ return data
295
+
296
+ # REWARDS BALANCE
297
+ def get_rewards_balance_function_info(
298
+ self,
299
+ wallet,
300
+ reserves_info: dict = None,
301
+ block_number: int = "latest"
302
+ ):
303
+ rpc_calls = {}
304
+ reward_tokens = self.pool_info.get("rewardTokensList")
305
+ for reward_token in reward_tokens:
306
+ decimals_call_id = f"decimals_{reward_token}_{block_number}".lower()
307
+ rpc_calls[decimals_call_id] = self.state_service.get_function_info(
308
+ reward_token, ERC20_ABI, "decimals", block_number=block_number)
309
+ tokens = []
310
+ for key, value in reserves_info.items():
311
+ tokens += [Web3.to_checksum_address(value["tToken"]), Web3.to_checksum_address(value["dToken"])]
312
+ key = f"getAllUserRewards_{self.name}_{wallet}_{block_number}".lower()
313
+ rpc_calls[key] = self.get_function_incentive_info("getAllUserRewards", [tokens, Web3.to_checksum_address(wallet)], block_number)
314
+ return rpc_calls
315
+
316
+ def calculate_rewards_balance(
317
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
318
+ key = f"getAllUserRewards_{self.name}_{wallet}_{block_number}".lower()
319
+ rewards = decoded_data.get(key)
320
+ result = dict(zip(*rewards))
321
+ for key, value in result.items():
322
+ decimals_call_id = f"decimals_{key}_{block_number}".lower()
323
+ value /= 10 ** decoded_data.get(decimals_call_id, 18)
324
+ result[key] = {"amount": value}
325
+ return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: defi-state-querier
3
- Version: 0.5.29
3
+ Version: 0.5.31
4
4
  Summary: Calculate apy, apr, and wallet information,... in decentralized applications.
5
5
  Home-page: https://github.com/Centic-io/defi-state-querier
6
6
  Author: Viet-Bang Pham
@@ -1,4 +1,4 @@
1
- defi_services/__init__.py,sha256=cP9aQJB7HkB0oiEYOasDtHaLxL1myCRBfwWGxWntYks,23
1
+ defi_services/__init__.py,sha256=ARMz5Rl7GeMF49e55XYAcBGxehsgyCy4DCLgMKXkxVQ,23
2
2
  defi_services/abis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  defi_services/abis/multicall_v3_abi.py,sha256=0aPxjrJJFU17fODjvYFRDn5Y5J1yi_AJKc8v1uohNGY,12352
4
4
  defi_services/abis/dex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -147,6 +147,9 @@ defi_services/abis/lending/iron_bank/iron_lens_abi.py,sha256=n9KVCTj6Jau70lwai9P
147
147
  defi_services/abis/lending/justlend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
148
  defi_services/abis/lending/justlend/just_token_abi.py,sha256=zQPtwAUHncHa4-NHwIkdOnLcg6FiZtdX_LG8Ev7P_10,30957
149
149
  defi_services/abis/lending/justlend/justlend_comptroller_abi.py,sha256=pJnApeCCiPv8BJY2UjL-hTlsHIJgwpX7_hC0--k1zy8,27922
150
+ defi_services/abis/lending/kinza/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
+ defi_services/abis/lending/kinza/kinza_incentive.py,sha256=gshGb5CyQhkclfJZEoNSP7a0vHMxPQXybtVPJvS-gnI,18306
152
+ defi_services/abis/lending/kinza/kinza_lending_pool.py,sha256=chNyKimQuQL5XZKiGxPYmBdaYXZcdmNU7rKhgaqjz4Q,36751
150
153
  defi_services/abis/lending/liqee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
154
  defi_services/abis/lending/liqee/liqee_comptroller_abi.py,sha256=UbMnkWmApWs2oBUHz0t0xgDIpHC-HiP3HKBoZqEZxLs,32288
152
155
  defi_services/abis/lending/liqee/liqee_event_abi.py,sha256=scyf1cGK9xBjPcPXv-bqh3WTP5LR2Gh8n-JeserCAeA,3787
@@ -172,6 +175,10 @@ defi_services/abis/lending/other/chain_link_abi.py,sha256=xMqktcNzIrN59jX9kDOVg5
172
175
  defi_services/abis/lending/radiant_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
176
  defi_services/abis/lending/radiant_v2/radiant_reward_converter.py,sha256=-Wq2Mkjw9vJIW7-2fiXfg4ew-ClugFwxl-KPO2WW4b8,15011
174
177
  defi_services/abis/lending/radiant_v2/radiant_v2_incentive_abi.py,sha256=Z6xs9pGo0YrrSmqB_-b9aP1AUE0JjSG2ih4bmZaEShU,19364
178
+ defi_services/abis/lending/seamless/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
+ defi_services/abis/lending/seamless/seamless_incentive.py,sha256=6BVV2wAZkXanoqxTN0-3bsqztB3LnYezRypLlYvibCg,20817
180
+ defi_services/abis/lending/seamless/seamless_lending_pool.py,sha256=kq-F-LSP77gT2PXaeUMgeI21gT-4eNGgl90774wSFEs,35696
181
+ defi_services/abis/lending/seamless/seamless_oracle.py,sha256=xxepayBW-prskze84_RZfbJqpyhs9BNkQmTmGcwhvzg,4433
175
182
  defi_services/abis/lending/silo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
183
  defi_services/abis/lending/silo/silo_abi.py,sha256=HGGhMO763vY9vD70meT7oduS1j8GwXsAkChntLLXMTw,19370
177
184
  defi_services/abis/lending/silo/silo_lens_abi.py,sha256=atueV-nlIk2IwdMYaweLOSUXwbE0iv35j9jC_amxYWI,13179
@@ -315,8 +322,8 @@ defi_services/constants/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
315
322
  defi_services/constants/entities/dex_constant.py,sha256=oCt8RS-0KjFW5zR5IU1Ys49nYCCAraY8pTivOpXoyvs,343
316
323
  defi_services/constants/entities/dex_info_constant.py,sha256=gFjF6gWLZ-e_iLoUeSF-bPZKOwbmxVoMeyaA2wGZESM,1653
317
324
  defi_services/constants/entities/dex_services.py,sha256=Ip3ww6OBA3RQHMrtPE86uoPv2iv-oLh38cKGPtrpKMA,2383
318
- defi_services/constants/entities/lending_constant.py,sha256=ufSzWJ8bCqSsdiB21kmqD3ZBQKB8XtqTaqX9rIDQGDc,1145
319
- defi_services/constants/entities/lending_services.py,sha256=zo4fkFYoBSPcnHKRY1NAJrRLRxG1syYOUZnqQKo-yWw,5980
325
+ defi_services/constants/entities/lending_constant.py,sha256=7WndqWnTKAD7rNP-qwppJE0y_m537aKGmhmbftZW3Rs,1298
326
+ defi_services/constants/entities/lending_services.py,sha256=9A_9N6--MFMfX7p_K_ZBvQVO_SCjgSeViHwb_z1nKhI,6552
320
327
  defi_services/constants/entities/vault_constant.py,sha256=XaFp2VpmePfym42Gn-5IeT8qnQBq1JcRNrH7r2_tWxo,122
321
328
  defi_services/constants/entities/vault_services.py,sha256=uwcvxwnyXNU3_3mcI6PGWyvGe40tzHmTrmigotLWeMM,752
322
329
  defi_services/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -368,6 +375,7 @@ defi_services/services/lending/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
368
375
  defi_services/services/lending/aave_v2_services.py,sha256=I3Z0FH8OLCiMmODzpu63F1x9vHnQMMOU9obhyUdOMKI,22300
369
376
  defi_services/services/lending/aave_v3_services.py,sha256=aGXhVSrQM2Eui5DH1Ghf-XDNcUAxHISDECZ99FPDuhA,17077
370
377
  defi_services/services/lending/apeswap_services.py,sha256=UrLhXVzGvim_xfs54hSJ1qeTH6ber4xh01j5PWFl4C8,4737
378
+ defi_services/services/lending/avalon_services.py,sha256=M1H7JIGCrucr_5KiJUgYC4i6YO4UuvZjArRNPAl6AFU,1118
371
379
  defi_services/services/lending/compound_service.py,sha256=8r7pAs8KaaakDuHg4BUICW4zLD-ihm_DQETYwnAFc98,21917
372
380
  defi_services/services/lending/compound_v3_services.py,sha256=iLxaP0YpRAKrVw2dQLACTNS6oIfCvQ_-ZPKSiC3Q8bE,17448
373
381
  defi_services/services/lending/cream_services.py,sha256=vtah0kMHAxztenWbJp4CxEcBMF0XUBglGRk6p9d-oiU,1644
@@ -377,13 +385,15 @@ defi_services/services/lending/granary_services.py,sha256=n9ovzFXzMa26ZbGxARJiAi
377
385
  defi_services/services/lending/ionic_service.py,sha256=gwGySZzs3-FVF1ct6zJOY4AHelaSpWL9AVABSyB0wJg,7529
378
386
  defi_services/services/lending/iron_bank_service.py,sha256=GuXoXEbR4gkkNYfAyFkDtVeI3-knq3kFnLBeWVuUvv8,15585
379
387
  defi_services/services/lending/justlend_service.py,sha256=p1iHiMxZest5YmXwUZ-69g5LW30IG-F9_z1TiPBO2gU,8875
380
- defi_services/services/lending/liqee_service.py,sha256=dBMlQpREqSzZY2_JCpJDxnWl9A8fWxa56KhsDNd--as,17140
388
+ defi_services/services/lending/kinza_services.py,sha256=qsoCgvb-tX9Z3XMCfBzx0lnqgWL_nWqKDgNZ8lBApjA,15908
389
+ defi_services/services/lending/liqee_service.py,sha256=o7g_HX_QDMBP0YVn7wx0Kl_aWtoLI-65w2ttXP6dlz0,17140
381
390
  defi_services/services/lending/moonwell_service.py,sha256=V8UCQPN8jv_QwvXLsTUpbpgYk4_JmdhNhyckvNONErI,5468
382
391
  defi_services/services/lending/morpho_aave_v2_services.py,sha256=C8mfClb_KVbSr08YReVjhPzP4FTurGsitE9a4isEMn8,8471
383
392
  defi_services/services/lending/morpho_aave_v3_services.py,sha256=5p-_1rpFnjaY55gRJWxdQ1qHuKDrQDMY-6PdRDpfJIo,8268
384
393
  defi_services/services/lending/morpho_compound_services.py,sha256=38AXwi-7yxSrRghS3OCRZrOy9cfJnC3k-yNf1Ep27Ds,14912
385
- defi_services/services/lending/onyx_service.py,sha256=CqQcenVidyKYIxNlaTliaYmSI8zV7_zxK_wCQE5s-r4,15401
394
+ defi_services/services/lending/onyx_service.py,sha256=qsvAstiWvD9W6IA3qdDtXolPzG9pBPFw9Pbf56PfDvw,15495
386
395
  defi_services/services/lending/radiant_v2_services.py,sha256=OEwocsl3ZCWE9OySXBBYtwuYo9DdHAHLIe0NS4qBIsI,5250
396
+ defi_services/services/lending/seamless_services.py,sha256=hg9kg3609dxXN04ek_ui9uFUe1pOujnQyXWlLL693Eo,15853
387
397
  defi_services/services/lending/silo_services.py,sha256=yLw90u_IXEqE3NbfhVAhG1y8qQqo26xSbYXXlh4lL3g,16726
388
398
  defi_services/services/lending/sonne_service.py,sha256=KQ0CbMVLK-peJZE2_xJtFTK2lBx6Mnijhlwo0BVU4ug,2203
389
399
  defi_services/services/lending/spark_services.py,sha256=68_egY0yOT7YIOVbd8rbHJBJEsL0sOr0zSsTSdw0BUY,1042
@@ -393,6 +403,7 @@ defi_services/services/lending/uwu_services.py,sha256=umv1YKsFBrOybPgX69ybzzEVOk
393
403
  defi_services/services/lending/valas_services.py,sha256=KlguY7dg58jK2LbJn79c6Tsu_gYmIlSLfC3U81YfI5E,22445
394
404
  defi_services/services/lending/venus_services.py,sha256=nkgr0s8DjDWfZo1kq1pvE-0Mo2S9bk5Ofb6F7Q-x0rk,16624
395
405
  defi_services/services/lending/wepiggy_services.py,sha256=x10QkYpn47wgNvmDeMGgmzJxv7WPte6hqR3MCBRgMbM,15684
406
+ defi_services/services/lending/xlend_services.py,sha256=arYyKtEvS_egSZ5_z7GsaeSao-ym96Ic8AanwoKdNqg,16886
396
407
  defi_services/services/lending/zerolend_services.py,sha256=7ESBKXhUtV-xCnbx_Om8ys3X6ChTICNzbljWnPHBn-k,1334
397
408
  defi_services/services/lending/lending_info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
398
409
  defi_services/services/lending/lending_info/arbitrum/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -415,13 +426,17 @@ defi_services/services/lending/lending_info/base/granary_base.py,sha256=tDaZ7Xom
415
426
  defi_services/services/lending/lending_info/base/ionic_base.py,sha256=W03N7CHWVS6lKBwDKrpWO569sM-6Rzp6VPthutaixsg,7227
416
427
  defi_services/services/lending/lending_info/base/moonwell_base.py,sha256=ayUp4NQSHIMyEgZwqsZmtuUX67UNRE3TT6pC37PBizw,3717
417
428
  defi_services/services/lending/lending_info/base/radiant_v2_base.py,sha256=PDj2AWIB_aNav80q_RRxKHSpNi2zzdu3FB2dO2z4FKA,2713
429
+ defi_services/services/lending/lending_info/base/seamless_base.py,sha256=K0UXs_VEm86ATlaLKjCXu-mWcY4vaRPB0YMK-t8iWXg,6904
418
430
  defi_services/services/lending/lending_info/base/sonne_base.py,sha256=7t2XMWhlTgAdx-v6Z9GSKLwap1ENjcTeHHZkPo0ldvA,2165
431
+ defi_services/services/lending/lending_info/base/xlend_base.py,sha256=_cDptfawzZtULsGqn9Qr5S0TGRkHMdn6GxwTQVZevIY,4275
419
432
  defi_services/services/lending/lending_info/base/zerolend_base.py,sha256=rOaAXq0LYGOKcTI79B77prvID3PLHwF4rXKMOaUCxyk,5198
420
433
  defi_services/services/lending/lending_info/bsc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
421
434
  defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py,sha256=g4A6fJVqzx6ly5qcI1Ifx7yECa4UuoX9Qa282vP3KD0,3168
422
435
  defi_services/services/lending/lending_info/bsc/apeswap_bsc.py,sha256=rsI_alrZat120bWAgwMmjpcYvJAFYBWHlYWdPt4Or3g,2109
436
+ defi_services/services/lending/lending_info/bsc/avalon_bsc.py,sha256=VgWTYYQjymt3FXC4AYMGU8oAbMw5jJIRYujQ10s9lU8,3488
423
437
  defi_services/services/lending/lending_info/bsc/cream_bsc.py,sha256=X7CoQxOfRQjsRjsxKhiSBm5W-MO9TXKTXP93oxtwA_c,8372
424
438
  defi_services/services/lending/lending_info/bsc/granary_bsc.py,sha256=OrD7P_YNRtDu0PN5QtCUYVTMojrIKfjQO-YKet_ZN0c,2322
439
+ defi_services/services/lending/lending_info/bsc/kinza_bsc.py,sha256=qtRt6whVlSr5NTkovr1onqrP9AG5YgB-cmbT86xO2mc,8649
425
440
  defi_services/services/lending/lending_info/bsc/liqee_bsc.py,sha256=eah38sX4DBwQTw-kPUEE_dP-VC8JDodwBDTkLuMEEns,5703
426
441
  defi_services/services/lending/lending_info/bsc/radiant_bsc.py,sha256=1hVXd78h1o_ckoWFtHVnLJB3w0dcORMAUeZor7RcRsk,2415
427
442
  defi_services/services/lending/lending_info/bsc/trava_bsc.py,sha256=TKV62KPn8kxZ3OB6q_aN7wedrmKdNO8_i8Xv000baLA,3845
@@ -436,6 +451,7 @@ defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py,sha256=U
436
451
  defi_services/services/lending/lending_info/ethereum/flux_eth.py,sha256=Iw-hvmFc5g9_--drvZCWxtoscvMIkr1mna4pTStrA-g,1270
437
452
  defi_services/services/lending/lending_info/ethereum/granary_eth.py,sha256=AAW4fzyFAUrdaJ86cUk6OJFQnbRghgun70ScWVUXAUM,2059
438
453
  defi_services/services/lending/lending_info/ethereum/iron_bank_eth.py,sha256=PfubpeLx1_qePdXcxUS8o6oN7SdB433eDSX3Njxyoa4,4606
454
+ defi_services/services/lending/lending_info/ethereum/kinza_eth.py,sha256=TUoXPqepxo8jvln43Qc3cwufr7rB4fdZboXBJIDUIzo,5569
439
455
  defi_services/services/lending/lending_info/ethereum/liqee_eth.py,sha256=hDdPEz6XxNq8ODPoNwiJLOtTXZiQaR9J5ZE5qiGyyqo,5718
440
456
  defi_services/services/lending/lending_info/ethereum/morpho_aave_v2_eth.py,sha256=WDIoK0HtEOVDVGdQ6ok22W-aTapTmQt3C5wvVnM2iC8,2595
441
457
  defi_services/services/lending/lending_info/ethereum/morpho_aave_v3_eth.py,sha256=8yATd43QS8mXPVTx6aME6G6x3BkmnsWKPrudEB_pbpI,3095
@@ -464,6 +480,7 @@ defi_services/services/lending/lending_info/optimism/granary_optimism.py,sha256=
464
480
  defi_services/services/lending/lending_info/optimism/iron_bank_optimism.py,sha256=A1UU86MeNtOzApgzz8bKuqCro17hcbt3Tkyi6hzhAq4,1812
465
481
  defi_services/services/lending/lending_info/optimism/moonwell_optimism.py,sha256=sLNS13uR4YhGMJ4Ey2r0_EVaLbLCoUgi5ayiZ0qF62Y,295
466
482
  defi_services/services/lending/lending_info/optimism/wepiggy_optimism.py,sha256=zIP-bmSx-CTJVN8Ma4fvpUPrR7sibeobq5Kk8g0eADA,1703
483
+ defi_services/services/lending/lending_info/optimism/xlend_optimism.py,sha256=shqicmGpZwNECiaJb0Hpn2cMZj2lrLqi_Yz966xZVsk,5330
467
484
  defi_services/services/lending/lending_info/polygon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
468
485
  defi_services/services/lending/lending_info/polygon/aave_v2_polygon.py,sha256=BIxMIO3iVDZNat7vh0K3wu9Bm5vqwthmCAHA0gEQG84,4536
469
486
  defi_services/services/lending/lending_info/polygon/aave_v3_polygon.py,sha256=2qaU-H8o7-tZRDRSVua72GOwJTUBDpYdVW5DekKMIvs,6907
@@ -505,8 +522,8 @@ defi_services/utils/memory_storage.py,sha256=BOT8laB0iVSCGE-oDlpWJQLbSC6X2blKX4z
505
522
  defi_services/utils/sqrt_price_math.py,sha256=9lgUeWFT4wjl3Vq3b7-jZ2bGvvZx7dDBSfVnM3lsZ8o,5575
506
523
  defi_services/utils/thread_proxy.py,sha256=5Z8biAyEReUkh3vfJSvEv7GwMe3CsE5M8CbghkQtePw,2951
507
524
  defi_services/utils/ton_decode_address.py,sha256=EWKwmC7KtbXpdKgiNK-5j-5lX7fCr17I4EWYs9b43eU,443
508
- defi_state_querier-0.5.29.dist-info/licenses/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
509
- defi_state_querier-0.5.29.dist-info/METADATA,sha256=An5x0rFf5go7zRuku6AoRqc5IZ-WfS_As9QegAncUAw,4653
510
- defi_state_querier-0.5.29.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
511
- defi_state_querier-0.5.29.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
512
- defi_state_querier-0.5.29.dist-info/RECORD,,
525
+ defi_state_querier-0.5.31.dist-info/licenses/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
526
+ defi_state_querier-0.5.31.dist-info/METADATA,sha256=JXpOyJJo8MOmicAvbxxvmQI8Ehmw92VfUotNYrMJ0OE,4653
527
+ defi_state_querier-0.5.31.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
528
+ defi_state_querier-0.5.31.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
529
+ defi_state_querier-0.5.31.dist-info/RECORD,,