mm-eth 0.5.4__tar.gz → 0.5.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.5.4 → mm_eth-0.5.5}/PKG-INFO +2 -2
- {mm_eth-0.5.4 → mm_eth-0.5.5}/pyproject.toml +4 -4
- mm_eth-0.5.5/src/mm_eth/ens.py +23 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/utils.py +1 -1
- mm_eth-0.5.5/tests/test_ens.py +13 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/uv.lock +32 -31
- mm_eth-0.5.4/src/mm_eth/ens.py +0 -16
- {mm_eth-0.5.4 → mm_eth-0.5.5}/.gitignore +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/README.md +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/dict.dic +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/justfile +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/abi.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/account.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/anvil.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/calcs.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cli.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cli_utils.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/balance_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/balances_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/call_contract_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/deploy_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/encode_input_data_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/example_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/node_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/rpc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/solc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/token_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/transfer_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/tx_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/vault_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/wallet/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/wallet/mnemonic_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/cmd/wallet/private_key_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/examples/balances.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/examples/call_contract.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/examples/transfer.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/print_helpers.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/rpc_helpers.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/cli/validators.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/constants.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/deploy.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/erc20.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/ethernodes.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/json_encoder.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/py.typed +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/rpc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/solc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/tx.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/src/mm_eth/vault.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/test_balance_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/test_mnemonic_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/test_node_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/test_private_key_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/cmd/test_solc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/cli/test_calcs.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/conftest.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/contracts/ERC20.sol +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/contracts/abi/ERC20.json +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_abi.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_account.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_ethernodes.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_rpc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_tx.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.5}/tests/test_utils.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mm-eth
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.5
|
|
4
4
|
Requires-Python: >=3.12
|
|
5
5
|
Requires-Dist: mm-crypto-utils>=0.2.6
|
|
6
|
-
Requires-Dist: typer>=0.15.
|
|
6
|
+
Requires-Dist: typer>=0.15.2
|
|
7
7
|
Requires-Dist: web3~=7.8.0
|
|
8
8
|
Requires-Dist: websocket-client~=1.8.0
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mm-eth"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.5"
|
|
4
4
|
description = ""
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
dependencies = [
|
|
7
7
|
"mm-crypto-utils>=0.2.6",
|
|
8
8
|
"websocket-client~=1.8.0",
|
|
9
9
|
"web3~=7.8.0",
|
|
10
|
-
"typer>=0.15.
|
|
10
|
+
"typer>=0.15.2",
|
|
11
11
|
]
|
|
12
12
|
[project.scripts]
|
|
13
13
|
mm-eth = "mm_eth.cli.cli:app"
|
|
@@ -20,9 +20,9 @@ build-backend = "hatchling.build"
|
|
|
20
20
|
dev-dependencies = [
|
|
21
21
|
"pytest~=8.3.4",
|
|
22
22
|
"pytest-xdist~=3.6.1",
|
|
23
|
-
"ruff~=0.9.
|
|
23
|
+
"ruff~=0.9.9",
|
|
24
24
|
"pip-audit~=2.8.0",
|
|
25
|
-
"bandit~=1.8.
|
|
25
|
+
"bandit~=1.8.3",
|
|
26
26
|
"mypy~=1.15.0",
|
|
27
27
|
"types-pyyaml>=6.0.12.20241230",
|
|
28
28
|
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from mm_crypto_utils import Nodes, Proxies, random_node, random_proxy
|
|
2
|
+
from mm_std import Err, Ok, Result
|
|
3
|
+
|
|
4
|
+
from mm_eth.utils import get_w3
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def get_name_with_retries(
|
|
8
|
+
rpc_urls: Nodes, address: str, retries: int, timeout: float = 5, proxies: Proxies = None
|
|
9
|
+
) -> Result[str | None]:
|
|
10
|
+
res: Result[str | None] = Err("not started yet")
|
|
11
|
+
for _ in range(retries):
|
|
12
|
+
res = get_name(random_node(rpc_urls), address, timeout=timeout, proxy=random_proxy(proxies))
|
|
13
|
+
if res.is_ok():
|
|
14
|
+
return res
|
|
15
|
+
return res
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_name(rpc_url: str, address: str, timeout: float = 5, proxy: str | None = None) -> Result[str | None]:
|
|
19
|
+
try:
|
|
20
|
+
w3 = get_w3(rpc_url, timeout=timeout, proxy=proxy)
|
|
21
|
+
return Ok(w3.ens.name(w3.to_checksum_address(address))) # type: ignore[union-attr]
|
|
22
|
+
except Exception as e:
|
|
23
|
+
return Err(e)
|
|
@@ -186,7 +186,7 @@ def log_topic_to_address(topic: HexBytes | str) -> str:
|
|
|
186
186
|
return result
|
|
187
187
|
|
|
188
188
|
|
|
189
|
-
def get_w3(rpc_url: str, timeout:
|
|
189
|
+
def get_w3(rpc_url: str, timeout: float | None = None, proxy: str | None = None) -> Web3:
|
|
190
190
|
request_kwargs: dict[str, object] = {"timeout": timeout}
|
|
191
191
|
if proxy:
|
|
192
192
|
request_kwargs["proxies"] = {"http": proxy, "https": proxy}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from mm_std import Ok
|
|
2
|
+
|
|
3
|
+
from mm_eth import ens
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_get_name_exists(infura):
|
|
7
|
+
address = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
|
|
8
|
+
assert ens.get_name(infura(), address) == Ok("vitalik.eth")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_get_name_non_exists(infura):
|
|
12
|
+
address = "0x743997F620846ab4CE946CBe3f5e5b5c51921D6E" # random empty address
|
|
13
|
+
assert ens.get_name(infura(), address) == Ok(None)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
+
revision = 1
|
|
2
3
|
requires-python = ">=3.12"
|
|
3
4
|
|
|
4
5
|
[[package]]
|
|
@@ -102,7 +103,7 @@ wheels = [
|
|
|
102
103
|
|
|
103
104
|
[[package]]
|
|
104
105
|
name = "bandit"
|
|
105
|
-
version = "1.8.
|
|
106
|
+
version = "1.8.3"
|
|
106
107
|
source = { registry = "https://pypi.org/simple" }
|
|
107
108
|
dependencies = [
|
|
108
109
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
@@ -110,9 +111,9 @@ dependencies = [
|
|
|
110
111
|
{ name = "rich" },
|
|
111
112
|
{ name = "stevedore" },
|
|
112
113
|
]
|
|
113
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
114
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1a/a5/144a45f8e67df9d66c3bc3f7e69a39537db8bff1189ab7cff4e9459215da/bandit-1.8.3.tar.gz", hash = "sha256:f5847beb654d309422985c36644649924e0ea4425c76dec2e89110b87506193a", size = 4232005 }
|
|
114
115
|
wheels = [
|
|
115
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
116
|
+
{ url = "https://files.pythonhosted.org/packages/88/85/db74b9233e0aa27ec96891045c5e920a64dd5cbccd50f8e64e9460f48d35/bandit-1.8.3-py3-none-any.whl", hash = "sha256:28f04dc0d258e1dd0f99dee8eefa13d1cb5e3fde1a5ab0c523971f97b289bcd8", size = 129078 },
|
|
116
117
|
]
|
|
117
118
|
|
|
118
119
|
[[package]]
|
|
@@ -729,7 +730,7 @@ wheels = [
|
|
|
729
730
|
|
|
730
731
|
[[package]]
|
|
731
732
|
name = "mm-eth"
|
|
732
|
-
version = "0.5.
|
|
733
|
+
version = "0.5.5"
|
|
733
734
|
source = { editable = "." }
|
|
734
735
|
dependencies = [
|
|
735
736
|
{ name = "mm-crypto-utils" },
|
|
@@ -752,19 +753,19 @@ dev = [
|
|
|
752
753
|
[package.metadata]
|
|
753
754
|
requires-dist = [
|
|
754
755
|
{ name = "mm-crypto-utils", specifier = ">=0.2.6" },
|
|
755
|
-
{ name = "typer", specifier = ">=0.15.
|
|
756
|
+
{ name = "typer", specifier = ">=0.15.2" },
|
|
756
757
|
{ name = "web3", specifier = "~=7.8.0" },
|
|
757
758
|
{ name = "websocket-client", specifier = "~=1.8.0" },
|
|
758
759
|
]
|
|
759
760
|
|
|
760
761
|
[package.metadata.requires-dev]
|
|
761
762
|
dev = [
|
|
762
|
-
{ name = "bandit", specifier = "~=1.8.
|
|
763
|
+
{ name = "bandit", specifier = "~=1.8.3" },
|
|
763
764
|
{ name = "mypy", specifier = "~=1.15.0" },
|
|
764
765
|
{ name = "pip-audit", specifier = "~=2.8.0" },
|
|
765
766
|
{ name = "pytest", specifier = "~=8.3.4" },
|
|
766
767
|
{ name = "pytest-xdist", specifier = "~=3.6.1" },
|
|
767
|
-
{ name = "ruff", specifier = "~=0.9.
|
|
768
|
+
{ name = "ruff", specifier = "~=0.9.9" },
|
|
768
769
|
{ name = "types-pyyaml", specifier = ">=6.0.12.20241230" },
|
|
769
770
|
]
|
|
770
771
|
|
|
@@ -1327,27 +1328,27 @@ wheels = [
|
|
|
1327
1328
|
|
|
1328
1329
|
[[package]]
|
|
1329
1330
|
name = "ruff"
|
|
1330
|
-
version = "0.9.
|
|
1331
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1332
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1333
|
-
wheels = [
|
|
1334
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1335
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1336
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1337
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1338
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1339
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1340
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1341
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1342
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1343
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1344
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1345
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1346
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1347
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1348
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1349
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1350
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1331
|
+
version = "0.9.9"
|
|
1332
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1333
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 }
|
|
1334
|
+
wheels = [
|
|
1335
|
+
{ url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 },
|
|
1336
|
+
{ url = "https://files.pythonhosted.org/packages/33/d1/439e58487cf9eac26378332e25e7d5ade4b800ce1eec7dc2cfc9b0d7ca96/ruff-0.9.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cd1428e834b35d7493354723543b28cc11dc14d1ce19b685f6e68e07c05ec7", size = 10840721 },
|
|
1337
|
+
{ url = "https://files.pythonhosted.org/packages/50/44/fead822c38281ba0122f1b76b460488a175a9bd48b130650a6fb6dbcbcf9/ruff-0.9.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ee162652869120ad260670706f3cd36cd3f32b0c651f02b6da142652c54941d", size = 10161439 },
|
|
1338
|
+
{ url = "https://files.pythonhosted.org/packages/11/ae/d404a2ab8e61ddf6342e09cc6b7f7846cce6b243e45c2007dbe0ca928a5d/ruff-0.9.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa0f6b75082c9be1ec5a1db78c6d4b02e2375c3068438241dc19c7c306cc61a", size = 10336264 },
|
|
1339
|
+
{ url = "https://files.pythonhosted.org/packages/6a/4e/7c268aa7d84cd709fb6f046b8972313142cffb40dfff1d2515c5e6288d54/ruff-0.9.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:584cc66e89fb5f80f84b05133dd677a17cdd86901d6479712c96597a3f28e7fe", size = 9908774 },
|
|
1340
|
+
{ url = "https://files.pythonhosted.org/packages/cc/26/c618a878367ef1b76270fd027ca93692657d3f6122b84ba48911ef5f2edc/ruff-0.9.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf3369325761a35aba75cd5c55ba1b5eb17d772f12ab168fbfac54be85cf18c", size = 11428127 },
|
|
1341
|
+
{ url = "https://files.pythonhosted.org/packages/d7/9a/c5588a93d9bfed29f565baf193fe802fa676a0c837938137ea6cf0576d8c/ruff-0.9.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3403a53a32a90ce929aa2f758542aca9234befa133e29f4933dcef28a24317be", size = 12133187 },
|
|
1342
|
+
{ url = "https://files.pythonhosted.org/packages/3e/ff/e7980a7704a60905ed7e156a8d73f604c846d9bd87deda9cabfa6cba073a/ruff-0.9.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18454e7fa4e4d72cffe28a37cf6a73cb2594f81ec9f4eca31a0aaa9ccdfb1590", size = 11602937 },
|
|
1343
|
+
{ url = "https://files.pythonhosted.org/packages/24/78/3690444ad9e3cab5c11abe56554c35f005b51d1d118b429765249095269f/ruff-0.9.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fadfe2c88724c9617339f62319ed40dcdadadf2888d5afb88bf3adee7b35bfb", size = 13771698 },
|
|
1344
|
+
{ url = "https://files.pythonhosted.org/packages/6e/bf/e477c2faf86abe3988e0b5fd22a7f3520e820b2ee335131aca2e16120038/ruff-0.9.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6df104d08c442a1aabcfd254279b8cc1e2cbf41a605aa3e26610ba1ec4acf0b0", size = 11249026 },
|
|
1345
|
+
{ url = "https://files.pythonhosted.org/packages/f7/82/cdaffd59e5a8cb5b14c408c73d7a555a577cf6645faaf83e52fe99521715/ruff-0.9.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d7c62939daf5b2a15af48abbd23bea1efdd38c312d6e7c4cedf5a24e03207e17", size = 10220432 },
|
|
1346
|
+
{ url = "https://files.pythonhosted.org/packages/fe/a4/2507d0026225efa5d4412b6e294dfe54725a78652a5c7e29e6bd0fc492f3/ruff-0.9.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9494ba82a37a4b81b6a798076e4a3251c13243fc37967e998efe4cce58c8a8d1", size = 9874602 },
|
|
1347
|
+
{ url = "https://files.pythonhosted.org/packages/d5/be/f3aab1813846b476c4bcffe052d232244979c3cd99d751c17afb530ca8e4/ruff-0.9.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4efd7a96ed6d36ef011ae798bf794c5501a514be369296c672dab7921087fa57", size = 10851212 },
|
|
1348
|
+
{ url = "https://files.pythonhosted.org/packages/8b/45/8e5fd559bea0d2f57c4e12bf197a2fade2fac465aa518284f157dfbca92b/ruff-0.9.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ab90a7944c5a1296f3ecb08d1cbf8c2da34c7e68114b1271a431a3ad30cb660e", size = 11327490 },
|
|
1349
|
+
{ url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 },
|
|
1350
|
+
{ url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 },
|
|
1351
|
+
{ url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 },
|
|
1351
1352
|
]
|
|
1352
1353
|
|
|
1353
1354
|
[[package]]
|
|
@@ -1418,7 +1419,7 @@ wheels = [
|
|
|
1418
1419
|
|
|
1419
1420
|
[[package]]
|
|
1420
1421
|
name = "typer"
|
|
1421
|
-
version = "0.15.
|
|
1422
|
+
version = "0.15.2"
|
|
1422
1423
|
source = { registry = "https://pypi.org/simple" }
|
|
1423
1424
|
dependencies = [
|
|
1424
1425
|
{ name = "click" },
|
|
@@ -1426,9 +1427,9 @@ dependencies = [
|
|
|
1426
1427
|
{ name = "shellingham" },
|
|
1427
1428
|
{ name = "typing-extensions" },
|
|
1428
1429
|
]
|
|
1429
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1430
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8b/6f/3991f0f1c7fcb2df31aef28e0594d8d54b05393a0e4e34c65e475c2a5d41/typer-0.15.2.tar.gz", hash = "sha256:ab2fab47533a813c49fe1f16b1a370fd5819099c00b119e0633df65f22144ba5", size = 100711 }
|
|
1430
1431
|
wheels = [
|
|
1431
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1432
|
+
{ url = "https://files.pythonhosted.org/packages/7f/fc/5b29fea8cee020515ca82cc68e3b8e1e34bb19a3535ad854cac9257b414c/typer-0.15.2-py3-none-any.whl", hash = "sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc", size = 45061 },
|
|
1432
1433
|
]
|
|
1433
1434
|
|
|
1434
1435
|
[[package]]
|
mm_eth-0.5.4/src/mm_eth/ens.py
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from mm_crypto_utils import Nodes, Proxies, random_node, random_proxy
|
|
2
|
-
from mm_std import Err, Ok, Result
|
|
3
|
-
|
|
4
|
-
from mm_eth.utils import get_w3
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def get_name(nodes: Nodes, address: str, timeout: int = 10, proxies: Proxies = None, attempts: int = 3) -> Result[str]:
|
|
8
|
-
result = Err("not_started")
|
|
9
|
-
for _ in range(attempts):
|
|
10
|
-
try:
|
|
11
|
-
w3 = get_w3(random_node(nodes), timeout=timeout, proxy=random_proxy(proxies))
|
|
12
|
-
res = w3.ens.name(w3.to_checksum_address(address)) # type: ignore[union-attr]
|
|
13
|
-
return Ok(res or "")
|
|
14
|
-
except Exception as e:
|
|
15
|
-
result = Err(e)
|
|
16
|
-
return result
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|