Skip to content

Commit f656944

Browse files
committed
make api_key required param
1 parent d5e2fb1 commit f656944

8 files changed

Lines changed: 44 additions & 45 deletions

File tree

.github/workflows/test.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ jobs:
2929
isort .
3030
test:
3131
needs: linting
32+
env:
33+
ANKR_API_KEY: ${{ secrets.ANKR_API_KEY }}
3234
strategy:
3335
fail-fast: true
3436
matrix:

ankr/advanced_apis.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
class AnkrMultichainAPI:
1111
def __init__(
1212
self,
13-
api_key: Optional[str] = None,
13+
api_key: str,
1414
endpoint_uri: Optional[str] = None,
1515
) -> None:
16-
self.provider = MultichainHTTPProvider(api_key or "", endpoint_uri)
16+
self.provider = MultichainHTTPProvider(api_key, endpoint_uri)
1717

1818

1919
class AnkrQueryAPI(AnkrMultichainAPI):

ankr/providers.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,12 @@
1919
class MultichainHTTPProvider(HTTPProvider):
2020
def __init__(
2121
self,
22-
api_key: str = "",
22+
api_key: str,
2323
endpoint_uri: Optional[Union[URI, str]] = None,
2424
request_kwargs: Optional[Any] = None,
2525
session: Optional[Any] = None,
2626
) -> None:
27-
if endpoint_uri is None:
28-
endpoint_uri = "https://rpc.ankr.com/multichain/"
27+
endpoint_uri = endpoint_uri or "https://rpc.ankr.com/multichain/"
2928
super().__init__(endpoint_uri + api_key, request_kwargs, session)
3029

3130
def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:

ankr/web3.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class AnkrWeb3(Web3, metaclass=_Web3NamedMeta):
5656

5757
def __init__(
5858
self,
59-
api_key: Optional[str] = None,
59+
api_key: str,
6060
request_kwargs: Optional[Any] = None,
6161
middlewares: Optional[Sequence[Any]] = None,
6262
modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]] = None,

tests/conftest.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import os
2+
3+
import pytest
4+
5+
from ankr import AnkrAdvancedAPI
6+
7+
8+
@pytest.fixture
9+
def api_key() -> str:
10+
key = os.environ.get("ANKR_API_KEY")
11+
assert key
12+
return key
13+
14+
15+
@pytest.fixture
16+
def client(api_key: str) -> AnkrAdvancedAPI:
17+
return AnkrAdvancedAPI(api_key)
18+
19+

tests/test_client.py

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,14 @@
99

1010

1111
def test_client_api_key() -> None:
12-
client = AnkrAdvancedAPI()
13-
client_with_key = AnkrAdvancedAPI("my-test-api-key")
14-
15-
assert client.provider.endpoint_uri == "https://rpc.ankr.com/multichain/"
1612
assert (
17-
client_with_key.provider.endpoint_uri
13+
AnkrAdvancedAPI("my-test-api-key").provider.endpoint_uri
1814
== "https://rpc.ankr.com/multichain/my-test-api-key"
1915
)
2016

2117

2218
@pytest.mark.webtest
23-
def test_get_logs() -> None:
24-
client = AnkrAdvancedAPI()
19+
def test_get_logs(client: AnkrAdvancedAPI) -> None:
2520
logs = list(
2621
client.get_logs(
2722
blockchain=Blockchain.ETH,
@@ -43,8 +38,7 @@ def test_get_logs() -> None:
4338

4439

4540
@pytest.mark.webtest
46-
def test_get_blocks() -> None:
47-
client = AnkrAdvancedAPI()
41+
def test_get_blocks(client: AnkrAdvancedAPI) -> None:
4842
blocks = client.get_blocks(
4943
blockchain=Blockchain.ETH,
5044
from_block=14500001,
@@ -63,8 +57,7 @@ def test_get_blocks() -> None:
6357

6458

6559
@pytest.mark.webtest
66-
def test_get_nfts() -> None:
67-
client = AnkrAdvancedAPI()
60+
def test_get_nfts(client: AnkrAdvancedAPI) -> None:
6861
nfts = list(
6962
client.get_nfts(
7063
blockchain=Blockchain.ETH,
@@ -83,8 +76,7 @@ def test_get_nfts() -> None:
8376

8477

8578
@pytest.mark.webtest
86-
def test_get_nft_metadata() -> None:
87-
client = AnkrAdvancedAPI()
79+
def test_get_nft_metadata(client: AnkrAdvancedAPI) -> None:
8880
reply = client.get_nft_metadata(
8981
blockchain="eth",
9082
contract_address="0x4100670ee2f8aef6c47a4ed13c7f246e621228ec",
@@ -99,8 +91,7 @@ def test_get_nft_metadata() -> None:
9991

10092

10193
@pytest.mark.webtest
102-
def test_get_nft_holders() -> None:
103-
client = AnkrAdvancedAPI()
94+
def test_get_nft_holders(client: AnkrAdvancedAPI) -> None:
10495
holders = list(
10596
client.get_nft_holders(
10697
blockchain="eth",
@@ -114,8 +105,7 @@ def test_get_nft_holders() -> None:
114105

115106

116107
@pytest.mark.webtest
117-
def test_get_transactions() -> None:
118-
client = AnkrAdvancedAPI()
108+
def test_get_transactions(client: AnkrAdvancedAPI) -> None:
119109
tx = client.get_transaction(
120110
transaction_hash="0x82c13aaac6f0b6471afb94a3a64ae89d45baa3608ad397621dbb0d847f51196f",
121111
include_logs=True,
@@ -125,7 +115,7 @@ def test_get_transactions() -> None:
125115

126116
assert tx
127117
assert (
128-
tx.hash == "0x82c13aaac6f0b6471afb94a3a64ae89d45baa3608ad397621dbb0d847f51196f"
118+
tx.hash == "0x82c13aaac6f0b6471afb94a3a64ae89d45baa3608ad397621dbb0d847f51196f"
129119
)
130120
assert tx.to_address == "0x98767abab06e45a181ab73ae4cd0fecd0fbd0cd0"
131121
assert tx.from_address == "0x64aa6f93e0e1f49ff4958990c40d4bf17dafc0eb"
@@ -135,8 +125,7 @@ def test_get_transactions() -> None:
135125

136126

137127
@pytest.mark.webtest
138-
def test_get_token_holders() -> None:
139-
client = AnkrAdvancedAPI()
128+
def test_get_token_holders(client: AnkrAdvancedAPI) -> None:
140129
holders = list(
141130
client.get_token_holders(
142131
blockchain="bsc",
@@ -152,8 +141,7 @@ def test_get_token_holders() -> None:
152141

153142

154143
@pytest.mark.webtest
155-
def test_get_token_holders_pagination() -> None:
156-
client = AnkrAdvancedAPI()
144+
def test_get_token_holders_pagination(client: AnkrAdvancedAPI) -> None:
157145
holders = list(
158146
client.get_token_holders(
159147
blockchain="bsc",
@@ -169,8 +157,7 @@ def test_get_token_holders_pagination() -> None:
169157

170158

171159
@pytest.mark.webtest
172-
def test_get_token_holders_count_history() -> None:
173-
client = AnkrAdvancedAPI()
160+
def test_get_token_holders_count_history(client: AnkrAdvancedAPI) -> None:
174161
daily_holders_counts = list(
175162
client.get_token_holders_count_history(
176163
blockchain="bsc",
@@ -187,8 +174,7 @@ def test_get_token_holders_count_history() -> None:
187174

188175

189176
@pytest.mark.webtest
190-
def test_get_token_holders_count() -> None:
191-
client = AnkrAdvancedAPI()
177+
def test_get_token_holders_count(client: AnkrAdvancedAPI) -> None:
192178
holders_count = client.get_token_holders_count(
193179
blockchain="bsc",
194180
contract_address="0xf307910A4c7bbc79691fD374889b36d8531B08e3",
@@ -200,8 +186,7 @@ def test_get_token_holders_count() -> None:
200186

201187

202188
@pytest.mark.webtest
203-
def test_get_account_balance() -> None:
204-
client = AnkrAdvancedAPI()
189+
def test_get_account_balance(client: AnkrAdvancedAPI) -> None:
205190
assets = list(
206191
client.get_account_balance(
207192
wallet_address="0x77A859A53D4de24bBC0CC80dD93Fbe391Df45527",
@@ -214,8 +199,7 @@ def test_get_account_balance() -> None:
214199

215200

216201
@pytest.mark.webtest
217-
def test_get_token_price() -> None:
218-
client = AnkrAdvancedAPI()
202+
def test_get_token_price(client: AnkrAdvancedAPI) -> None:
219203
price = client.get_token_price(
220204
contract_address="0x8290333cef9e6d528dd5618fb97a76f268f3edd4",
221205
blockchain="eth",
@@ -226,8 +210,7 @@ def test_get_token_price() -> None:
226210

227211

228212
@pytest.mark.webtest
229-
def test_get_token_price__no_price() -> None:
230-
client = AnkrAdvancedAPI()
213+
def test_get_token_price__no_price(client: AnkrAdvancedAPI) -> None:
231214
price = client.get_token_price(
232215
contract_address="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
233216
blockchain="eth",

tests/test_providers.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,8 @@
2222

2323

2424
def test_provider_api_key() -> None:
25-
provider = MultichainHTTPProvider()
26-
provider_with_key = MultichainHTTPProvider("my-test-api-key")
27-
28-
assert provider.endpoint_uri == "https://rpc.ankr.com/multichain/"
2925
assert (
30-
provider_with_key.endpoint_uri
26+
MultichainHTTPProvider("my-test-api-key").endpoint_uri
3127
== "https://rpc.ankr.com/multichain/my-test-api-key"
3228
)
3329

tests/test_web3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
"syscoin",
2626
],
2727
)
28-
def test_ankr_web3(blockchain: str) -> None:
29-
w3 = AnkrWeb3()
28+
def test_ankr_web3(blockchain: str, api_key: str) -> None:
29+
w3 = AnkrWeb3(api_key)
3030

3131
block = getattr(w3, blockchain).get_block("latest")
3232

0 commit comments

Comments
 (0)