mm-strk 0.3.1__py3-none-any.whl → 0.3.3__py3-none-any.whl

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.
mm_strk/account.py ADDED
@@ -0,0 +1,45 @@
1
+ import re
2
+
3
+ from starknet_py.hash.address import is_checksum_address
4
+
5
+ # Maximum allowable value for a StarkNet address (251 bits)
6
+ MAX_STARKNET_ADDRESS = 2**251
7
+
8
+
9
+ def is_valid_address(address: str) -> bool:
10
+ """
11
+ Check if the address is a valid StarkNet address.
12
+
13
+ A valid address:
14
+ - Starts with '0x'
15
+ - Followed by 1 to 64 hex characters (0-9, a-f, A-F)
16
+ - Represents a number less than 2**251
17
+ - Uses either minimal hex form (no leading zeros) or full 64-char padded form with correct checksum
18
+ """
19
+ # Basic checks
20
+ if not isinstance(address, str) or not address.startswith("0x"):
21
+ return False
22
+
23
+ hex_part = address[2:]
24
+ if len(hex_part) < 1 or len(hex_part) > 64:
25
+ return False
26
+ if not re.fullmatch(r"[0-9a-fA-F]+", hex_part):
27
+ return False
28
+
29
+ # Convert to integer
30
+ try:
31
+ value = int(hex_part, 16)
32
+ except ValueError:
33
+ return False
34
+
35
+ # Range check
36
+ if value >= MAX_STARKNET_ADDRESS:
37
+ return False
38
+
39
+ # Minimal hex form (e.g., '0x123')
40
+ minimal = hex(value)[2:]
41
+ if hex_part.lower() == minimal:
42
+ return True
43
+
44
+ # Full 64-char padded form with checksum (checksummed address)
45
+ return bool(len(hex_part) == 64 and is_checksum_address(address))
mm_strk/balance.py CHANGED
@@ -31,6 +31,6 @@ async def get_balance(rpc_url: str, address: str, token: str, timeout: float = 5
31
31
  key_pair=KeyPair(private_key=654, public_key=321),
32
32
  )
33
33
  balance = await account.get_balance(token_address=token)
34
- return Result.success(balance)
34
+ return Result.ok(balance)
35
35
  except Exception as e:
36
- return Result.failure(e)
36
+ return Result.err(e)
mm_strk/domain.py CHANGED
@@ -9,10 +9,10 @@ async def address_to_domain(address: str, timeout: float = 5.0, proxy: str | Non
9
9
  and res.body is not None
10
10
  and str_contains_any(res.body.lower(), ["no data found", "no domain found"])
11
11
  ):
12
- return res.to_result_success(None)
13
- if res.is_error():
14
- return res.to_result_failure()
12
+ return res.to_ok(None)
13
+ if res.is_err():
14
+ return res.to_err()
15
15
  domain = res.parse_json_body("domain")
16
16
  if domain:
17
- return res.to_result_success(domain)
18
- return res.to_result_failure("unknown_response")
17
+ return res.to_ok(domain)
18
+ return res.to_err("unknown_response")
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mm-strk
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Requires-Python: >=3.12
5
- Requires-Dist: mm-crypto-utils>=0.3.1
5
+ Requires-Dist: mm-crypto-utils~=0.3.7
6
6
  Requires-Dist: starknet-py~=0.26.2
7
- Requires-Dist: typer>=0.15.2
7
+ Requires-Dist: typer>=0.15.3
@@ -1,13 +1,14 @@
1
1
  mm_strk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- mm_strk/balance.py,sha256=SGC0ZqCwQD6uWsn_Buj0aVyB6GTF8dmunUS5HQiZBAw,1685
3
- mm_strk/domain.py,sha256=Sj6fGnOnfAGNYU02Jhv7Q7phiSjeEUHGmmHKyAMu7Tw,740
2
+ mm_strk/account.py,sha256=43aMZp_DQ-ZWLm5HubbYwN4nyYbVcMWY2SJcbfILXfI,1257
3
+ mm_strk/balance.py,sha256=pcZutM1ZHcLpmdYuCNfWhB7_NGjiSw3H5YG1qDCAIis,1676
4
+ mm_strk/domain.py,sha256=s_u3kRkZDmOEt5eX2O7v3bOw9H56Eyfj1m9tHzi4gOQ,692
4
5
  mm_strk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
6
  mm_strk/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
7
  mm_strk/cli/cli.py,sha256=SvIfjDq83HcFsiK_4S7Oez3Z_7OpYDIJreKALzWVUVQ,796
7
8
  mm_strk/cli/cli_utils.py,sha256=4_QLJ_rEotHK90PRQqsvCuFydDOXPrXrnMndBffMPIg,103
8
9
  mm_strk/cli/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
10
  mm_strk/cli/cmd/node_cmd.py,sha256=ApBpGXmkQ1cGp2NPqTdqlAYS1SGNBzy81da-quVEHNo,1282
10
- mm_strk-0.3.1.dist-info/METADATA,sha256=fc_gIPRR3SZVQmBMNEuo_soW2HZbZUNPCImpmxdX9UI,177
11
- mm_strk-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- mm_strk-0.3.1.dist-info/entry_points.txt,sha256=X6zWJaYaUkTgJrY4LAVpcov8O43PmUU4cQ1ue8prYqQ,48
13
- mm_strk-0.3.1.dist-info/RECORD,,
11
+ mm_strk-0.3.3.dist-info/METADATA,sha256=56nc5fysobe3uStoZcOfp7DL3om1wGRb9uvowSFoW5o,177
12
+ mm_strk-0.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
13
+ mm_strk-0.3.3.dist-info/entry_points.txt,sha256=X6zWJaYaUkTgJrY4LAVpcov8O43PmUU4cQ1ue8prYqQ,48
14
+ mm_strk-0.3.3.dist-info/RECORD,,