defi-state-querier 0.5.6__py3-none-any.whl → 0.5.8__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "0.5.6"
1
+ __version__ = "0.5.8"
@@ -28,6 +28,8 @@ class Chain:
28
28
  okc = '0x42'
29
29
  aurora = '0x4e454152'
30
30
  moonriver = '0x505'
31
+ blast = '0xee'
32
+ oasis_sapphire = '0x5afe'
31
33
 
32
34
  native_decimals = {
33
35
  tron: 6,
@@ -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
- data = cosmos.query_coin_balances(address=address)
18
- result = {}
19
- for item in data:
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
- result[denom] = amount / 10 ** decimal
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
- try:
27
- results = json.loads(requests.get(self.lcd + endpoint + address, timeout=60).content)
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
- while pagination is not None:
31
- results = json.loads(
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
- try:
43
- return json.loads(
44
- requests.get(self.lcd + endpoint + address + '/by_denom?denom=' + denom, timeout=60).content)
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
- try:
51
- return json.loads(requests.get(self.lcd + endpoint, timeout=60).content)
52
- except Exception:
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 in decimals:
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: defi-state-querier
3
- Version: 0.5.6
3
+ Version: 0.5.8
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=CMH34Gt1AqO7z_TqRj94XwohGoVCf8aes0djkqm45mk,22
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=aU7xLaQYLro-7sI5Jpyi0tEHhEQcchyxlxEEJaotFMM,1018
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=4iDWis589XF4_OIcBOqA7_qIfCde-nV6fDaV__5c2D4,4822
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=eZa2fO5Vh4n_VTJjKSHTud325KjHvFA_e8NcywDEun4,1813
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=-QGmhS-WtwJbOnOFQ7CuM10glPgzZvYPtPlCE6IZIKM,5248
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=t6eJYemNyiG_4TObjKnQOz8MmSqXBKjsC0A3fPBeDuM,2800
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.6.dist-info/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
468
- defi_state_querier-0.5.6.dist-info/METADATA,sha256=jksOD0A7CWoHH9ykENU3VhLBGav0P_DA5MWriPxQ74o,4417
469
- defi_state_querier-0.5.6.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
470
- defi_state_querier-0.5.6.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
471
- defi_state_querier-0.5.6.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.1)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5