mm-eth 0.1.3__tar.gz → 0.1.5__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 (72) hide show
  1. {mm_eth-0.1.3 → mm_eth-0.1.5}/PKG-INFO +4 -4
  2. {mm_eth-0.1.3 → mm_eth-0.1.5}/justfile +2 -2
  3. {mm_eth-0.1.3 → mm_eth-0.1.5}/pyproject.toml +14 -20
  4. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/account.py +2 -1
  5. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli_utils.py +3 -5
  6. mm_eth-0.1.5/src/mm_eth/types.py +4 -0
  7. mm_eth-0.1.5/uv.lock +1605 -0
  8. mm_eth-0.1.3/src/mm_eth/types.py +0 -5
  9. mm_eth-0.1.3/uv.lock +0 -1550
  10. {mm_eth-0.1.3 → mm_eth-0.1.5}/.gitignore +0 -0
  11. {mm_eth-0.1.3 → mm_eth-0.1.5}/README.txt +0 -0
  12. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/__init__.py +0 -0
  13. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/abi/zksync.json +0 -0
  14. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/abi.py +0 -0
  15. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/anvil.py +0 -0
  16. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/__init__.py +0 -0
  17. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/calcs.py +0 -0
  18. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli.py +0 -0
  19. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli_helpers.py +0 -0
  20. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/__init__.py +0 -0
  21. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/balance_cmd.py +0 -0
  22. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/balances_cmd.py +0 -0
  23. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/call_contract_cmd.py +0 -0
  24. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/config_example_cmd.py +0 -0
  25. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/deploy_cmd.py +0 -0
  26. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/encode_input_data_cmd.py +0 -0
  27. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/mnemonic_cmd.py +0 -0
  28. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/node_cmd.py +0 -0
  29. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/private_key_cmd.py +0 -0
  30. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/rpc_cmd.py +0 -0
  31. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/send_contract_cmd.py +0 -0
  32. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/solc_cmd.py +0 -0
  33. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/token_cmd.py +0 -0
  34. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/transfer_erc20_cmd.py +0 -0
  35. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/transfer_eth_cmd.py +0 -0
  36. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/vault_cmd.py +0 -0
  37. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/balances.yml +0 -0
  38. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/call_contract.yml +0 -0
  39. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/transfer_erc20.yml +0 -0
  40. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/transfer_eth.yml +0 -0
  41. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/validators.py +0 -0
  42. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/deploy.py +0 -0
  43. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/ens.py +0 -0
  44. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/erc20.py +0 -0
  45. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/ethernodes.py +0 -0
  46. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/py.typed +0 -0
  47. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/rpc.py +0 -0
  48. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/services/__init__.py +0 -0
  49. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/solc.py +0 -0
  50. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/tx.py +0 -0
  51. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/utils.py +0 -0
  52. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/vault.py +0 -0
  53. {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/zksync.py +0 -0
  54. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/__init__.py +0 -0
  55. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/__init__.py +0 -0
  56. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/__init__.py +0 -0
  57. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_balance_cmd.py +0 -0
  58. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_mnemonic_cmd.py +0 -0
  59. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_node_cmd.py +0 -0
  60. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_private_key_cmd.py +0 -0
  61. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_solc_cmd.py +0 -0
  62. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/test_calcs.py +0 -0
  63. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/conftest.py +0 -0
  64. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/contracts/ERC20.sol +0 -0
  65. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/contracts/abi/ERC20.json +0 -0
  66. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_abi.py +0 -0
  67. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_account.py +0 -0
  68. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_ethernodes.py +0 -0
  69. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_rpc.py +0 -0
  70. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_tx.py +0 -0
  71. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_utils.py +0 -0
  72. {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_zksync.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mm-eth
3
- Version: 0.1.3
3
+ Version: 0.1.5
4
4
  Requires-Python: >=3.12
5
5
  Requires-Dist: loguru~=0.7.2
6
- Requires-Dist: mm-std~=0.1.3
7
- Requires-Dist: typer~=0.12.5
8
- Requires-Dist: web3~=7.3.0
6
+ Requires-Dist: mm-std~=0.1.8
7
+ Requires-Dist: typer>=0.14.0
8
+ Requires-Dist: web3~=7.6.0
9
9
  Requires-Dist: websocket-client~=1.8.0
@@ -6,14 +6,14 @@ clean:
6
6
  rm -rf .pytest_cache .mypy_cache .ruff_cache .coverage dist build src/*.egg-info
7
7
 
8
8
  build: clean lint audit test
9
- uvx --from build pyproject-build --installer uv
9
+ uv build
10
10
 
11
11
  format:
12
12
  uv run ruff check --select I --fix src tests
13
13
  uv run ruff format src tests
14
14
 
15
15
  test:
16
- uv run coverage run -m pytest -n auto tests
16
+ uv run pytest -n auto tests
17
17
 
18
18
  lint: format
19
19
  uv run ruff check src tests
@@ -1,14 +1,15 @@
1
1
  [project]
2
2
  name = "mm-eth"
3
- version = "0.1.3"
3
+ version = "0.1.5"
4
4
  description = ""
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [
7
- "mm-std~=0.1.3",
7
+ "mm-std~=0.1.8",
8
8
  "websocket-client~=1.8.0",
9
- "web3~=7.3.0",
10
- "typer~=0.12.5",
9
+ "web3~=7.6.0",
11
10
  "loguru~=0.7.2",
11
+ "typer>=0.14.0",
12
+
12
13
  ]
13
14
  [project.scripts]
14
15
  mm-eth = "mm_eth.cli.cli:app"
@@ -19,21 +20,17 @@ build-backend = "hatchling.build"
19
20
 
20
21
  [tool.uv]
21
22
  dev-dependencies = [
22
- "pytest~=8.3.3",
23
+ "pytest~=8.3.4",
23
24
  "pytest-xdist~=3.6.1",
24
- "pytest-httpserver~=1.1.0",
25
- "coverage~=7.6.0",
26
- "ruff~=0.6.8",
27
- "pip-audit~=2.7.0",
28
- "bandit~=1.7.10",
29
- "mypy~=1.11.2",
30
- "types-python-dateutil~=2.9.0.20240906",
31
- "types-PyYAML~=6.0.12.12",
25
+ "ruff~=0.8.1",
26
+ "pip-audit~=2.7.3",
27
+ "bandit~=1.8.0",
28
+ "mypy~=1.13.0",
29
+ "types-PyYAML~=6.0.12.20240917",
32
30
  ]
33
31
 
34
-
35
32
  [tool.mypy]
36
- python_version = "3.12"
33
+ python_version = "3.13"
37
34
  mypy_path = "stubs"
38
35
  warn_no_return = false
39
36
  implicit_reexport = true
@@ -44,10 +41,9 @@ exclude = ["^tests/", "^tmp/"]
44
41
  module = ["rlp", "rlp.sedes"]
45
42
  ignore_missing_imports = true
46
43
 
47
-
48
44
  [tool.ruff]
49
45
  line-length = 130
50
- target-version = "py312"
46
+ target-version = "py313"
51
47
  lint.select = [
52
48
  "F", # Pyflakes
53
49
  "E", "W", # pycodestyle
@@ -64,14 +60,12 @@ lint.select = [
64
60
  lint.ignore = [
65
61
  "A003", # builtin-attribute-shadowing
66
62
  "B008", # function-call-argument-default
67
- "UP040", # non-pep695-type-alias
68
63
  "COM812"
69
64
  ]
70
65
 
71
-
72
66
  [tool.bandit]
73
67
  exclude_dirs = ["tests"]
74
68
  skips = ["B311"]
75
69
 
76
70
  [tool.pytest.ini_options]
77
- markers = ["infura"]
71
+ markers = ["infura"]
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  import eth_utils
4
4
  from eth_account import Account
5
5
  from eth_account.hdaccount import Mnemonic
6
+ from eth_account.types import Language
6
7
  from eth_keys import KeyAPI
7
8
  from eth_typing import ChecksumAddress
8
9
  from eth_utils import decode_hex
@@ -24,7 +25,7 @@ def to_checksum_address(address: str) -> ChecksumAddress:
24
25
 
25
26
 
26
27
  def generate_mnemonic(num_words: int = 24) -> str:
27
- mnemonic = Mnemonic("english")
28
+ mnemonic = Mnemonic(Language.ENGLISH)
28
29
  return mnemonic.generate(num_words=num_words)
29
30
 
30
31
 
@@ -1,7 +1,6 @@
1
1
  import sys
2
2
  import time
3
3
  from pathlib import Path
4
- from typing import TypeVar
5
4
 
6
5
  import eth_utils
7
6
  import yaml
@@ -15,6 +14,8 @@ from mm_eth import account, rpc
15
14
  from mm_eth.account import is_private_key
16
15
  from mm_eth.cli import calcs
17
16
 
17
+ # from typing import TypeVar
18
+
18
19
 
19
20
  class BaseConfig(BaseModel):
20
21
  model_config = ConfigDict(extra="forbid")
@@ -44,10 +45,7 @@ def delay(value: str | None) -> None:
44
45
  time.sleep(float(calcs.calc_decimal_value(value)))
45
46
 
46
47
 
47
- T = TypeVar("T")
48
-
49
-
50
- def read_config(config_cls: type[T], config_path: str) -> T:
48
+ def read_config[T](config_cls: type[T], config_path: str) -> T:
51
49
  try:
52
50
  with open(config_path) as f:
53
51
  config = config_cls(**yaml.full_load(f))
@@ -0,0 +1,4 @@
1
+ from collections.abc import Sequence
2
+
3
+ type Proxies = str | Sequence[str] | None
4
+ type Nodes = str | Sequence[str]