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.
- {mm_eth-0.1.3 → mm_eth-0.1.5}/PKG-INFO +4 -4
- {mm_eth-0.1.3 → mm_eth-0.1.5}/justfile +2 -2
- {mm_eth-0.1.3 → mm_eth-0.1.5}/pyproject.toml +14 -20
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/account.py +2 -1
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli_utils.py +3 -5
- mm_eth-0.1.5/src/mm_eth/types.py +4 -0
- mm_eth-0.1.5/uv.lock +1605 -0
- mm_eth-0.1.3/src/mm_eth/types.py +0 -5
- mm_eth-0.1.3/uv.lock +0 -1550
- {mm_eth-0.1.3 → mm_eth-0.1.5}/.gitignore +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/README.txt +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/abi/zksync.json +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/abi.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/anvil.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/calcs.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cli_helpers.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/balance_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/balances_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/call_contract_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/config_example_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/deploy_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/encode_input_data_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/mnemonic_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/node_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/private_key_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/rpc_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/send_contract_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/solc_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/token_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/transfer_erc20_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/transfer_eth_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/cmd/vault_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/balances.yml +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/call_contract.yml +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/transfer_erc20.yml +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/config_examples/transfer_eth.yml +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/cli/validators.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/deploy.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/ens.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/erc20.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/ethernodes.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/py.typed +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/rpc.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/services/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/solc.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/tx.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/utils.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/vault.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/src/mm_eth/zksync.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/__init__.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_balance_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_mnemonic_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_node_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_private_key_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/cmd/test_solc_cmd.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/cli/test_calcs.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/conftest.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/contracts/ERC20.sol +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/contracts/abi/ERC20.json +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_abi.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_account.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_ethernodes.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_rpc.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_tx.py +0 -0
- {mm_eth-0.1.3 → mm_eth-0.1.5}/tests/test_utils.py +0 -0
- {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
|
+
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.
|
|
7
|
-
Requires-Dist: typer
|
|
8
|
-
Requires-Dist: web3~=7.
|
|
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
|
-
|
|
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
|
|
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
|
+
version = "0.1.5"
|
|
4
4
|
description = ""
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
dependencies = [
|
|
7
|
-
"mm-std~=0.1.
|
|
7
|
+
"mm-std~=0.1.8",
|
|
8
8
|
"websocket-client~=1.8.0",
|
|
9
|
-
"web3~=7.
|
|
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.
|
|
23
|
+
"pytest~=8.3.4",
|
|
23
24
|
"pytest-xdist~=3.6.1",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
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.
|
|
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 = "
|
|
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(
|
|
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
|
|
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))
|