defi-state-querier 0.4.25__py3-none-any.whl → 0.4.27__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- defi_services/__init__.py +1 -1
- defi_services/abis/vault/lido/__init__.py +0 -0
- defi_services/abis/vault/lido/event_transfer_shares.py +8 -0
- defi_services/abis/vault/lido/lido_1inch_steth_dai_pool.py +1308 -0
- defi_services/abis/vault/lido/lido_accounting_oracle.py +1342 -0
- defi_services/abis/vault/lido/lido_add_allowed_recipient.py +96 -0
- defi_services/abis/vault/lido/lido_allowed_recipents_factory.py +303 -0
- defi_services/abis/vault/lido/lido_allowed_recipients_builder_multi_token_tooling.py +427 -0
- defi_services/abis/vault/lido/lido_allowed_recipients_builder_tooling.py +414 -0
- defi_services/abis/vault/lido/lido_allowed_recipients_factory_multi_token.py +369 -0
- defi_services/abis/vault/lido/lido_allowed_recipients_registry.py +654 -0
- defi_services/abis/vault/lido/lido_allowed_token_registry.py +397 -0
- defi_services/abis/vault/lido/lido_anchor_vault.py +599 -0
- defi_services/abis/vault/lido/lido_aragon_acl.py +755 -0
- defi_services/abis/vault/lido/lido_aragon_agent.py +984 -0
- defi_services/abis/vault/lido/lido_aragon_finance.py +1013 -0
- defi_services/abis/vault/lido/lido_aragon_pm.py +490 -0
- defi_services/abis/vault/lido/lido_aragon_token_manager.py +759 -0
- defi_services/abis/vault/lido/lido_aragon_voting.py +887 -0
- defi_services/abis/vault/lido/lido_balancer_wseth_eth_pool.py +1441 -0
- defi_services/abis/vault/lido/lido_burner.py +698 -0
- defi_services/abis/vault/lido/lido_curated_staking_module.py +1571 -0
- defi_services/abis/vault/lido/lido_curve_liquidity_farming_manager.py +113 -0
- defi_services/abis/vault/lido/lido_curve_liquidity_farming_pool.py +899 -0
- defi_services/abis/vault/lido/lido_curve_liquidity_farming_reward.py +666 -0
- defi_services/abis/vault/lido/lido_curve_steth_eth_gauge.py +967 -0
- defi_services/abis/vault/lido/lido_curve_steth_eth_pool.py +986 -0
- defi_services/abis/vault/lido/lido_dao.py +623 -0
- defi_services/abis/vault/lido/lido_dao_insurance_fund.py +283 -0
- defi_services/abis/vault/lido/lido_dao_token.py +590 -0
- defi_services/abis/vault/lido/lido_deposit_security_module.py +687 -0
- defi_services/abis/vault/lido/lido_early_stakes_airdrop.py +120 -0
- defi_services/abis/vault/lido/lido_easy_track.py +1108 -0
- defi_services/abis/vault/lido/lido_evem_script_executor.py +170 -0
- defi_services/abis/vault/lido/lido_execution_layer_rewards_vaults.py +170 -0
- defi_services/abis/vault/lido/lido_l1_executor.py +135 -0
- defi_services/abis/vault/lido/lido_l1_proxy_admin.py +155 -0
- defi_services/abis/vault/lido/lido_legacy_oracle.py +539 -0
- defi_services/abis/vault/lido/lido_liquidity_farming_pool.py +899 -0
- defi_services/abis/vault/lido/lido_locator.py +357 -0
- defi_services/abis/vault/lido/lido_mev_boost_relay_allowed_list.py +331 -0
- defi_services/abis/vault/lido/lido_multisigs.py +1037 -0
- defi_services/abis/vault/lido/lido_oracle_daemon_config.py +474 -0
- defi_services/abis/vault/lido/lido_oracle_report_sanity_checker.py +1327 -0
- defi_services/abis/vault/lido/lido_remove_allowed_recipient.py +91 -0
- defi_services/abis/vault/lido/lido_staking_router.py +2311 -0
- defi_services/abis/vault/lido/lido_steth.py +1604 -0
- defi_services/abis/vault/lido/lido_stonks.py +744 -0
- defi_services/abis/vault/lido/lido_sushi_wsteth_dai_pool.py +662 -0
- defi_services/abis/vault/lido/lido_token_brigde.py +735 -0
- defi_services/abis/vault/lido/lido_token_gateway.py +808 -0
- defi_services/abis/vault/lido/lido_token_reward_program.py +363 -0
- defi_services/abis/vault/lido/lido_top_up_allowed_recipients.py +150 -0
- defi_services/abis/vault/lido/lido_validators_exit_bus_oracle.py +1230 -0
- defi_services/abis/vault/lido/lido_validators_exit_bus_oracle_hash_consensus.py +1085 -0
- defi_services/abis/vault/lido/lido_voting_repo.py +434 -0
- defi_services/abis/vault/lido/lido_withdrawal_vault.py +121 -0
- defi_services/abis/vault/lido/lido_withdrawl_queue.py +2031 -0
- defi_services/abis/vault/lido/lido_wsteth.py +481 -0
- defi_services/abis/vault/lido/lidor_accounting_oracle_hash_consensus.py +1085 -0
- defi_services/jobs/processors/multi_state_processor.py +2 -2
- defi_services/jobs/processors/state_processor.py +2 -2
- defi_services/jobs/queriers/state_querier.py +4 -4
- defi_services/services/dex/pancakeswap_service.py +1 -1
- defi_services/services/dex/pancakeswap_v2_service.py +1 -1
- defi_services/services/dex/uniswap_v2_service.py +1 -1
- defi_services/services/dex/uniswap_v3_service.py +2 -2
- defi_services/services/lending/aave_v2_services.py +2 -2
- defi_services/services/lending/aave_v3_services.py +4 -4
- defi_services/services/lending/apeswap_services.py +3 -3
- defi_services/services/lending/compound_service.py +3 -3
- defi_services/services/lending/compound_v3_services.py +1 -1
- defi_services/services/lending/flux_services.py +3 -3
- defi_services/services/lending/granary_services.py +1 -1
- defi_services/services/lending/iron_bank_service.py +4 -4
- defi_services/services/lending/justlend_service.py +3 -3
- defi_services/services/lending/liqee_service.py +3 -3
- defi_services/services/lending/morpho_aave_v2_services.py +2 -2
- defi_services/services/lending/morpho_aave_v3_services.py +2 -2
- defi_services/services/lending/morpho_compound_services.py +5 -5
- defi_services/services/lending/onyx_service.py +4 -4
- defi_services/services/lending/silo_services.py +3 -3
- defi_services/services/lending/strike_service.py +3 -3
- defi_services/services/lending/trava_services.py +2 -2
- defi_services/services/lending/uwu_services.py +2 -2
- defi_services/services/lending/valas_services.py +1 -1
- defi_services/services/lending/venus_services.py +7 -7
- defi_services/services/lending/wepiggy_services.py +4 -4
- defi_services/services/token_services.py +1 -1
- defi_services/utils/convert_address.py +2 -2
- {defi_state_querier-0.4.25.dist-info → defi_state_querier-0.4.27.dist-info}/METADATA +1 -1
- {defi_state_querier-0.4.25.dist-info → defi_state_querier-0.4.27.dist-info}/RECORD +95 -36
- {defi_state_querier-0.4.25.dist-info → defi_state_querier-0.4.27.dist-info}/WHEEL +1 -1
- {defi_state_querier-0.4.25.dist-info → defi_state_querier-0.4.27.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.4.25.dist-info → defi_state_querier-0.4.27.dist-info}/top_level.txt +0 -0
@@ -31,11 +31,11 @@ class MultiStateProcessor:
|
|
31
31
|
|
32
32
|
@staticmethod
|
33
33
|
def check_address(address):
|
34
|
-
return Web3.
|
34
|
+
return Web3.is_address(address)
|
35
35
|
|
36
36
|
@staticmethod
|
37
37
|
def checksum_address(address):
|
38
|
-
return Web3.
|
38
|
+
return Web3.to_checksum_address(address)
|
39
39
|
|
40
40
|
def init_rpc_call_information(
|
41
41
|
self, wallet: str, query_id: str, entity_id: str, query_type: str, block_number: int = 'latest', **kwargs):
|
@@ -39,11 +39,11 @@ class StateProcessor:
|
|
39
39
|
|
40
40
|
@staticmethod
|
41
41
|
def check_address(address):
|
42
|
-
return Web3.
|
42
|
+
return Web3.is_address(address)
|
43
43
|
|
44
44
|
@staticmethod
|
45
45
|
def checksum_address(address):
|
46
|
-
return Web3.
|
46
|
+
return Web3.to_checksum_address(address)
|
47
47
|
|
48
48
|
def init_rpc_call_information(
|
49
49
|
self, wallet: str, query_id: str, entity_id: str, query_type: str, block_number: int = 'latest', **kwargs):
|
@@ -112,7 +112,7 @@ class StateQuerier:
|
|
112
112
|
@staticmethod
|
113
113
|
def add_native_token_balance_rpc_call(
|
114
114
|
fn_paras: str = None, call_id: str = None, block_number: int = "latest"):
|
115
|
-
eth_call = GetBalance(Web3.
|
115
|
+
eth_call = GetBalance(Web3.to_checksum_address(fn_paras), block_number, call_id)
|
116
116
|
return eth_call
|
117
117
|
|
118
118
|
def add_rpc_call(self, abi: dict, fn_name: str, contract_address: str,
|
@@ -120,12 +120,12 @@ class StateQuerier:
|
|
120
120
|
args = []
|
121
121
|
if fn_paras:
|
122
122
|
for item in fn_paras:
|
123
|
-
if self._w3.
|
124
|
-
item = self._w3.
|
123
|
+
if self._w3.is_address(item):
|
124
|
+
item = self._w3.to_checksum_address(item)
|
125
125
|
args.append(item)
|
126
126
|
|
127
127
|
data_call = encode_eth_call_data(abi=abi, fn_name=fn_name, args=args)
|
128
|
-
eth_call = EthCall(to=self._w3.
|
128
|
+
eth_call = EthCall(to=self._w3.to_checksum_address(contract_address), block_number=block_number,
|
129
129
|
data=data_call, abi=abi, fn_name=fn_name, id=call_id)
|
130
130
|
return eth_call
|
131
131
|
|
@@ -38,7 +38,7 @@ class PancakeSwapServices(PancakeSwapV2Services):
|
|
38
38
|
masterchef_addr = self.pool_info.get('master_chef_address')
|
39
39
|
|
40
40
|
master_chef_contract = web3.eth.contract(abi=self.masterchef_abi,
|
41
|
-
address=web3.
|
41
|
+
address=web3.to_checksum_address(masterchef_addr))
|
42
42
|
pool_length = master_chef_contract.functions.poolLength().call()
|
43
43
|
|
44
44
|
rpc_calls = {}
|
@@ -42,7 +42,7 @@ class PancakeSwapV2Services(UniswapV2Services):
|
|
42
42
|
masterchef_addr = self.pool_info.get('master_chef_address')
|
43
43
|
|
44
44
|
master_chef_contract = web3.eth.contract(abi=self.masterchef_abi,
|
45
|
-
address=web3.
|
45
|
+
address=web3.to_checksum_address(masterchef_addr))
|
46
46
|
pool_length = master_chef_contract.functions.poolLength().call()
|
47
47
|
|
48
48
|
rpc_calls = {}
|
@@ -41,7 +41,7 @@ class UniswapV2Services(DexProtocolServices):
|
|
41
41
|
factory_addr = self.pool_info.get('factory_address')
|
42
42
|
|
43
43
|
factory_contract = web3.eth.contract(
|
44
|
-
address=web3.
|
44
|
+
address=web3.to_checksum_address(factory_addr), abi=self.factory_abi)
|
45
45
|
pool_length = factory_contract.functions.allPairsLength().call()
|
46
46
|
|
47
47
|
rpc_calls = {}
|
@@ -361,6 +361,6 @@ class UniswapV3Services(DexProtocolServices):
|
|
361
361
|
return user_data
|
362
362
|
|
363
363
|
def checksum_address(self, address):
|
364
|
-
if self.
|
365
|
-
address = self.web3.
|
364
|
+
if self.Web3.is_address(address):
|
365
|
+
address = self.web3.to_checksum_address(address)
|
366
366
|
return address
|
@@ -54,7 +54,7 @@ class AaveV2StateService(ProtocolServices):
|
|
54
54
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
55
55
|
begin = time.time()
|
56
56
|
_w3 = self.state_service.get_w3()
|
57
|
-
pool_address = Web3.
|
57
|
+
pool_address = Web3.to_checksum_address(self.pool_info['address'])
|
58
58
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
59
59
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
60
60
|
reserves_info = {}
|
@@ -430,7 +430,7 @@ class AaveV2StateService(ProtocolServices):
|
|
430
430
|
rpc_calls = {}
|
431
431
|
tokens = []
|
432
432
|
for token, value in reserves_info.items():
|
433
|
-
atoken, debt_token = Web3.
|
433
|
+
atoken, debt_token = Web3.to_checksum_address(value['tToken']), Web3.to_checksum_address(value['dToken'])
|
434
434
|
tokens += [atoken, debt_token]
|
435
435
|
key = f"getRewardsBalance_{self.name}_{wallet}_{block_number}".lower()
|
436
436
|
rpc_calls[key] = self.get_function_incentive_info(
|
@@ -59,13 +59,13 @@ class AaveV3StateService(AaveV2StateService):
|
|
59
59
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
60
60
|
_w3 = self.state_service.get_w3()
|
61
61
|
pool_address = self.pool_info.get("address")
|
62
|
-
pool_contract = _w3.eth.contract(address=_w3.
|
62
|
+
pool_contract = _w3.eth.contract(address=_w3.to_checksum_address(pool_address), abi=self.lending_abi)
|
63
63
|
reserve_list = pool_contract.functions.getReservesList().call(block_identifier=block_number)
|
64
64
|
reserves_info = {}
|
65
65
|
for token in reserve_list:
|
66
66
|
token = token.lower()
|
67
67
|
reserve_data = pool_contract.functions.getReserveData(
|
68
|
-
_w3.
|
68
|
+
_w3.to_checksum_address(token)).call(block_identifier=block_number)
|
69
69
|
reserves_info[token] = {}
|
70
70
|
reserves_info[token]["tToken"] = reserve_data[8].lower()
|
71
71
|
reserves_info[token]["sdToken"] = reserve_data[9].lower()
|
@@ -293,9 +293,9 @@ class AaveV3StateService(AaveV2StateService):
|
|
293
293
|
reward_token, ERC20_ABI, "decimals", block_number=block_number)
|
294
294
|
tokens = []
|
295
295
|
for key, value in reserves_info.items():
|
296
|
-
tokens += [Web3.
|
296
|
+
tokens += [Web3.to_checksum_address(value["tToken"]), Web3.to_checksum_address(value["dToken"])]
|
297
297
|
key = f"getAllUserRewards_{self.name}_{wallet}_{block_number}".lower()
|
298
|
-
rpc_calls[key] = self.get_function_incentive_info("getAllUserRewards", [tokens, Web3.
|
298
|
+
rpc_calls[key] = self.get_function_incentive_info("getAllUserRewards", [tokens, Web3.to_checksum_address(wallet)], block_number)
|
299
299
|
return rpc_calls
|
300
300
|
|
301
301
|
def calculate_rewards_balance(
|
@@ -43,7 +43,7 @@ class ApeSwapStateService(CompoundStateService):
|
|
43
43
|
block_number: int = "latest"):
|
44
44
|
_w3 = self.state_service.get_w3()
|
45
45
|
comptroller_contract = _w3.eth.contract(
|
46
|
-
address=_w3.
|
46
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
47
47
|
ctokens = []
|
48
48
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
49
49
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -52,9 +52,9 @@ class ApeSwapStateService(CompoundStateService):
|
|
52
52
|
ctokens.append(token)
|
53
53
|
|
54
54
|
lens_contract = _w3.eth.contract(
|
55
|
-
address=Web3.
|
55
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
56
56
|
)
|
57
|
-
tokens = [Web3.
|
57
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
58
58
|
metadata = lens_contract.functions.cTokenMetadataAll(tokens).call(block_identifier=block_number)
|
59
59
|
reserves_info = {}
|
60
60
|
for data in metadata:
|
@@ -50,7 +50,7 @@ class CompoundStateService(ProtocolServices):
|
|
50
50
|
block_number: int = "latest"):
|
51
51
|
_w3 = self.state_service.get_w3()
|
52
52
|
comptroller_contract = _w3.eth.contract(
|
53
|
-
address=_w3.
|
53
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
54
54
|
ctokens = []
|
55
55
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
56
56
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -59,9 +59,9 @@ class CompoundStateService(ProtocolServices):
|
|
59
59
|
ctokens.append(token)
|
60
60
|
|
61
61
|
lens_contract = _w3.eth.contract(
|
62
|
-
address=Web3.
|
62
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
63
63
|
)
|
64
|
-
tokens = [Web3.
|
64
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
65
65
|
metadata = lens_contract.functions.cTokenMetadataAll(tokens).call(block_identifier=block_number)
|
66
66
|
reserves_info = {}
|
67
67
|
for data in metadata:
|
@@ -51,7 +51,7 @@ class CompoundV3StateService(CompoundStateService):
|
|
51
51
|
if comets:
|
52
52
|
pools += comets
|
53
53
|
for pool in pools:
|
54
|
-
contract = w3.eth.contract(address=w3.
|
54
|
+
contract = w3.eth.contract(address=w3.to_checksum_address(pool), abi=self.comet_abi)
|
55
55
|
base_token = contract.functions.baseToken().call().lower()
|
56
56
|
number_assets = contract.functions.numAssets().call()
|
57
57
|
asset_data = {}
|
@@ -47,7 +47,7 @@ class FluxStateService(CompoundStateService):
|
|
47
47
|
block_number: int = "latest"):
|
48
48
|
_w3 = self.state_service.get_w3()
|
49
49
|
comptroller_contract = _w3.eth.contract(
|
50
|
-
address=_w3.
|
50
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
51
51
|
ctokens = []
|
52
52
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
53
53
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -56,9 +56,9 @@ class FluxStateService(CompoundStateService):
|
|
56
56
|
ctokens.append(token)
|
57
57
|
|
58
58
|
lens_contract = _w3.eth.contract(
|
59
|
-
address=Web3.
|
59
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
60
60
|
)
|
61
|
-
tokens = [Web3.
|
61
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
62
62
|
metadata = lens_contract.functions.cTokenMetadataAll(tokens).call(block_identifier=block_number)
|
63
63
|
reserves_info = {}
|
64
64
|
for data in metadata:
|
@@ -61,7 +61,7 @@ class GranaryStateService(ProtocolServices):
|
|
61
61
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
62
62
|
begin = time.time()
|
63
63
|
_w3 = self.state_service.get_w3()
|
64
|
-
pool_address = Web3.
|
64
|
+
pool_address = Web3.to_checksum_address(self.pool_info['address'])
|
65
65
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
66
66
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
67
67
|
reserves_info = {}
|
@@ -53,7 +53,7 @@ class IronBankStateService(CompoundStateService):
|
|
53
53
|
block_number: int = "latest"):
|
54
54
|
_w3 = self.state_service.get_w3()
|
55
55
|
comptroller_contract = _w3.eth.contract(
|
56
|
-
address=_w3.
|
56
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
57
57
|
ctokens = []
|
58
58
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
59
59
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -62,9 +62,9 @@ class IronBankStateService(CompoundStateService):
|
|
62
62
|
ctokens.append(token)
|
63
63
|
|
64
64
|
lens_contract = _w3.eth.contract(
|
65
|
-
address=Web3.
|
65
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
66
66
|
)
|
67
|
-
tokens = [Web3.
|
67
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
68
68
|
reserves_info = {}
|
69
69
|
queries = {}
|
70
70
|
for token in tokens:
|
@@ -91,7 +91,7 @@ class IronBankStateService(CompoundStateService):
|
|
91
91
|
liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
|
92
92
|
|
93
93
|
if underlying != Token.native_token:
|
94
|
-
underlying_contract = _w3.eth.contract(address=Web3.
|
94
|
+
underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=ERC20_ABI)
|
95
95
|
underlying_decimal = underlying_contract.functions.decimals().call()
|
96
96
|
else:
|
97
97
|
underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
|
@@ -42,12 +42,12 @@ class JustLendStateService(CompoundStateService):
|
|
42
42
|
block_number: int = "latest"):
|
43
43
|
_w3 = self.state_service.get_w3()
|
44
44
|
comptroller_contract = _w3.eth.contract(
|
45
|
-
address=_w3.
|
45
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
46
46
|
ctokens = []
|
47
47
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
48
48
|
ctokens.append(token)
|
49
49
|
|
50
|
-
tokens = [Web3.
|
50
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
51
51
|
reserves_info = {}
|
52
52
|
queries = {}
|
53
53
|
for token in tokens:
|
@@ -74,7 +74,7 @@ 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.
|
77
|
+
underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=ERC20_ABI)
|
78
78
|
underlying_decimal = underlying_contract.functions.decimals().call()
|
79
79
|
else:
|
80
80
|
underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
|
@@ -53,13 +53,13 @@ class LiqeeStateService(CompoundStateService):
|
|
53
53
|
block_number: int = "latest"):
|
54
54
|
_w3 = self.state_service.get_w3()
|
55
55
|
comptroller_contract = _w3.eth.contract(
|
56
|
-
address=_w3.
|
56
|
+
address=_w3.to_checksum_address(self.pool_info.get("controllerAddress")), abi=self.controller_abi)
|
57
57
|
ctokens = []
|
58
58
|
for token in comptroller_contract.functions.getAlliTokens().call(block_identifier=block_number):
|
59
59
|
ctokens.append(token)
|
60
60
|
reserves_info = {}
|
61
61
|
for token in ctokens:
|
62
|
-
address = _w3.
|
62
|
+
address = _w3.to_checksum_address(token)
|
63
63
|
contract = _w3.eth.contract(address=address, abi=self.lquee_token_abi)
|
64
64
|
underlying = contract.functions.underlying().call(block_identifier=block_number)
|
65
65
|
liquidation_threshold = comptroller_contract.functions.markets(address).call(block_identifier=block_number)
|
@@ -182,7 +182,7 @@ class LiqeeStateService(CompoundStateService):
|
|
182
182
|
reserves_info: dict = None,
|
183
183
|
block_number: int = "latest",
|
184
184
|
):
|
185
|
-
fn_paras = [Web3.
|
185
|
+
fn_paras = [Web3.to_checksum_address(wallet)]
|
186
186
|
rpc_call = self.get_lending_function_info("getAccountRewardAmount", fn_paras, block_number)
|
187
187
|
get_reward_id = f"getAccountRewardAmount_{self.name}_{wallet}_{block_number}".lower()
|
188
188
|
return {get_reward_id: rpc_call}
|
@@ -57,10 +57,10 @@ class MorphoAaveV2StateService(MorphoCompoundStateService):
|
|
57
57
|
block_number: int = "latest"):
|
58
58
|
begin = time.time()
|
59
59
|
_w3 = self.state_service.get_w3()
|
60
|
-
pool_address = Web3.
|
60
|
+
pool_address = Web3.to_checksum_address(self.aave_info['address'])
|
61
61
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
62
62
|
comptroller_contract = _w3.eth.contract(
|
63
|
-
address=_w3.
|
63
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
64
64
|
markets = comptroller_contract.functions.getMarketsCreated().call(block_identifier=block_number)
|
65
65
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
66
66
|
reserves_info = {}
|
@@ -55,10 +55,10 @@ class MorphoAaveV3StateService(MorphoCompoundStateService):
|
|
55
55
|
block_number: int = "latest"):
|
56
56
|
begin = time.time()
|
57
57
|
_w3 = self.state_service.get_w3()
|
58
|
-
pool_address = Web3.
|
58
|
+
pool_address = Web3.to_checksum_address(self.aave_info['address'])
|
59
59
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
60
60
|
comptroller_contract = _w3.eth.contract(
|
61
|
-
address=_w3.
|
61
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
62
62
|
markets = comptroller_contract.functions.marketsCreated().call(block_identifier=block_number)
|
63
63
|
markets = [i.lower() for i in markets]
|
64
64
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
@@ -56,7 +56,7 @@ class MorphoCompoundStateService(ProtocolServices):
|
|
56
56
|
block_number: int = "latest"):
|
57
57
|
_w3 = self.state_service.get_w3()
|
58
58
|
comptroller_contract = _w3.eth.contract(
|
59
|
-
address=_w3.
|
59
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
60
60
|
ctokens = []
|
61
61
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
62
62
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -65,9 +65,9 @@ class MorphoCompoundStateService(ProtocolServices):
|
|
65
65
|
ctokens.append(token)
|
66
66
|
|
67
67
|
compound_lens_contract = _w3.eth.contract(
|
68
|
-
address=Web3.
|
68
|
+
address=Web3.to_checksum_address(self.compound_info.get("lensAddress")), abi=self.compound_lens_abi
|
69
69
|
)
|
70
|
-
tokens = [Web3.
|
70
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
71
71
|
metadata = compound_lens_contract.functions.cTokenMetadataAll(tokens).call(block_identifier=block_number)
|
72
72
|
reserves_info = {}
|
73
73
|
for data in metadata:
|
@@ -196,8 +196,8 @@ class MorphoCompoundStateService(ProtocolServices):
|
|
196
196
|
if not reserves_info:
|
197
197
|
reserves_info = self.pool_info.get("reservesList")
|
198
198
|
params = [
|
199
|
-
[Web3.
|
200
|
-
Web3.
|
199
|
+
[Web3.to_checksum_address(value.get(self.market_key)) for key, value in reserves_info.items()],
|
200
|
+
Web3.to_checksum_address(wallet)
|
201
201
|
]
|
202
202
|
rpc_call = self.get_lens_function_info("getUserUnclaimedRewards", params, block_number)
|
203
203
|
get_reward_id = f"getUserUnclaimedRewards_{self.name}_{wallet}_{block_number}".lower()
|
@@ -49,7 +49,7 @@ class OnyxStateService(CompoundStateService):
|
|
49
49
|
block_number: int = "latest"):
|
50
50
|
_w3 = self.state_service.get_w3()
|
51
51
|
comptroller_contract = _w3.eth.contract(
|
52
|
-
address=_w3.
|
52
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
53
53
|
ctokens = []
|
54
54
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
55
55
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -58,9 +58,9 @@ class OnyxStateService(CompoundStateService):
|
|
58
58
|
ctokens.append(token)
|
59
59
|
|
60
60
|
lens_contract = _w3.eth.contract(
|
61
|
-
address=Web3.
|
61
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
62
62
|
)
|
63
|
-
tokens = [Web3.
|
63
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
64
64
|
metadata = lens_contract.functions.oTokenMetadataAll(tokens).call(block_identifier=block_number)
|
65
65
|
reserves_info = {}
|
66
66
|
for data in metadata:
|
@@ -199,7 +199,7 @@ class OnyxStateService(CompoundStateService):
|
|
199
199
|
)
|
200
200
|
key = f"oTokenBalances_{self.name}_{wallet}_{token}_{block_number}".lower()
|
201
201
|
rpc_calls[key] = self.get_lens_function_info(
|
202
|
-
"oTokenBalances", [value.get("cToken"), Web3.
|
202
|
+
"oTokenBalances", [value.get("cToken"), Web3.to_checksum_address(wallet)])
|
203
203
|
return rpc_calls
|
204
204
|
|
205
205
|
def calculate_wallet_deposit_borrow_balance(
|
@@ -64,15 +64,15 @@ class SiloStateService(ProtocolServices):
|
|
64
64
|
):
|
65
65
|
_w3 = self.state_service.get_w3()
|
66
66
|
repository_contract = _w3.eth.contract(
|
67
|
-
address=_w3.
|
67
|
+
address=_w3.to_checksum_address(self.pool_info.get("repositoryAddress")), abi=self.repository_abi)
|
68
68
|
result = {}
|
69
69
|
if not tokens:
|
70
70
|
tokens = self.pool_info.get("reservesList").keys()
|
71
71
|
for token in tokens:
|
72
|
-
silo_token = repository_contract.functions.getSilo(_w3.
|
72
|
+
silo_token = repository_contract.functions.getSilo(_w3.to_checksum_address(token)).call(block_identifier=block_number)
|
73
73
|
if not silo_token:
|
74
74
|
continue
|
75
|
-
contract = _w3.eth.contract(address=_w3.
|
75
|
+
contract = _w3.eth.contract(address=_w3.to_checksum_address(silo_token), abi=self.silo_abi)
|
76
76
|
assets = contract.functions.getAssets().call()
|
77
77
|
main_asset = contract.functions.siloAsset().call()
|
78
78
|
all_assets = [i.lower() for i in assets]
|
@@ -47,7 +47,7 @@ class StrikeStateService(CompoundStateService):
|
|
47
47
|
block_number: int = "latest"):
|
48
48
|
_w3 = self.state_service.get_w3()
|
49
49
|
comptroller_contract = _w3.eth.contract(
|
50
|
-
address=_w3.
|
50
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
51
51
|
ctokens = []
|
52
52
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
53
53
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -56,9 +56,9 @@ class StrikeStateService(CompoundStateService):
|
|
56
56
|
ctokens.append(token)
|
57
57
|
|
58
58
|
lens_contract = _w3.eth.contract(
|
59
|
-
address=Web3.
|
59
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
60
60
|
)
|
61
|
-
tokens = [Web3.
|
61
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
62
62
|
metadata = lens_contract.functions.sTokenMetadataAll(tokens).call(block_identifier=block_number)
|
63
63
|
reserves_info = {}
|
64
64
|
for data in metadata:
|
@@ -53,7 +53,7 @@ class TravaStateService(ProtocolServices):
|
|
53
53
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
54
54
|
begin = time.time()
|
55
55
|
_w3 = self.state_service.get_w3()
|
56
|
-
pool_address = Web3.
|
56
|
+
pool_address = Web3.to_checksum_address(self.pool_info['address'])
|
57
57
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
58
58
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
59
59
|
reserves_info = {}
|
@@ -396,7 +396,7 @@ class TravaStateService(ProtocolServices):
|
|
396
396
|
rpc_calls = {}
|
397
397
|
tokens = []
|
398
398
|
for token, value in reserves_info.items():
|
399
|
-
atoken, debt_token = Web3.
|
399
|
+
atoken, debt_token = Web3.to_checksum_address(value['tToken']), Web3.to_checksum_address(value['dToken'])
|
400
400
|
tokens += [atoken, debt_token]
|
401
401
|
key = f"getRewardsBalance_{self.name}_{wallet}_{block_number}".lower()
|
402
402
|
rpc_calls[key] = self.get_function_incentive_info(
|
@@ -48,7 +48,7 @@ class UwuStateService(ProtocolServices):
|
|
48
48
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
49
49
|
begin = time.time()
|
50
50
|
_w3 = self.state_service.get_w3()
|
51
|
-
pool_address = Web3.
|
51
|
+
pool_address = Web3.to_checksum_address(self.pool_info['address'])
|
52
52
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
53
53
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
54
54
|
reserves_info = {}
|
@@ -287,7 +287,7 @@ class UwuStateService(ProtocolServices):
|
|
287
287
|
rpc_calls = {}
|
288
288
|
tokens = []
|
289
289
|
for token, value in reserves_info.items():
|
290
|
-
atoken, debt_token = Web3.
|
290
|
+
atoken, debt_token = Web3.to_checksum_address(value['tToken']), Web3.to_checksum_address(value['dToken'])
|
291
291
|
tokens += [atoken, debt_token]
|
292
292
|
key = f"claimableReward_{self.name}_{wallet}_{block_number}".lower()
|
293
293
|
rpc_calls[key] = self.get_function_incentive_info(
|
@@ -51,7 +51,7 @@ class ValasStateService(ProtocolServices):
|
|
51
51
|
def get_dapp_asset_info(self, block_number: int = 'latest'):
|
52
52
|
begin = time.time()
|
53
53
|
_w3 = self.state_service.get_w3()
|
54
|
-
pool_address = Web3.
|
54
|
+
pool_address = Web3.to_checksum_address(self.pool_info['address'])
|
55
55
|
contract = _w3.eth.contract(address=pool_address, abi=self.lending_abi)
|
56
56
|
reserves_list = contract.functions.getReservesList().call(block_identifier=block_number)
|
57
57
|
reserves_info = {}
|
@@ -50,7 +50,7 @@ class VenusStateService(CompoundStateService):
|
|
50
50
|
block_number: int = "latest"):
|
51
51
|
_w3 = self.state_service.get_w3()
|
52
52
|
comptroller_contract = _w3.eth.contract(
|
53
|
-
address=_w3.
|
53
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
54
54
|
ctokens = []
|
55
55
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
56
56
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -59,7 +59,7 @@ class VenusStateService(CompoundStateService):
|
|
59
59
|
ctokens.append(token)
|
60
60
|
|
61
61
|
reserves_info = {}
|
62
|
-
tokens = [Web3.
|
62
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
63
63
|
queries = {}
|
64
64
|
for token in tokens:
|
65
65
|
key = f"underlying_{token}_{block_number}".lower()
|
@@ -83,7 +83,7 @@ class VenusStateService(CompoundStateService):
|
|
83
83
|
ltv = liquidation_threshold
|
84
84
|
|
85
85
|
if underlying != Token.native_token:
|
86
|
-
underlying_contract = _w3.eth.contract(address=Web3.
|
86
|
+
underlying_contract = _w3.eth.contract(address=Web3.to_checksum_address(underlying), abi=ERC20_ABI)
|
87
87
|
underlying_decimal = underlying_contract.functions.decimals().call()
|
88
88
|
else:
|
89
89
|
underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
|
@@ -152,9 +152,9 @@ class VenusStateService(CompoundStateService):
|
|
152
152
|
def calculate_rewards_balance(
|
153
153
|
self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
|
154
154
|
w3 = self.state_service.get_w3()
|
155
|
-
contract = w3.eth.contract(address=w3.
|
155
|
+
contract = w3.eth.contract(address=w3.to_checksum_address(self.pool_info.get("lensAddress")), abi = self.lens_abi)
|
156
156
|
# get_reward_id = f"pendingRewards_{self.name}_{wallet}_{block_number}".lower()
|
157
|
-
return_data = contract.functions.pendingRewards(w3.
|
157
|
+
return_data = contract.functions.pendingRewards(w3.to_checksum_address(wallet), w3.to_checksum_address(self.pool_info.get("comptrollerAddress"))).call(block_identifier=block_number)
|
158
158
|
rewards = return_data[2]
|
159
159
|
for item in return_data[-1]:
|
160
160
|
rewards += item[-1]
|
@@ -365,7 +365,7 @@ class VenusStateService(CompoundStateService):
|
|
365
365
|
reserves_info: dict = None,
|
366
366
|
block_number: int = "latest"
|
367
367
|
):
|
368
|
-
tokens = [Web3.
|
368
|
+
tokens = [Web3.to_checksum_address(value['cToken']) for key, value in reserves_info.items()]
|
369
369
|
key = f"vTokenMetadataAll_{self.pool_info.get('lensAddress')}_{block_number}".lower()
|
370
370
|
return {
|
371
371
|
key: self.get_lens_function_info("vTokenMetadataAll", tokens, block_number)
|
@@ -373,7 +373,7 @@ class VenusStateService(CompoundStateService):
|
|
373
373
|
|
374
374
|
def ctoken_underlying_price_all(
|
375
375
|
self, reserves_info, block_number: int = 'latest'):
|
376
|
-
tokens = [Web3.
|
376
|
+
tokens = [Web3.to_checksum_address(value['cToken']) for key, value in reserves_info.items()]
|
377
377
|
key = f"vTokenUnderlyingPriceAll_{self.pool_info.get('lensAddress')}_{block_number}".lower()
|
378
378
|
return {
|
379
379
|
key: self.get_lens_function_info("cTokenUnderlyingPriceAll", tokens, block_number)
|
@@ -56,7 +56,7 @@ class WepiggyStateService(CompoundStateService):
|
|
56
56
|
block_number: int = "latest"):
|
57
57
|
_w3 = self.state_service.get_w3()
|
58
58
|
comptroller_contract = _w3.eth.contract(
|
59
|
-
address=_w3.
|
59
|
+
address=_w3.to_checksum_address(self.pool_info.get("comptrollerAddress")), abi=self.comptroller_abi)
|
60
60
|
ctokens = []
|
61
61
|
for token in comptroller_contract.functions.getAllMarkets().call(block_identifier=block_number):
|
62
62
|
# if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
|
@@ -65,16 +65,16 @@ class WepiggyStateService(CompoundStateService):
|
|
65
65
|
ctokens.append(token)
|
66
66
|
|
67
67
|
lens_contract = _w3.eth.contract(
|
68
|
-
address=Web3.
|
68
|
+
address=Web3.to_checksum_address(self.pool_info.get("lensAddress")), abi=self.lens_abi
|
69
69
|
)
|
70
|
-
tokens = [Web3.
|
70
|
+
tokens = [Web3.to_checksum_address(i) for i in ctokens]
|
71
71
|
reserves_info = {}
|
72
72
|
for token in tokens:
|
73
73
|
if token.lower() == '0xef86384cf696929c3227428f539e740ee12fcdc7':
|
74
74
|
reserves_info[token.lower()] = self.pool_info.get("reservesList").get(
|
75
75
|
"0xf88506b0f1d30056b9e5580668d5875b9cd30f23")
|
76
76
|
continue
|
77
|
-
data = lens_contract.functions.pTokenMetadata(Web3.
|
77
|
+
data = lens_contract.functions.pTokenMetadata(Web3.to_checksum_address(token)).call(
|
78
78
|
block_identifier=block_number)
|
79
79
|
underlying = data[2].lower()
|
80
80
|
ctoken = data[0].lower()
|
@@ -24,7 +24,7 @@ class TokenServices:
|
|
24
24
|
balance_key = f"balanceOf_{wallet}_{token}_{block_number}".lower()
|
25
25
|
if balance_key in decoded_data:
|
26
26
|
balance = decoded_data.get(balance_key) or 0
|
27
|
-
decimals = decoded_data.get(decimals_key
|
27
|
+
decimals = decoded_data.get(decimals_key) or 18
|
28
28
|
return balance * token_prices.get(token, 1) / 10 ** decimals
|
29
29
|
|
30
30
|
return None
|
@@ -21,11 +21,11 @@ def convert_address_dict(data):
|
|
21
21
|
if isinstance(data, dict):
|
22
22
|
result = {}
|
23
23
|
for key, value in data.items():
|
24
|
-
if Web3.
|
24
|
+
if Web3.is_address(key):
|
25
25
|
key = hex_to_base58(key)
|
26
26
|
if isinstance(value, dict):
|
27
27
|
value = convert_address_dict(value)
|
28
|
-
if Web3.
|
28
|
+
if Web3.is_address(value):
|
29
29
|
value = hex_to_base58(value)
|
30
30
|
result[key] = value
|
31
31
|
return result
|