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.
- {blockapi-1.4.0 → blockapi-2.0.0}/PKG-INFO +6 -9
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/services.py +2 -14
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/conftest.py +10 -1
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_solana.py +1 -1
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/perpetual.py +1 -1
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/synthetix.py +3 -3
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/web3_utils.py +2 -2
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/models.py +1 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/PKG-INFO +6 -9
- blockapi-2.0.0/blockapi.egg-info/requires.txt +14 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/setup.py +6 -9
- blockapi-1.4.0/blockapi.egg-info/requires.txt +0 -17
- {blockapi-1.4.0 → blockapi-2.0.0}/LICENSE.md +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/README.md +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_blockapi.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_num.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/test_random_user_agent.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/covalenth/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/covalenth/test_ethereum.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/fake_sleep_provider.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_magic_eden.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_opensea.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_simple_hash.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/nft/test_unisat.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/perpetual/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/perpetual/test_perpetual.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/synthetix/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/synthetix/test_synthetix.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchainos.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_btc.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_doge.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_blockchair_ltc.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_cosmos.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_ethplorer.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_multisources.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_optimistic_etherscan.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_subscan_polkadot.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_sui.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/api/test_trezor_btc.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_base.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_blockchain_api.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_blockchain_mapping.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_data.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_enumerate_classes.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_generic.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test/v2/test_models.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/test_data.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/address.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/datetime.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/num.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/utils/user_agent.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/blockchainos.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/blockchair.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/cosmos.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/arbitrum.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/astar.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/avalanche.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/axie.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/base.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/binance_smart_chain.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/ethereum.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/fantom.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/heco.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/iotex.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/klaytn.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/moonbeam.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/palm.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/polygon.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/covalenth/rsk.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/debank.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/debank_maps.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/ethplorer.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/magic_eden.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/opensea.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/simple_hash.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/nft/unisat.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/optimistic_etherscan.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/perpetual/perp_abi.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/solana.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/subscan.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/sui.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/__init__.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/synthetix/synthetix_abi.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/terra.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/api/trezor.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/base.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/blockchain_mapping.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/coin_mapping.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi/v2/coins.py +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/SOURCES.txt +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/dependency_links.txt +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/blockapi.egg-info/top_level.txt +0 -0
- {blockapi-1.4.0 → blockapi-2.0.0}/pyproject.toml +0 -0
- {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:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
26
|
-
Requires-Dist: solders
|
|
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
|
-
|
|
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
|
|
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
|
-
'
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
142
|
+
return Web3.to_checksum_address(address) if address is not None else None
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blockapi
|
|
3
|
-
Version:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
26
|
-
Requires-Dist: solders
|
|
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__ = "
|
|
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
|
|
22
|
-
'pytz>=2019.2',
|
|
21
|
+
'requests>=2.28,<3.0',
|
|
23
22
|
'python-dateutil>=2.8.0',
|
|
24
23
|
'coinaddrng==1.1.1',
|
|
25
|
-
'
|
|
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
|
|
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
|
|
37
|
-
'solders
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|