blockapi 1.4.0__tar.gz → 2.0.0__tar.gz

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 (105) hide show
  1. {blockapi-1.4.0 → blockapi-2.0.0}/PKG-INFO +6 -9
  2. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/services.py +2 -14
  3. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/conftest.py +10 -1
  4. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_solana.py +1 -1
  5. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/perpetual.py +1 -1
  6. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/synthetix.py +3 -3
  7. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/web3_utils.py +2 -2
  8. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/models.py +1 -0
  9. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/PKG-INFO +6 -9
  10. blockapi-2.0.0/blockapi.egg-info/requires.txt +14 -0
  11. {blockapi-1.4.0 → blockapi-2.0.0}/setup.py +6 -9
  12. blockapi-1.4.0/blockapi.egg-info/requires.txt +0 -17
  13. {blockapi-1.4.0 → blockapi-2.0.0}/LICENSE.md +0 -0
  14. {blockapi-1.4.0 → blockapi-2.0.0}/README.md +0 -0
  15. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/__init__.py +0 -0
  16. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/__init__.py +0 -0
  17. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_blockapi.py +0 -0
  18. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_num.py +0 -0
  19. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_random_user_agent.py +0 -0
  20. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/__init__.py +0 -0
  21. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/__init__.py +0 -0
  22. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/covalenth/__init__.py +0 -0
  23. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/covalenth/test_ethereum.py +0 -0
  24. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/fake_sleep_provider.py +0 -0
  25. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/__init__.py +0 -0
  26. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_magic_eden.py +0 -0
  27. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_opensea.py +0 -0
  28. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_simple_hash.py +0 -0
  29. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_unisat.py +0 -0
  30. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/perpetual/__init__.py +0 -0
  31. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/perpetual/test_perpetual.py +0 -0
  32. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/synthetix/__init__.py +0 -0
  33. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/synthetix/test_synthetix.py +0 -0
  34. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchainos.py +0 -0
  35. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_btc.py +0 -0
  36. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_doge.py +0 -0
  37. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_ltc.py +0 -0
  38. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_cosmos.py +0 -0
  39. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_ethplorer.py +0 -0
  40. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_multisources.py +0 -0
  41. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_optimistic_etherscan.py +0 -0
  42. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_subscan_polkadot.py +0 -0
  43. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_sui.py +0 -0
  44. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_trezor_btc.py +0 -0
  45. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_base.py +0 -0
  46. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_blockchain_api.py +0 -0
  47. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_blockchain_mapping.py +0 -0
  48. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_data.py +0 -0
  49. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_enumerate_classes.py +0 -0
  50. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_generic.py +0 -0
  51. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_models.py +0 -0
  52. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test_data.py +0 -0
  53. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/__init__.py +0 -0
  54. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/address.py +0 -0
  55. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/datetime.py +0 -0
  56. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/num.py +0 -0
  57. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/user_agent.py +0 -0
  58. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/__init__.py +0 -0
  59. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/__init__.py +0 -0
  60. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/blockchainos.py +0 -0
  61. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/blockchair.py +0 -0
  62. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/cosmos.py +0 -0
  63. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/__init__.py +0 -0
  64. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/arbitrum.py +0 -0
  65. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/astar.py +0 -0
  66. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/avalanche.py +0 -0
  67. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/axie.py +0 -0
  68. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/base.py +0 -0
  69. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/binance_smart_chain.py +0 -0
  70. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/ethereum.py +0 -0
  71. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/fantom.py +0 -0
  72. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/heco.py +0 -0
  73. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/iotex.py +0 -0
  74. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/klaytn.py +0 -0
  75. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/moonbeam.py +0 -0
  76. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/palm.py +0 -0
  77. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/polygon.py +0 -0
  78. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/rsk.py +0 -0
  79. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/debank.py +0 -0
  80. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/debank_maps.py +0 -0
  81. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/ethplorer.py +0 -0
  82. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/__init__.py +0 -0
  83. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/magic_eden.py +0 -0
  84. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/opensea.py +0 -0
  85. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/simple_hash.py +0 -0
  86. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/unisat.py +0 -0
  87. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/optimistic_etherscan.py +0 -0
  88. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/__init__.py +0 -0
  89. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/perp_abi.py +0 -0
  90. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/solana.py +0 -0
  91. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/subscan.py +0 -0
  92. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/sui.py +0 -0
  93. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/__init__.py +0 -0
  94. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/synthetix_abi.py +0 -0
  95. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/terra.py +0 -0
  96. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/trezor.py +0 -0
  97. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/base.py +0 -0
  98. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/blockchain_mapping.py +0 -0
  99. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/coin_mapping.py +0 -0
  100. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/coins.py +0 -0
  101. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/SOURCES.txt +0 -0
  102. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/dependency_links.txt +0 -0
  103. {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/top_level.txt +0 -0
  104. {blockapi-1.4.0 → blockapi-2.0.0}/pyproject.toml +0 -0
  105. {blockapi-1.4.0 → blockapi-2.0.0}/setup.cfg +0 -0
@@ -1,29 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blockapi
3
- Version: 1.4.0
3
+ Version: 2.0.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: https://github.com/crypkit/blockapi
6
6
  Author: Devmons s.r.o.
7
7
  License: MIT
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE.md
10
- Requires-Dist: requests==2.32.4
11
- Requires-Dist: pytz>=2019.2
10
+ Requires-Dist: requests<3.0,>=2.28
12
11
  Requires-Dist: python-dateutil>=2.8.0
13
12
  Requires-Dist: coinaddrng==1.1.1
14
- Requires-Dist: cfscrape>=2.0.8
15
- Requires-Dist: ethereum_input_decoder>=0.2.2
16
- Requires-Dist: web3<6.0.0,>=5.2.2
13
+ Requires-Dist: web3<8.0.0,>=5.2.2
17
14
  Requires-Dist: bs4>=0.0.1
18
15
  Requires-Dist: lxml>=4.4.1
19
16
  Requires-Dist: pydantic>=1.10.2
20
- Requires-Dist: marko==1.3.0
17
+ Requires-Dist: marko<2.0.0,>=1.3.0
21
18
  Requires-Dist: fake_useragent>=1.1.3
22
19
  Requires-Dist: pytest
23
20
  Requires-Dist: pytest-vcr
24
21
  Requires-Dist: requests_mock>=1.9.3
25
- Requires-Dist: attrs<=22.1.0,>=17.4.0
26
- Requires-Dist: solders==0.22.0
22
+ Requires-Dist: attrs<23.0.0,>=17.4.0
23
+ Requires-Dist: solders>=0.22.0
27
24
  Dynamic: author
28
25
  Dynamic: description
29
26
  Dynamic: description-content-type
@@ -3,13 +3,10 @@ from abc import ABC, abstractmethod
3
3
  from datetime import datetime
4
4
  from time import sleep
5
5
 
6
- import cfscrape
7
6
  import requests
8
7
 
9
8
  import blockapi
10
9
 
11
- cfscrape.DEFAULT_CIPHERS += ':!SHA'
12
-
13
10
 
14
11
  class Service(ABC):
15
12
  """General class for handling blockchain API services."""
@@ -34,13 +31,7 @@ class Service(ABC):
34
31
  return self.base_url
35
32
 
36
33
  def request(
37
- self,
38
- request_method,
39
- with_rate_limit=False,
40
- with_cloudflare=False,
41
- body=None,
42
- headers=None,
43
- **params
34
+ self, request_method, with_rate_limit=False, body=None, headers=None, **params
44
35
  ):
45
36
  request_url = self.build_request_url(request_method, **params)
46
37
 
@@ -53,10 +44,7 @@ class Service(ABC):
53
44
  if not headers:
54
45
  headers = {}
55
46
 
56
- if with_cloudflare:
57
- reqobj = cfscrape.create_scraper()
58
- else:
59
- reqobj = requests
47
+ reqobj = requests
60
48
 
61
49
  if with_rate_limit and self.rate_limit:
62
50
  self.wait_for_next_request()
@@ -1,6 +1,8 @@
1
1
  import json
2
2
  import os
3
- from typing import List, Union
3
+ from typing import Union
4
+
5
+ import pytest
4
6
 
5
7
 
6
8
  def read_json_file(file_name: str) -> Union[list, dict]:
@@ -13,3 +15,10 @@ def read_file(file_name: str) -> str:
13
15
  json_path = os.path.abspath(os.path.join(os.path.dirname(__file__), file_name))
14
16
  with open(json_path, encoding="utf-8") as f:
15
17
  return f.read()
18
+
19
+
20
+ @pytest.fixture(scope='session')
21
+ def vcr_config():
22
+ return {
23
+ 'decode_compressed_response': True,
24
+ }
@@ -549,7 +549,7 @@ def metaplex_content():
549
549
  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
550
550
  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
551
551
  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
552
- 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ=='
552
+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='
553
553
  )
554
554
 
555
555
 
@@ -49,7 +49,7 @@ def perp_contract_address(contract_name: str) -> ChecksumAddress:
49
49
  raise ValueError('Invalid contract name.')
50
50
 
51
51
  contract_address = contract_map[contract_name]
52
- return Web3.toChecksumAddress(contract_address)
52
+ return Web3.to_checksum_address(contract_address)
53
53
 
54
54
 
55
55
  @lru_cache()
@@ -84,7 +84,7 @@ def snx_contract_address(
84
84
  # as last 42 characters
85
85
  try:
86
86
  contract_address = result.url[-42:]
87
- return Web3.toChecksumAddress(contract_address)
87
+ return Web3.to_checksum_address(contract_address)
88
88
  except Exception:
89
89
  raise ValueError(f'Contract {contract_name} not found.')
90
90
 
@@ -118,7 +118,7 @@ def snx_optimism_contract_address(
118
118
 
119
119
  table = BeautifulSoup(html_tab_raw, 'lxml')
120
120
  row = table.find('td', text=contract_name).parent
121
- return Web3.toChecksumAddress(row.contents[5].text.strip())
121
+ return Web3.to_checksum_address(row.contents[5].text.strip())
122
122
 
123
123
  except Exception:
124
124
  raise ValueError(f'Contract {contract_name} not found.')
@@ -341,7 +341,7 @@ class SynthetixApi(CustomizableBlockchainApi, IBalance, ABC):
341
341
  if symbol == 'SNX':
342
342
  synth_addr = easy_call(snx_contract, 'proxy')
343
343
  else:
344
- synth_contract_addr = Web3.toChecksumAddress(
344
+ synth_contract_addr = Web3.to_checksum_address(
345
345
  easy_call(snx_contract, 'synths', symbol.encode())
346
346
  )
347
347
  synth_contract = self.w3.eth.contract(synth_contract_addr, abi=erc20_abi)
@@ -133,10 +133,10 @@ def to_checksum_address(func):
133
133
 
134
134
  @functools.wraps(func)
135
135
  def inner(self, address, *args, **kwargs):
136
- return func(self, Web3.toChecksumAddress(address), *args, **kwargs)
136
+ return func(self, Web3.to_checksum_address(address), *args, **kwargs)
137
137
 
138
138
  return inner
139
139
 
140
140
 
141
141
  def ensure_checksum_address(address: Optional[str]) -> Optional[str]:
142
- return Web3.toChecksumAddress(address) if address is not None else None
142
+ return Web3.to_checksum_address(address) if address is not None else None
@@ -255,6 +255,7 @@ class Blockchain(str, Enum):
255
255
  PERSISTENCE = 'persistence'
256
256
  PICASSO = 'picasso'
257
257
  PLAT_ON = 'plat-on'
258
+ PLASMA = 'plasma'
258
259
  POLIS_CHAIN = 'polis-chain'
259
260
  POLKADOT = 'polkadot'
260
261
  POLYGON = 'polygon'
@@ -1,29 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blockapi
3
- Version: 1.4.0
3
+ Version: 2.0.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: https://github.com/crypkit/blockapi
6
6
  Author: Devmons s.r.o.
7
7
  License: MIT
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE.md
10
- Requires-Dist: requests==2.32.4
11
- Requires-Dist: pytz>=2019.2
10
+ Requires-Dist: requests<3.0,>=2.28
12
11
  Requires-Dist: python-dateutil>=2.8.0
13
12
  Requires-Dist: coinaddrng==1.1.1
14
- Requires-Dist: cfscrape>=2.0.8
15
- Requires-Dist: ethereum_input_decoder>=0.2.2
16
- Requires-Dist: web3<6.0.0,>=5.2.2
13
+ Requires-Dist: web3<8.0.0,>=5.2.2
17
14
  Requires-Dist: bs4>=0.0.1
18
15
  Requires-Dist: lxml>=4.4.1
19
16
  Requires-Dist: pydantic>=1.10.2
20
- Requires-Dist: marko==1.3.0
17
+ Requires-Dist: marko<2.0.0,>=1.3.0
21
18
  Requires-Dist: fake_useragent>=1.1.3
22
19
  Requires-Dist: pytest
23
20
  Requires-Dist: pytest-vcr
24
21
  Requires-Dist: requests_mock>=1.9.3
25
- Requires-Dist: attrs<=22.1.0,>=17.4.0
26
- Requires-Dist: solders==0.22.0
22
+ Requires-Dist: attrs<23.0.0,>=17.4.0
23
+ Requires-Dist: solders>=0.22.0
27
24
  Dynamic: author
28
25
  Dynamic: description
29
26
  Dynamic: description-content-type
@@ -0,0 +1,14 @@
1
+ requests<3.0,>=2.28
2
+ python-dateutil>=2.8.0
3
+ coinaddrng==1.1.1
4
+ web3<8.0.0,>=5.2.2
5
+ bs4>=0.0.1
6
+ lxml>=4.4.1
7
+ pydantic>=1.10.2
8
+ marko<2.0.0,>=1.3.0
9
+ fake_useragent>=1.1.3
10
+ pytest
11
+ pytest-vcr
12
+ requests_mock>=1.9.3
13
+ attrs<23.0.0,>=17.4.0
14
+ solders>=0.22.0
@@ -6,7 +6,7 @@ with open("README.md", "r") as f:
6
6
 
7
7
  PACKAGES = find_packages(where='.')
8
8
 
9
- __version__ = "1.4.0"
9
+ __version__ = "2.0.0"
10
10
 
11
11
  setuptools.setup(
12
12
  name='blockapi',
@@ -18,23 +18,20 @@ setuptools.setup(
18
18
  long_description_content_type='text/markdown',
19
19
  packages=PACKAGES,
20
20
  install_requires=[
21
- 'requests==2.32.4',
22
- 'pytz>=2019.2',
21
+ 'requests>=2.28,<3.0',
23
22
  'python-dateutil>=2.8.0',
24
23
  'coinaddrng==1.1.1',
25
- 'cfscrape>=2.0.8',
26
- 'ethereum_input_decoder>=0.2.2',
27
- 'web3>=5.2.2,<6.0.0',
24
+ 'web3>=5.2.2,<8.0.0',
28
25
  'bs4>=0.0.1',
29
26
  'lxml>=4.4.1',
30
27
  'pydantic>=1.10.2',
31
- 'marko==1.3.0',
28
+ 'marko>=1.3.0,<2.0.0',
32
29
  'fake_useragent>=1.1.3',
33
30
  'pytest',
34
31
  'pytest-vcr',
35
32
  'requests_mock>=1.9.3',
36
- 'attrs>=17.4.0,<=22.1.0',
37
- 'solders==0.22.0',
33
+ 'attrs>=17.4.0,<23.0.0',
34
+ 'solders>=0.22.0',
38
35
  ],
39
36
  url="https://github.com/crypkit/blockapi",
40
37
  )
@@ -1,17 +0,0 @@
1
- requests==2.32.4
2
- pytz>=2019.2
3
- python-dateutil>=2.8.0
4
- coinaddrng==1.1.1
5
- cfscrape>=2.0.8
6
- ethereum_input_decoder>=0.2.2
7
- web3<6.0.0,>=5.2.2
8
- bs4>=0.0.1
9
- lxml>=4.4.1
10
- pydantic>=1.10.2
11
- marko==1.3.0
12
- fake_useragent>=1.1.3
13
- pytest
14
- pytest-vcr
15
- requests_mock>=1.9.3
16
- attrs<=22.1.0,>=17.4.0
17
- solders==0.22.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes