defi-state-querier 0.5.6__py3-none-any.whl → 0.5.8__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/token_constant.py +3 -1
- defi_services/jobs/processors/cosmos_state_processor.py +6 -5
- defi_services/services/cosmos_token_services.py +22 -20
- defi_services/services/token_services.py +5 -0
- {defi_state_querier-0.5.6.dist-info → defi_state_querier-0.5.8.dist-info}/METADATA +1 -1
- {defi_state_querier-0.5.6.dist-info → defi_state_querier-0.5.8.dist-info}/RECORD +11 -11
- {defi_state_querier-0.5.6.dist-info → defi_state_querier-0.5.8.dist-info}/WHEEL +1 -1
- {defi_state_querier-0.5.6.dist-info → defi_state_querier-0.5.8.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.5.6.dist-info → defi_state_querier-0.5.8.dist-info}/top_level.txt +0 -0
defi_services/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.5.
|
1
|
+
__version__ = "0.5.8"
|
@@ -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
|
|
@@ -14,16 +14,17 @@ class CosmosStateProcessor:
|
|
14
14
|
if self.chain_id in MulticallContract.mapping:
|
15
15
|
data = cosmos.query_balances(address, tokens)
|
16
16
|
else:
|
17
|
-
|
18
|
-
|
19
|
-
for item in
|
17
|
+
result = cosmos.query_coin_balances(address=address)
|
18
|
+
data = {}
|
19
|
+
for item in result:
|
20
20
|
denom = item.get('denom', "").lower()
|
21
21
|
amount = int(item.get('amount', None))
|
22
22
|
decimal = Denoms.all.get(denom, {}).get("decimal", 0)
|
23
|
-
|
23
|
+
data[denom] = amount / 10 ** decimal
|
24
|
+
|
24
25
|
return data
|
25
26
|
|
26
|
-
def run(self, address: str, queries: list):
|
27
|
+
def run(self, address: str, queries: list, *args, **kwargs):
|
27
28
|
result = []
|
28
29
|
tokens = [query.get('entity_id').lower() for query in queries if query.get('query_type') == 'token_balance']
|
29
30
|
token_balances = self.get_token_balance(address, tokens)
|
@@ -14,8 +14,10 @@ class CosmosTokenServices:
|
|
14
14
|
def __init__(self, lcd: str, rest_uri: str, chain_id: str):
|
15
15
|
self.chain_id = chain_id
|
16
16
|
self.lcd = lcd
|
17
|
+
|
17
18
|
self.rest_uri = rest_uri
|
18
19
|
self.client = CosmWasmRestClient(RestClient(rest_address=rest_uri))
|
20
|
+
|
19
21
|
self.decimals = Denoms.cosmos
|
20
22
|
self.decimals.update(Denoms.orai)
|
21
23
|
|
@@ -23,34 +25,34 @@ class CosmosTokenServices:
|
|
23
25
|
def query_coin_balances(self, address: str):
|
24
26
|
responses = []
|
25
27
|
endpoint = '/cosmos/bank/v1beta1/balances/'
|
26
|
-
|
27
|
-
|
28
|
+
|
29
|
+
response = requests.get(self.lcd + endpoint + address, timeout=60).content
|
30
|
+
results = json.loads(response)
|
31
|
+
|
32
|
+
responses += results['balances']
|
33
|
+
pagination = results['pagination']['next_key']
|
34
|
+
|
35
|
+
while pagination is not None:
|
36
|
+
response = requests.get(self.lcd + endpoint + '?pagination.key=' + quote(str(pagination)), timeout=60)
|
37
|
+
results = json.loads(response.content)
|
38
|
+
|
28
39
|
responses += results['balances']
|
29
40
|
pagination = results['pagination']['next_key']
|
30
|
-
|
31
|
-
|
32
|
-
requests.get(self.lcd + endpoint + '?pagination.key=' + quote(str(pagination)), timeout=60).content)
|
33
|
-
responses += results['balances']
|
34
|
-
pagination = results['pagination']['next_key']
|
35
|
-
return responses
|
36
|
-
except Exception:
|
37
|
-
raise Exception
|
41
|
+
|
42
|
+
return responses
|
38
43
|
|
39
44
|
# queries the balance of a given denom for a single account.
|
40
45
|
def query_balances_by_denom(self, address, denom):
|
41
46
|
endpoint = '/cosmos/bank/v1beta1/balances/'
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
except Exception:
|
46
|
-
raise Exception
|
47
|
+
|
48
|
+
response = requests.get(self.lcd + endpoint + address + '/by_denom?denom=' + denom, timeout=60)
|
49
|
+
return json.loads(response.content)
|
47
50
|
|
48
51
|
def query_token_decimal(self):
|
49
52
|
endpoint = '/cosmos/bank/v1beta1/denoms_metadata'
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
raise Exception
|
53
|
+
|
54
|
+
response = requests.get(self.lcd + endpoint, timeout=60)
|
55
|
+
return json.loads(response.content)
|
54
56
|
|
55
57
|
def query_balances(self, address: str, tokens: list):
|
56
58
|
balance_query, cw20_tokens = self.get_balance_function_info(address, tokens)
|
@@ -93,7 +95,7 @@ class CosmosTokenServices:
|
|
93
95
|
balances[tokens[idx]] = int(balance_data[idx])
|
94
96
|
|
95
97
|
for token in tokens:
|
96
|
-
if token
|
98
|
+
if decimals.get(token) is not None:
|
97
99
|
balances[token] /= 10**decimals[token]
|
98
100
|
else:
|
99
101
|
balances[token] /= 10**self.decimals.get(token, {}).get("decimal", 0)
|
@@ -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=bDuZ37zImJZsQ3a4pW87q4kg-zsIBrUFAv1aumIf_7k,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=
|
297
|
+
defi_services/constants/chain_constant.py,sha256=llTCq697jtt64a_6QRxZK71Q3SMeoIyOY8RJXw5i5s8,1067
|
298
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=u9CdGF41XQlxe3IyXV2ocdHdaq1aLeonOZOIpCPNojY,1831
|
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=pRw_rEhoofd6V1-KwU74ZHjhg6PsXSznK6eD1ASyROA,5108
|
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.8.dist-info/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
|
468
|
+
defi_state_querier-0.5.8.dist-info/METADATA,sha256=nHPUkRUA4JSqteq0wAaCA_OIaPJSXZOZTAat6zZOo94,4417
|
469
|
+
defi_state_querier-0.5.8.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
|
470
|
+
defi_state_querier-0.5.8.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
|
471
|
+
defi_state_querier-0.5.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|