Skip to content

Commit 804acd6

Browse files
authored
refactor: query params typehinting (#145)
1 parent 53b0876 commit 804acd6

31 files changed

+715
-91
lines changed

client/api/api_nodes.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types.api_nodes import ApiNodesQuery
25

36

47
class ApiNodes(Resource):
58

6-
def all(self, query={}):
9+
def all(self, query: Optional[ApiNodesQuery] = None):
710
return self.with_endpoint('api').request_get('api-nodes', query)

client/api/blocks.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types.blocks import BlockTransactionsQuery, BlocksQuery
25

36

47
class Blocks(Resource):
58

6-
def all(self, query={}):
9+
def all(self, query: Optional[BlocksQuery] = None):
710
return self.with_endpoint('api').request_get('blocks', query)
811

9-
def get(self, block_id):
10-
return self.with_endpoint('api').request_get(f'blocks/{block_id}')
12+
def get(self, block_hash: str):
13+
return self.with_endpoint('api').request_get(f'blocks/{block_hash}')
1114

1215
def first(self):
1316
return self.with_endpoint('api').request_get('blocks/first')
1417

1518
def last(self):
1619
return self.with_endpoint('api').request_get('blocks/last')
1720

18-
def transactions(self, block_id, query={}):
21+
def transactions(
22+
self,
23+
block_hash: str,
24+
query: Optional[BlockTransactionsQuery] = None,
25+
):
1926
return self.with_endpoint('api').request_get(
20-
f'blocks/{block_id}/transactions', query
27+
f'blocks/{block_hash}/transactions', query
2128
)

client/api/commits.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
class Commits(Resource):
55

6-
def show(self, block_number):
7-
return self.with_endpoint('api').request_get(f'commits/{block_number}')
6+
def get(self, height: int):
7+
return self.with_endpoint('api').request_get(f'commits/{height}')

client/api/evm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from typing import Any
21
from client.resource import Resource
2+
from client.types.evm import EvmBodyPartialParams
33

44

55
class EVM(Resource):
6-
def call(self, params: dict[str, Any]):
6+
def call(self, payload: EvmBodyPartialParams):
77
return self.with_endpoint('evm').request_post('', {
88
'jsonrpc': "2.0",
9-
**params,
9+
**payload,
1010
})

client/api/node.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types.node import NodeFeesQuery
25

36

47
class Node(Resource):
@@ -19,5 +22,5 @@ def crypto(self):
1922
'node/configuration/crypto'
2023
)
2124

22-
def fees(self, query={}):
25+
def fees(self, query: Optional[NodeFeesQuery] = None):
2326
return self.with_endpoint('api').request_get('node/fees', query)

client/api/peers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types.peers import PeersQuery
25

36

47
class Peers(Resource):
58

6-
def all(self, query={}):
9+
def all(self, query: Optional[PeersQuery] = None):
710
return self.with_endpoint('api').request_get('peers', query)
811

9-
def get(self, ip):
12+
def get(self, ip: str):
1013
return self.with_endpoint('api').request_get(f'peers/{ip}')

client/api/receipts.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types.receipts import ReceiptContractsQuery, ReceiptQuery, ReceiptsQuery
25

36

47
class Receipts(Resource):
5-
def all(self, query={}):
8+
def all(self, query: Optional[ReceiptsQuery] = None):
69
return self.with_endpoint('api').request_get('receipts', query)
710

8-
def get(self, transaction_hash: str):
11+
def get(
12+
self,
13+
transaction_hash: str,
14+
query: Optional[ReceiptQuery] = None,
15+
):
16+
return self.with_endpoint('api').request_get(
17+
f'receipts/{transaction_hash}', query
18+
)
19+
20+
def contracts(self, query: Optional[ReceiptContractsQuery] = None):
921
return self.with_endpoint('api').request_get(
10-
f'receipts/{transaction_hash}'
22+
'receipts/contracts', query
1123
)

client/api/rounds.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types import PaginatedQuery
25

36

47
class Rounds(Resource):
58

6-
def all(self, query={}):
9+
def all(self, query: Optional[PaginatedQuery] = None):
710
return self.with_endpoint('api').request_get('rounds', query)
811

9-
def show(self, round_id):
12+
def show(self, round_id: str):
1013
return self.with_endpoint('api').request_get(f'rounds/{round_id}')
1114

12-
def validators(self, round_id):
15+
def validators(self, round_id: str):
1316
return self.with_endpoint('api').request_get(
1417
f'rounds/{round_id}/validators'
1518
)

client/api/tokens.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,54 @@
1+
from typing import Optional
2+
13
from client.resource import Resource
4+
from client.types import PaginatedQuery
5+
from client.types.tokens import TokenApprovalsQuery, TokenLookupQuery, TokenTransfersQuery, TokensQuery
26

37

48
class Tokens(Resource):
59

6-
def all(self, query={}):
10+
def all(self, query: Optional[TokensQuery] = None):
711
return self.with_endpoint('api').request_get('tokens', query)
812

9-
def get(self, address):
13+
def transfers(self, query: Optional[TokenTransfersQuery] = None):
1014
return self.with_endpoint('api').request_get(
11-
f'tokens/{address}'
15+
'tokens/transfers', query
16+
)
17+
18+
def approvals(self, query: Optional[TokenApprovalsQuery] = None):
19+
return self.with_endpoint('api').request_get(
20+
'tokens/approvals', query
21+
)
22+
23+
def whitelist(self, query: Optional[PaginatedQuery] = None):
24+
return self.with_endpoint('api').request_get(
25+
'tokens/whitelist', query
1226
)
1327

14-
def holders(self, address, query={}):
28+
def get(self, address: str):
1529
return self.with_endpoint('api').request_get(
16-
f'tokens/{address}/holders', query
30+
f'tokens/{address}'
1731
)
1832

19-
def transfers_by_token(self, address, query={}):
33+
def transfers_for(
34+
self,
35+
address: str,
36+
query: Optional[TokenLookupQuery] = None,
37+
):
2038
return self.with_endpoint('api').request_get(
2139
f'tokens/{address}/transfers', query
2240
)
2341

24-
def transfers(self, query={}):
42+
def approvals_for(
43+
self,
44+
address: str,
45+
query: Optional[TokenLookupQuery] = None,
46+
):
2547
return self.with_endpoint('api').request_get(
26-
'tokens/transfers', query
48+
f'tokens/{address}/approvals', query
49+
)
50+
51+
def holders_for(self, address: str):
52+
return self.with_endpoint('api').request_get(
53+
f'tokens/{address}/holders'
2754
)

client/api/transactions.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,40 @@
1+
from typing import Optional, Sequence
2+
13
from client.resource import Resource
4+
from client.types.transactions import TransactionGetQuery, TransactionsQuery, UnconfirmedTransactionsQuery
25

36

47
class Transactions(Resource):
58

6-
def all(self, query={}):
9+
def all(self, query: Optional[TransactionsQuery] = None):
710
return self.with_endpoint('api').request_get(
811
'transactions', query
912
)
1013

11-
def create(self, transactions):
14+
def create(self, transactions: Sequence[str]):
1215
return self.with_endpoint('transactions').request_post(
1316
'transactions', data={'transactions': transactions}
1417
)
1518

16-
def get(self, transaction_id):
19+
def get(
20+
self,
21+
transaction_id: str,
22+
query: Optional[TransactionGetQuery] = None,
23+
):
1724
return self.with_endpoint('api').request_get(
18-
f'transactions/{transaction_id}'
25+
f'transactions/{transaction_id}', query
1926
)
2027

21-
def all_unconfirmed(self, query={}):
22-
return self.with_endpoint('api').request_get(
28+
def all_unconfirmed(
29+
self,
30+
query: Optional[UnconfirmedTransactionsQuery] = None,
31+
):
32+
return self.with_endpoint('transactions').request_get(
2333
'transactions/unconfirmed', query
2434
)
2535

26-
def get_unconfirmed(self, transaction_id):
27-
return self.with_endpoint('api').request_get(
36+
def get_unconfirmed(self, transaction_id: str):
37+
return self.with_endpoint('transactions').request_get(
2838
f'transactions/unconfirmed/{transaction_id}'
2939
)
3040

0 commit comments

Comments
 (0)