mm-sol 0.6.2__tar.gz → 0.6.3__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_sol-0.6.2 → mm_sol-0.6.3}/PKG-INFO +4 -3
- {mm_sol-0.6.2 → mm_sol-0.6.3}/pyproject.toml +5 -4
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/rpc.py +1 -1
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/rpc_sync.py +10 -10
- {mm_sol-0.6.2 → mm_sol-0.6.3}/uv.lock +620 -618
- {mm_sol-0.6.2 → mm_sol-0.6.3}/.env.example +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/.gitignore +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/README.md +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/dict.dic +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/justfile +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/account.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/calcs.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cli.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cli_utils.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/balance_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/balances_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/example_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/node_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/transfer_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/wallet/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/wallet/keypair_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/cmd/wallet/mnemonic_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/examples/balances.toml +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/examples/transfer.toml +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/cli/validators.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/constants.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/converters.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/py.typed +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/retry.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/spl_token.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/transfer.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/src/mm_sol/utils.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/cli/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/cli/cmd/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/cli/cmd/wallet/__init__.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/cli/cmd/wallet/test_keypair_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/cli/cmd/wallet/test_mnemonic_cmd.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/conftest.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_account.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_client.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_converters.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_rpc.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_rpc_sync.py +0 -0
- {mm_sol-0.6.2 → mm_sol-0.6.3}/tests/test_spl_token.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mm-sol
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Requires-Python: >=3.12
|
|
5
5
|
Requires-Dist: base58~=2.1.1
|
|
6
|
+
Requires-Dist: h11>=0.16.0
|
|
6
7
|
Requires-Dist: jinja2>=3.1.6
|
|
7
|
-
Requires-Dist: mm-crypto-utils>=0.3.
|
|
8
|
+
Requires-Dist: mm-crypto-utils>=0.3.7
|
|
8
9
|
Requires-Dist: mnemonic==0.21
|
|
9
10
|
Requires-Dist: socksio>=1.0.0
|
|
10
11
|
Requires-Dist: solana~=0.36.6
|
|
11
12
|
Requires-Dist: solders~=0.26.0
|
|
12
|
-
Requires-Dist: typer>=0.15.
|
|
13
|
+
Requires-Dist: typer>=0.15.3
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mm-sol"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.3"
|
|
4
4
|
description = ""
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
dependencies = [
|
|
7
|
-
"mm-crypto-utils>=0.3.
|
|
7
|
+
"mm-crypto-utils>=0.3.7",
|
|
8
8
|
"solana~=0.36.6",
|
|
9
9
|
"solders~=0.26.0",
|
|
10
10
|
"base58~=2.1.1",
|
|
11
11
|
"mnemonic==0.21",
|
|
12
|
-
"typer>=0.15.
|
|
12
|
+
"typer>=0.15.3",
|
|
13
13
|
"jinja2>=3.1.6",
|
|
14
14
|
"socksio>=1.0.0",
|
|
15
|
+
"h11>=0.16.0", # secure fix, remove when solana updated
|
|
15
16
|
]
|
|
16
17
|
[project.scripts]
|
|
17
18
|
mm-sol = "mm_sol.cli.cli:app"
|
|
@@ -24,7 +25,7 @@ build-backend = "hatchling.build"
|
|
|
24
25
|
dev-dependencies = [
|
|
25
26
|
"pytest~=8.3.5",
|
|
26
27
|
"pytest-xdist~=3.6.1",
|
|
27
|
-
"ruff~=0.11.
|
|
28
|
+
"ruff~=0.11.9",
|
|
28
29
|
"pip-audit~=2.9.0",
|
|
29
30
|
"bandit~=1.8.3",
|
|
30
31
|
"mypy~=1.15.0",
|
|
@@ -55,7 +55,7 @@ async def _ws_call(node: str, data: dict[str, object], timeout: float) -> Result
|
|
|
55
55
|
return Result.err(e, {"response": response})
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
async def get_block_height(node: str, timeout: float =
|
|
58
|
+
async def get_block_height(node: str, timeout: float = 5, proxy: str | None = None) -> Result[int]:
|
|
59
59
|
return await rpc_call(node=node, method="getBlockHeight", params=[], timeout=timeout, proxy=proxy)
|
|
60
60
|
|
|
61
61
|
|
|
@@ -79,7 +79,7 @@ def rpc_call(
|
|
|
79
79
|
method: str,
|
|
80
80
|
params: list[Any],
|
|
81
81
|
id_: int = 1,
|
|
82
|
-
timeout: float =
|
|
82
|
+
timeout: float = 5,
|
|
83
83
|
proxy: str | None = None,
|
|
84
84
|
) -> Result[Any]:
|
|
85
85
|
data = {"jsonrpc": "2.0", "method": method, "params": params, "id": id_}
|
|
@@ -106,36 +106,36 @@ def _http_call(node: str, data: dict[str, object], timeout: float, proxy: str |
|
|
|
106
106
|
return res.to_err(e)
|
|
107
107
|
|
|
108
108
|
|
|
109
|
-
def get_balance(node: str, address: str, timeout: float =
|
|
109
|
+
def get_balance(node: str, address: str, timeout: float = 5, proxy: str | None = None) -> Result[int]:
|
|
110
110
|
"""Returns balance in lamports"""
|
|
111
111
|
return rpc_call(node=node, method="getBalance", params=[address], timeout=timeout, proxy=proxy).map(lambda r: r["value"])
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
def get_block_height(node: str, timeout: float =
|
|
114
|
+
def get_block_height(node: str, timeout: float = 5, proxy: str | None = None) -> Result[int]:
|
|
115
115
|
"""Returns balance in lamports"""
|
|
116
116
|
return rpc_call(node=node, method="getBlockHeight", params=[], timeout=timeout, proxy=proxy)
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
def get_slot(node: str, timeout: float =
|
|
119
|
+
def get_slot(node: str, timeout: float = 5, proxy: str | None = None) -> Result[int]:
|
|
120
120
|
return rpc_call(node=node, method="getSlot", params=[], timeout=timeout, proxy=proxy)
|
|
121
121
|
|
|
122
122
|
|
|
123
|
-
def get_epoch_info(node: str, epoch: int | None = None, timeout: float =
|
|
123
|
+
def get_epoch_info(node: str, epoch: int | None = None, timeout: float = 5, proxy: str | None = None) -> Result[EpochInfo]:
|
|
124
124
|
params = [epoch] if epoch else []
|
|
125
125
|
return rpc_call(node=node, method="getEpochInfo", params=params, timeout=timeout, proxy=proxy).map(lambda r: EpochInfo(**r))
|
|
126
126
|
|
|
127
127
|
|
|
128
|
-
def get_health(node: str, timeout: float =
|
|
128
|
+
def get_health(node: str, timeout: float = 5, proxy: str | None = None) -> Result[bool]:
|
|
129
129
|
return rpc_call(node=node, method="getHealth", params=[], timeout=timeout, proxy=proxy).map(lambda r: r == "ok")
|
|
130
130
|
|
|
131
131
|
|
|
132
|
-
def get_cluster_nodes(node: str, timeout: float =
|
|
132
|
+
def get_cluster_nodes(node: str, timeout: float = 5, proxy: str | None = None) -> Result[list[ClusterNode]]:
|
|
133
133
|
return rpc_call(node=node, method="getClusterNodes", timeout=timeout, proxy=proxy, params=[]).map(
|
|
134
134
|
lambda r: [ClusterNode(**n) for n in r],
|
|
135
135
|
)
|
|
136
136
|
|
|
137
137
|
|
|
138
|
-
def get_vote_accounts(node: str, timeout: float =
|
|
138
|
+
def get_vote_accounts(node: str, timeout: float = 5, proxy: str | None = None) -> Result[list[VoteAccount]]:
|
|
139
139
|
res = rpc_call(node=node, method="getVoteAccounts", timeout=timeout, proxy=proxy, params=[])
|
|
140
140
|
if res.is_err():
|
|
141
141
|
return res
|
|
@@ -182,7 +182,7 @@ def get_vote_accounts(node: str, timeout: float = 30, proxy: str | None = None)
|
|
|
182
182
|
def get_leader_scheduler(
|
|
183
183
|
node: str,
|
|
184
184
|
slot: int | None = None,
|
|
185
|
-
timeout: float =
|
|
185
|
+
timeout: float = 5,
|
|
186
186
|
proxy: str | None = None,
|
|
187
187
|
) -> Result[dict[str, list[int]]]:
|
|
188
188
|
return rpc_call(
|
|
@@ -205,7 +205,7 @@ def get_transaction(
|
|
|
205
205
|
signature: str,
|
|
206
206
|
max_supported_transaction_version: int | None = None,
|
|
207
207
|
encoding: str = "json",
|
|
208
|
-
timeout: float =
|
|
208
|
+
timeout: float = 5,
|
|
209
209
|
proxy: str | None = None,
|
|
210
210
|
) -> Result[dict[str, object] | None]:
|
|
211
211
|
if max_supported_transaction_version is not None:
|