defi-state-querier 0.5.5__py3-none-any.whl → 0.5.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- defi_services/__init__.py +1 -1
- defi_services/constants/chain_constant.py +2 -0
- defi_services/constants/cosmos_decimals_constant.py +10 -0
- defi_services/constants/token_constant.py +3 -1
- defi_services/jobs/processors/cosmos_state_processor.py +15 -4
- defi_services/services/cosmos_token_services.py +5 -4
- defi_services/services/token_services.py +5 -0
- {defi_state_querier-0.5.5.dist-info → defi_state_querier-0.5.7.dist-info}/METADATA +1 -1
- {defi_state_querier-0.5.5.dist-info → defi_state_querier-0.5.7.dist-info}/RECORD +12 -12
- {defi_state_querier-0.5.5.dist-info → defi_state_querier-0.5.7.dist-info}/WHEEL +1 -1
- {defi_state_querier-0.5.5.dist-info → defi_state_querier-0.5.7.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.5.5.dist-info → defi_state_querier-0.5.7.dist-info}/top_level.txt +0 -0
defi_services/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.5.
|
1
|
+
__version__ = "0.5.7"
|
@@ -292,3 +292,13 @@ class Denoms:
|
|
292
292
|
"decimal": 6
|
293
293
|
}
|
294
294
|
}
|
295
|
+
all = {**orai, **cosmos}
|
296
|
+
|
297
|
+
|
298
|
+
class MulticallContract:
|
299
|
+
mapping = {
|
300
|
+
"orai": {
|
301
|
+
"multicall_balance": "orai1dyljypavg7qpt5d72a48a4pyg38d580aat55qql6tdcwfgydy6jsznk0h5",
|
302
|
+
"multicall": "orai1q7x644gmf7h8u8y6y8t9z9nnwl8djkmspypr6mxavsk9ual7dj0sxpmgwd"
|
303
|
+
}
|
304
|
+
}
|
@@ -43,7 +43,9 @@ class Token:
|
|
43
43
|
Chain.linea: '0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f',
|
44
44
|
Chain.okc: '0x8f8526dbfd6e38e3d8307702ca8469bae6c56c15',
|
45
45
|
Chain.aurora: '0xc9bdeed33cd01541e1eed10f90519d2c06fe3feb',
|
46
|
-
Chain.moonriver: '0x98878b06940ae243284ca214f92bb71a2b032b8a'
|
46
|
+
Chain.moonriver: '0x98878b06940ae243284ca214f92bb71a2b032b8a',
|
47
|
+
Chain.blast: '0x4300000000000000000000000000000000000004',
|
48
|
+
Chain.oasis_sapphire: '0x8bc2b030b299964eefb5e1e0b36991352e56d2d3'
|
47
49
|
}
|
48
50
|
|
49
51
|
|
@@ -1,15 +1,26 @@
|
|
1
|
-
from defi_services.constants.cosmos_decimals_constant import Denoms
|
1
|
+
from defi_services.constants.cosmos_decimals_constant import Denoms, MulticallContract
|
2
|
+
from defi_services.constants.network_constants import Chains
|
2
3
|
from defi_services.services.cosmos_token_services import CosmosTokenServices
|
3
4
|
|
4
5
|
|
5
6
|
class CosmosStateProcessor:
|
6
|
-
def __init__(self, lcd: str, rest_uri: str):
|
7
|
+
def __init__(self, lcd: str, rest_uri: str = None, chain_id: str = Chains.oraichain):
|
8
|
+
self.chain_id = chain_id
|
7
9
|
self.lcd = lcd
|
8
10
|
self.rest_uri = rest_uri
|
9
11
|
|
10
12
|
def get_token_balance(self, address, tokens):
|
11
|
-
cosmos = CosmosTokenServices(self.lcd, self.rest_uri)
|
12
|
-
|
13
|
+
cosmos = CosmosTokenServices(self.lcd, self.rest_uri, self.chain_id)
|
14
|
+
if self.chain_id in MulticallContract.mapping:
|
15
|
+
data = cosmos.query_balances(address, tokens)
|
16
|
+
else:
|
17
|
+
data = cosmos.query_coin_balances(address=address)
|
18
|
+
result = {}
|
19
|
+
for item in data:
|
20
|
+
denom = item.get('denom', "").lower()
|
21
|
+
amount = int(item.get('amount', None))
|
22
|
+
decimal = Denoms.all.get(denom, {}).get("decimal", 0)
|
23
|
+
result[denom] = amount / 10 ** decimal
|
13
24
|
return data
|
14
25
|
|
15
26
|
def run(self, address: str, queries: list):
|
@@ -7,11 +7,12 @@ from cosmpy.cosmwasm.rest_client import RestClient
|
|
7
7
|
from cosmpy.cosmwasm.rest_client import CosmWasmRestClient
|
8
8
|
from cosmpy.protos.cosmwasm.wasm.v1.query_pb2 import QuerySmartContractStateRequest
|
9
9
|
|
10
|
-
from defi_services.constants.cosmos_decimals_constant import Denoms
|
10
|
+
from defi_services.constants.cosmos_decimals_constant import Denoms, MulticallContract
|
11
11
|
|
12
12
|
|
13
13
|
class CosmosTokenServices:
|
14
|
-
def __init__(self, lcd: str, rest_uri: str):
|
14
|
+
def __init__(self, lcd: str, rest_uri: str, chain_id: str):
|
15
|
+
self.chain_id = chain_id
|
15
16
|
self.lcd = lcd
|
16
17
|
self.rest_uri = rest_uri
|
17
18
|
self.client = CosmWasmRestClient(RestClient(rest_address=rest_uri))
|
@@ -60,7 +61,7 @@ class CosmosTokenServices:
|
|
60
61
|
"data": self.encode_data({"token_info": {}})
|
61
62
|
})
|
62
63
|
queries.append({
|
63
|
-
"address": "
|
64
|
+
"address": MulticallContract.mapping.get(self.chain_id).get("multicall_balance"),
|
64
65
|
"data": self.encode_data(balance_query)
|
65
66
|
})
|
66
67
|
query = {
|
@@ -70,7 +71,7 @@ class CosmosTokenServices:
|
|
70
71
|
}
|
71
72
|
query = json.dumps(query).encode('utf-8')
|
72
73
|
request_ = QuerySmartContractStateRequest(
|
73
|
-
address="
|
74
|
+
address=MulticallContract.mapping.get(self.chain_id).get("multicall"), query_data=query)
|
74
75
|
response_ = self.client.SmartContractState(request_)
|
75
76
|
decoded_data = self.decode_response_data(response_, cw20_tokens, tokens)
|
76
77
|
return decoded_data
|
@@ -61,5 +61,10 @@ class TokenServices:
|
|
61
61
|
decimals_token = token
|
62
62
|
if token == Token.native_token:
|
63
63
|
decimals_token = Token.wrapped_token.get(self.chain_id)
|
64
|
+
|
65
|
+
# Ignore decimals of missing native's wrapped token
|
66
|
+
if not decimals_token:
|
67
|
+
return {}
|
68
|
+
|
64
69
|
key = f"decimals_{token}_{block_number}".lower()
|
65
70
|
return {key: self.state_service.get_function_info(decimals_token, ERC20_ABI, "decimals", [], block_number)}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
defi_services/__init__.py,sha256=
|
1
|
+
defi_services/__init__.py,sha256=KiyyYbyEe0O858kmiWcg1RdmqGUYtk_JqRmc3_Ev2Q8,22
|
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
|
@@ -294,14 +294,14 @@ defi_services/abis/vault/lido/lido_withdrawl_queue.py,sha256=qKdsXQLKlNU3a_Nk68q
|
|
294
294
|
defi_services/abis/vault/lido/lido_wsteth.py,sha256=DJhMToJS43vV2r5WP2kZSiagt7R8MtKFT8u1xJBjZKU,8780
|
295
295
|
defi_services/abis/vault/lido/lidor_accounting_oracle_hash_consensus.py,sha256=TWCLaccDgvWJZZKLAeoznYgGi3g3M_hFqoo3KE_L7K8,21039
|
296
296
|
defi_services/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
297
|
-
defi_services/constants/chain_constant.py,sha256=
|
298
|
-
defi_services/constants/cosmos_decimals_constant.py,sha256=
|
297
|
+
defi_services/constants/chain_constant.py,sha256=llTCq697jtt64a_6QRxZK71Q3SMeoIyOY8RJXw5i5s8,1067
|
298
|
+
defi_services/constants/cosmos_decimals_constant.py,sha256=SjFkFbkvxVAk0jtok_1EaBh69ZE8S1fFAbVn6bdJO4s,13635
|
299
299
|
defi_services/constants/db_constant.py,sha256=gDMFFjhPOgQHuS9sPOTFbsfSdIfdWQEE4tGlxHQhNsE,2566
|
300
300
|
defi_services/constants/mongo_constant.py,sha256=qsDIq2Gg5MkBGaEOh4Fd9y6fOOidF4gGPnQwtaPon3E,398
|
301
301
|
defi_services/constants/network_constants.py,sha256=aCUhPFOA9oAMXrIrw67wfEvc4B3HcTlCCz9U1Ku4o50,13574
|
302
302
|
defi_services/constants/query_constant.py,sha256=6HSK5IToUQpKLqmTeCgKf0npwmog7GWFUmQpz_mbkgY,1088
|
303
303
|
defi_services/constants/time_constant.py,sha256=bC-0pYnfIFFR_0iVvkxhfyHfOclWNw9O3DbdO_nh258,181
|
304
|
-
defi_services/constants/token_constant.py,sha256=
|
304
|
+
defi_services/constants/token_constant.py,sha256=dGO_i-L_LLx4mSA0wIG4FoaL-OWOAd5bp6k7VucUjUQ,4965
|
305
305
|
defi_services/constants/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
306
306
|
defi_services/constants/entities/dex_constant.py,sha256=oCt8RS-0KjFW5zR5IU1Ys49nYCCAraY8pTivOpXoyvs,343
|
307
307
|
defi_services/constants/entities/dex_info_constant.py,sha256=6sLHxCmRz_6HW8WRe27FkOS-FGR-zC354iCTcEIjp78,1604
|
@@ -313,7 +313,7 @@ defi_services/constants/entities/vault_services.py,sha256=IMmQc15wS1KA7EuQqM_Ara
|
|
313
313
|
defi_services/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
314
314
|
defi_services/jobs/processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
315
315
|
defi_services/jobs/processors/call_state_processor.py,sha256=WseX0OaMA5D_ANYofrz7W2BooSMdHlGRay4NuiABmM4,436
|
316
|
-
defi_services/jobs/processors/cosmos_state_processor.py,sha256=
|
316
|
+
defi_services/jobs/processors/cosmos_state_processor.py,sha256=eZa2fO5Vh4n_VTJjKSHTud325KjHvFA_e8NcywDEun4,1813
|
317
317
|
defi_services/jobs/processors/multi_call_state_processor.py,sha256=AksswGMSyStbnvkQcBVb0Y2tdpkUgc1CWoeSiMpGy8U,462
|
318
318
|
defi_services/jobs/processors/multi_state_processor.py,sha256=Od7Y8zPz7xj0L-_0YuK4wg_94fX8Q1PquuKUUYteIJU,5731
|
319
319
|
defi_services/jobs/processors/solana_state_processor.py,sha256=szsBYrkEV8kBzuA_iaSVescnwKJ2MHoTbut5kORbWTs,4065
|
@@ -325,13 +325,13 @@ defi_services/jobs/queriers/solana_state_querier.py,sha256=TQELYo6GUoF8s-LfetqYb
|
|
325
325
|
defi_services/jobs/queriers/state_querier.py,sha256=q7cAW395urZjcWTpqw8m_nDunLyyTuAXJ3DRx_1HOxo,7384
|
326
326
|
defi_services/jobs/queriers/substrate_state_querier.py,sha256=_T0Dk06sP_uBKaxgj2J_EBtJDoq-hi8jU7Np4iuO0LA,3858
|
327
327
|
defi_services/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
328
|
-
defi_services/services/cosmos_token_services.py,sha256
|
328
|
+
defi_services/services/cosmos_token_services.py,sha256=-QGmhS-WtwJbOnOFQ7CuM10glPgzZvYPtPlCE6IZIKM,5248
|
329
329
|
defi_services/services/dex_protocol_services.py,sha256=J93P7kwy1v98aeA95ErT7jDCCOAelFuCNiTXl3PVFFo,6656
|
330
330
|
defi_services/services/nft_services.py,sha256=vKva0OJQTTxgP1lrZ5ij2sw2N44JxN5dfLLtvNJB6aA,2188
|
331
331
|
defi_services/services/protocol_services.py,sha256=3Yca433xGXowcV4EjFoQ90AJHg-SfuOBsDF7aMCJ8Zk,7626
|
332
332
|
defi_services/services/solana_token_services.py,sha256=NQKUHGMBe9eQciOaY3N20rPbIuNz108akrysX-mXfJU,1865
|
333
333
|
defi_services/services/substrate_token_services.py,sha256=HsjceBHo0fxQIcXgDaV0OBANLuggRwXAEPt7ASB0BKk,2904
|
334
|
-
defi_services/services/token_services.py,sha256=
|
334
|
+
defi_services/services/token_services.py,sha256=vISaOgwHsokpwWENGshRssvq2xuCVeL5gtr20SSYX78,2927
|
335
335
|
defi_services/services/dex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
336
336
|
defi_services/services/dex/pancakeswap_service.py,sha256=cN_L7897l8dh7DnNuHo6fcnYa-JLHI7yLLzBW1C9RlI,4637
|
337
337
|
defi_services/services/dex/pancakeswap_v2_service.py,sha256=ppRruxXHKeY3BQY5DxBQoNDjNIc6kqo3Wjgd6mO9CcA,13098
|
@@ -464,8 +464,8 @@ defi_services/utils/market_service.py,sha256=imPtPHBkpEx5JnhqeIWYqbCjsIEm8IKBYHN
|
|
464
464
|
defi_services/utils/memory_storage.py,sha256=BOT8laB0iVSCGE-oDlpWJQLbSC6X2blKX4zuQbs4inc,851
|
465
465
|
defi_services/utils/sqrt_price_math.py,sha256=9lgUeWFT4wjl3Vq3b7-jZ2bGvvZx7dDBSfVnM3lsZ8o,5575
|
466
466
|
defi_services/utils/thread_proxy.py,sha256=5Z8biAyEReUkh3vfJSvEv7GwMe3CsE5M8CbghkQtePw,2951
|
467
|
-
defi_state_querier-0.5.
|
468
|
-
defi_state_querier-0.5.
|
469
|
-
defi_state_querier-0.5.
|
470
|
-
defi_state_querier-0.5.
|
471
|
-
defi_state_querier-0.5.
|
467
|
+
defi_state_querier-0.5.7.dist-info/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
|
468
|
+
defi_state_querier-0.5.7.dist-info/METADATA,sha256=2jNWm8RrkBwLUcc5rH05G4bzi4I98wrRKdKw6dyAttw,4417
|
469
|
+
defi_state_querier-0.5.7.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
|
470
|
+
defi_state_querier-0.5.7.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
|
471
|
+
defi_state_querier-0.5.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|