mm-eth 0.5.4__tar.gz → 0.5.6__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.6}/PKG-INFO +3 -2
- {mm_eth-0.5.4 → mm_eth-0.5.6}/pyproject.toml +5 -4
- mm_eth-0.5.6/src/mm_eth/ens.py +23 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/utils.py +1 -1
- mm_eth-0.5.6/tests/test_ens.py +13 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/uv.lock +48 -31
- mm_eth-0.5.4/src/mm_eth/ens.py +0 -16
- {mm_eth-0.5.4 → mm_eth-0.5.6}/.gitignore +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/README.md +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/dict.dic +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/justfile +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/abi.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/account.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/anvil.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/calcs.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cli.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cli_utils.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/balance_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/balances_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/call_contract_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/deploy_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/encode_input_data_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/example_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/node_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/rpc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/solc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/token_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/transfer_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/tx_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/vault_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/wallet/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/wallet/mnemonic_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/cmd/wallet/private_key_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/examples/balances.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/examples/call_contract.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/examples/transfer.toml +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/print_helpers.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/rpc_helpers.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/cli/validators.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/constants.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/deploy.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/erc20.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/ethernodes.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/json_encoder.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/py.typed +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/rpc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/solc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/tx.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/src/mm_eth/vault.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/__init__.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/test_balance_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/test_mnemonic_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/test_node_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/test_private_key_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/cmd/test_solc_cmd.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/cli/test_calcs.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/conftest.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/contracts/ERC20.sol +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/contracts/abi/ERC20.json +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_abi.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_account.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_ethernodes.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_rpc.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_tx.py +0 -0
- {mm_eth-0.5.4 → mm_eth-0.5.6}/tests/test_utils.py +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mm-eth
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.6
|
|
4
4
|
Requires-Python: >=3.12
|
|
5
5
|
Requires-Dist: mm-crypto-utils>=0.2.6
|
|
6
|
-
Requires-Dist:
|
|
6
|
+
Requires-Dist: requests[socks]>=2.32.0
|
|
7
|
+
Requires-Dist: typer>=0.15.2
|
|
7
8
|
Requires-Dist: web3~=7.8.0
|
|
8
9
|
Requires-Dist: websocket-client~=1.8.0
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mm-eth"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.6"
|
|
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
|
+
"requests[socks]>=2.32.0",
|
|
11
12
|
]
|
|
12
13
|
[project.scripts]
|
|
13
14
|
mm-eth = "mm_eth.cli.cli:app"
|
|
@@ -20,9 +21,9 @@ build-backend = "hatchling.build"
|
|
|
20
21
|
dev-dependencies = [
|
|
21
22
|
"pytest~=8.3.4",
|
|
22
23
|
"pytest-xdist~=3.6.1",
|
|
23
|
-
"ruff~=0.9.
|
|
24
|
+
"ruff~=0.9.9",
|
|
24
25
|
"pip-audit~=2.8.0",
|
|
25
|
-
"bandit~=1.8.
|
|
26
|
+
"bandit~=1.8.3",
|
|
26
27
|
"mypy~=1.15.0",
|
|
27
28
|
"types-pyyaml>=6.0.12.20241230",
|
|
28
29
|
]
|
|
@@ -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,10 +730,11 @@ wheels = [
|
|
|
729
730
|
|
|
730
731
|
[[package]]
|
|
731
732
|
name = "mm-eth"
|
|
732
|
-
version = "0.5.
|
|
733
|
+
version = "0.5.6"
|
|
733
734
|
source = { editable = "." }
|
|
734
735
|
dependencies = [
|
|
735
736
|
{ name = "mm-crypto-utils" },
|
|
737
|
+
{ name = "requests", extra = ["socks"] },
|
|
736
738
|
{ name = "typer" },
|
|
737
739
|
{ name = "web3" },
|
|
738
740
|
{ name = "websocket-client" },
|
|
@@ -752,19 +754,20 @@ dev = [
|
|
|
752
754
|
[package.metadata]
|
|
753
755
|
requires-dist = [
|
|
754
756
|
{ name = "mm-crypto-utils", specifier = ">=0.2.6" },
|
|
755
|
-
{ name = "
|
|
757
|
+
{ name = "requests", extras = ["socks"], specifier = ">=2.32.0" },
|
|
758
|
+
{ name = "typer", specifier = ">=0.15.2" },
|
|
756
759
|
{ name = "web3", specifier = "~=7.8.0" },
|
|
757
760
|
{ name = "websocket-client", specifier = "~=1.8.0" },
|
|
758
761
|
]
|
|
759
762
|
|
|
760
763
|
[package.metadata.requires-dev]
|
|
761
764
|
dev = [
|
|
762
|
-
{ name = "bandit", specifier = "~=1.8.
|
|
765
|
+
{ name = "bandit", specifier = "~=1.8.3" },
|
|
763
766
|
{ name = "mypy", specifier = "~=1.15.0" },
|
|
764
767
|
{ name = "pip-audit", specifier = "~=2.8.0" },
|
|
765
768
|
{ name = "pytest", specifier = "~=8.3.4" },
|
|
766
769
|
{ name = "pytest-xdist", specifier = "~=3.6.1" },
|
|
767
|
-
{ name = "ruff", specifier = "~=0.9.
|
|
770
|
+
{ name = "ruff", specifier = "~=0.9.9" },
|
|
768
771
|
{ name = "types-pyyaml", specifier = ">=6.0.12.20241230" },
|
|
769
772
|
]
|
|
770
773
|
|
|
@@ -1162,6 +1165,15 @@ wheels = [
|
|
|
1162
1165
|
{ url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 },
|
|
1163
1166
|
]
|
|
1164
1167
|
|
|
1168
|
+
[[package]]
|
|
1169
|
+
name = "pysocks"
|
|
1170
|
+
version = "1.7.1"
|
|
1171
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1172
|
+
sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429 }
|
|
1173
|
+
wheels = [
|
|
1174
|
+
{ url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 },
|
|
1175
|
+
]
|
|
1176
|
+
|
|
1165
1177
|
[[package]]
|
|
1166
1178
|
name = "pytest"
|
|
1167
1179
|
version = "8.3.4"
|
|
@@ -1300,6 +1312,11 @@ wheels = [
|
|
|
1300
1312
|
{ url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
|
|
1301
1313
|
]
|
|
1302
1314
|
|
|
1315
|
+
[package.optional-dependencies]
|
|
1316
|
+
socks = [
|
|
1317
|
+
{ name = "pysocks" },
|
|
1318
|
+
]
|
|
1319
|
+
|
|
1303
1320
|
[[package]]
|
|
1304
1321
|
name = "rich"
|
|
1305
1322
|
version = "13.9.4"
|
|
@@ -1327,27 +1344,27 @@ wheels = [
|
|
|
1327
1344
|
|
|
1328
1345
|
[[package]]
|
|
1329
1346
|
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/
|
|
1347
|
+
version = "0.9.9"
|
|
1348
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1349
|
+
sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 }
|
|
1350
|
+
wheels = [
|
|
1351
|
+
{ url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 },
|
|
1352
|
+
{ 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 },
|
|
1353
|
+
{ 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 },
|
|
1354
|
+
{ 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 },
|
|
1355
|
+
{ 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 },
|
|
1356
|
+
{ 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 },
|
|
1357
|
+
{ 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 },
|
|
1358
|
+
{ 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 },
|
|
1359
|
+
{ 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 },
|
|
1360
|
+
{ 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 },
|
|
1361
|
+
{ 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 },
|
|
1362
|
+
{ 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 },
|
|
1363
|
+
{ 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 },
|
|
1364
|
+
{ 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 },
|
|
1365
|
+
{ url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 },
|
|
1366
|
+
{ url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 },
|
|
1367
|
+
{ url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 },
|
|
1351
1368
|
]
|
|
1352
1369
|
|
|
1353
1370
|
[[package]]
|
|
@@ -1418,7 +1435,7 @@ wheels = [
|
|
|
1418
1435
|
|
|
1419
1436
|
[[package]]
|
|
1420
1437
|
name = "typer"
|
|
1421
|
-
version = "0.15.
|
|
1438
|
+
version = "0.15.2"
|
|
1422
1439
|
source = { registry = "https://pypi.org/simple" }
|
|
1423
1440
|
dependencies = [
|
|
1424
1441
|
{ name = "click" },
|
|
@@ -1426,9 +1443,9 @@ dependencies = [
|
|
|
1426
1443
|
{ name = "shellingham" },
|
|
1427
1444
|
{ name = "typing-extensions" },
|
|
1428
1445
|
]
|
|
1429
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1446
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8b/6f/3991f0f1c7fcb2df31aef28e0594d8d54b05393a0e4e34c65e475c2a5d41/typer-0.15.2.tar.gz", hash = "sha256:ab2fab47533a813c49fe1f16b1a370fd5819099c00b119e0633df65f22144ba5", size = 100711 }
|
|
1430
1447
|
wheels = [
|
|
1431
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1448
|
+
{ url = "https://files.pythonhosted.org/packages/7f/fc/5b29fea8cee020515ca82cc68e3b8e1e34bb19a3535ad854cac9257b414c/typer-0.15.2-py3-none-any.whl", hash = "sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc", size = 45061 },
|
|
1432
1449
|
]
|
|
1433
1450
|
|
|
1434
1451
|
[[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
|