mm-btc 0.4.1__py3-none-any.whl → 0.5.0__py3-none-any.whl
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_btc/blockstream.py +11 -9
- mm_btc/cli/cli.py +2 -2
- mm_btc/cli/cmd/address_cmd.py +2 -2
- mm_btc/cli/cmd/create_tx_cmd.py +3 -2
- mm_btc/cli/cmd/decode_tx_cmd.py +2 -2
- mm_btc/cli/cmd/mnemonic_cmd.py +4 -4
- mm_btc/cli/cmd/utxo_cmd.py +2 -2
- mm_btc-0.5.0.dist-info/METADATA +11 -0
- mm_btc-0.5.0.dist-info/RECORD +17 -0
- mm_btc-0.4.1.dist-info/METADATA +0 -10
- mm_btc-0.4.1.dist-info/RECORD +0 -17
- {mm_btc-0.4.1.dist-info → mm_btc-0.5.0.dist-info}/WHEEL +0 -0
- {mm_btc-0.4.1.dist-info → mm_btc-0.5.0.dist-info}/entry_points.txt +0 -0
mm_btc/blockstream.py
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from collections.abc import Sequence
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from mm_cryptocurrency import random_proxy
|
|
4
|
+
from mm_http import HttpResponse, http_request
|
|
5
|
+
from mm_result import Result
|
|
4
6
|
from pydantic import BaseModel
|
|
5
7
|
|
|
6
8
|
MAINNET_BASE_URL = "https://blockstream.info/api"
|
|
@@ -67,10 +69,10 @@ class BlockstreamClient:
|
|
|
67
69
|
res = await self._request(f"/address/{address}")
|
|
68
70
|
try:
|
|
69
71
|
if res.status_code == 400:
|
|
70
|
-
return res.
|
|
71
|
-
return res.
|
|
72
|
+
return res.to_err("400 Bad Request")
|
|
73
|
+
return res.to_ok(Address(**res.parse_json_body()))
|
|
72
74
|
except Exception as e:
|
|
73
|
-
result = res.
|
|
75
|
+
result = res.to_err(e)
|
|
74
76
|
return result
|
|
75
77
|
|
|
76
78
|
async def get_confirmed_balance(self, address: str) -> Result[int]:
|
|
@@ -83,9 +85,9 @@ class BlockstreamClient:
|
|
|
83
85
|
for _ in range(self.attempts):
|
|
84
86
|
res = await self._request(f"/address/{address}/utxo")
|
|
85
87
|
try:
|
|
86
|
-
return res.
|
|
88
|
+
return res.to_ok([Utxo(**out) for out in res.parse_json_body()])
|
|
87
89
|
except Exception as e:
|
|
88
|
-
result = res.
|
|
90
|
+
result = res.to_err(e)
|
|
89
91
|
return result
|
|
90
92
|
|
|
91
93
|
async def get_mempool(self) -> Result[Mempool]:
|
|
@@ -93,10 +95,10 @@ class BlockstreamClient:
|
|
|
93
95
|
for _ in range(self.attempts):
|
|
94
96
|
res = await self._request("/mempool")
|
|
95
97
|
try:
|
|
96
|
-
return res.
|
|
98
|
+
return res.to_ok(Mempool(**res.parse_json_body()))
|
|
97
99
|
except Exception as e:
|
|
98
|
-
result = res.
|
|
100
|
+
result = res.to_err(e)
|
|
99
101
|
return result
|
|
100
102
|
|
|
101
103
|
async def _request(self, url: str) -> HttpResponse:
|
|
102
|
-
return await http_request(f"{self.base_url}{url}", timeout=self.timeout, proxy=
|
|
104
|
+
return await http_request(f"{self.base_url}{url}", timeout=self.timeout, proxy=random_proxy(self.proxies))
|
mm_btc/cli/cli.py
CHANGED
|
@@ -3,9 +3,9 @@ import importlib.metadata
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Annotated
|
|
5
5
|
|
|
6
|
+
import mm_print
|
|
6
7
|
import typer
|
|
7
8
|
import typer.core
|
|
8
|
-
from mm_std import print_plain
|
|
9
9
|
|
|
10
10
|
from mm_btc.wallet import AddressType
|
|
11
11
|
|
|
@@ -68,7 +68,7 @@ def utxo_command(address: str) -> None:
|
|
|
68
68
|
|
|
69
69
|
def version_callback(value: bool) -> None:
|
|
70
70
|
if value:
|
|
71
|
-
print_plain(f"mm-btc: v{importlib.metadata.version('mm-btc')}")
|
|
71
|
+
mm_print.print_plain(f"mm-btc: v{importlib.metadata.version('mm-btc')}")
|
|
72
72
|
raise typer.Exit
|
|
73
73
|
|
|
74
74
|
|
mm_btc/cli/cmd/address_cmd.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import mm_print
|
|
2
2
|
|
|
3
3
|
from mm_btc.blockstream import BlockstreamClient
|
|
4
4
|
from mm_btc.wallet import is_testnet_address
|
|
@@ -7,4 +7,4 @@ from mm_btc.wallet import is_testnet_address
|
|
|
7
7
|
async def run(address: str) -> None:
|
|
8
8
|
client = BlockstreamClient(testnet=is_testnet_address(address))
|
|
9
9
|
res = await client.get_address(address)
|
|
10
|
-
print_json(res.
|
|
10
|
+
mm_print.print_json(res.value_or_error())
|
mm_btc/cli/cmd/create_tx_cmd.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
+
import mm_print
|
|
3
4
|
from bit import PrivateKey, PrivateKeyTestnet
|
|
4
|
-
from
|
|
5
|
+
from mm_cryptocurrency import BaseConfig
|
|
5
6
|
|
|
6
7
|
from mm_btc.wallet import is_testnet_address
|
|
7
8
|
|
|
@@ -24,4 +25,4 @@ def run(config_path: Path) -> None:
|
|
|
24
25
|
outputs = [(o.address, o.amount, "satoshi") for o in config.outputs]
|
|
25
26
|
|
|
26
27
|
tx = key.create_transaction(outputs)
|
|
27
|
-
|
|
28
|
+
mm_print.print_json(tx)
|
mm_btc/cli/cmd/decode_tx_cmd.py
CHANGED
mm_btc/cli/cmd/mnemonic_cmd.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
from enum import Enum
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
import mm_print
|
|
5
5
|
|
|
6
6
|
from mm_btc.wallet import AddressType, derive_accounts, generate_mnemonic
|
|
7
7
|
|
|
@@ -29,12 +29,12 @@ def run(args: Args) -> None:
|
|
|
29
29
|
path = get_derivation_path_prefix(args.path, args.testnet)
|
|
30
30
|
accounts = derive_accounts(mnemonic, passphrase, path, args.address_type, args.limit)
|
|
31
31
|
|
|
32
|
-
print_plain(f"{mnemonic}")
|
|
32
|
+
mm_print.print_plain(f"{mnemonic}")
|
|
33
33
|
if passphrase:
|
|
34
|
-
print_plain(f"{passphrase}")
|
|
34
|
+
mm_print.print_plain(f"{passphrase}")
|
|
35
35
|
for acc in accounts:
|
|
36
36
|
private = acc.private if args.hex else acc.wif
|
|
37
|
-
print_plain(f"{acc.path} {acc.address} {private}")
|
|
37
|
+
mm_print.print_plain(f"{acc.path} {acc.address} {private}")
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
def get_derivation_path_prefix(path: str, testnet: bool) -> str:
|
mm_btc/cli/cmd/utxo_cmd.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import mm_print
|
|
2
2
|
|
|
3
3
|
from mm_btc.blockstream import BlockstreamClient
|
|
4
4
|
from mm_btc.wallet import is_testnet_address
|
|
@@ -7,4 +7,4 @@ from mm_btc.wallet import is_testnet_address
|
|
|
7
7
|
async def run(address: str) -> None:
|
|
8
8
|
client = BlockstreamClient(testnet=is_testnet_address(address))
|
|
9
9
|
res = await client.get_utxo(address)
|
|
10
|
-
print_json(res.
|
|
10
|
+
mm_print.print_json(res.value_or_error())
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mm-btc
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Requires-Python: >=3.13
|
|
5
|
+
Requires-Dist: bitcoinlib~=0.7.4
|
|
6
|
+
Requires-Dist: bit~=0.8.0
|
|
7
|
+
Requires-Dist: hdwallet~=3.4.0
|
|
8
|
+
Requires-Dist: mm-cryptocurrency~=0.4.1
|
|
9
|
+
Requires-Dist: mm-print>=0.0.1
|
|
10
|
+
Requires-Dist: mnemonic~=0.21
|
|
11
|
+
Requires-Dist: typer~=0.16.0
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
mm_btc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
mm_btc/blockstream.py,sha256=OGhJAlBoI_oPEJUdzsLKENF29nFGhrVdWp0o4APaDXQ,3315
|
|
3
|
+
mm_btc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
mm_btc/tx.py,sha256=7KTMNuL1n8rRj_245BV1bH9M2_PctNvlvPsLEsRTYx4,245
|
|
5
|
+
mm_btc/wallet.py,sha256=_pGTuAf6Y9KzaWTTSg_tn6WEoRsGqhxJuPof0_xyrmM,2333
|
|
6
|
+
mm_btc/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
mm_btc/cli/cli.py,sha256=PU93remvTcn_uguET2gf9-vgGZ_zZduHbqvvQHH_2Zw,2650
|
|
8
|
+
mm_btc/cli/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
mm_btc/cli/cmd/address_cmd.py,sha256=UlthdplJKAH1sC7MHtM4-rGS0MKftaaCdg_u-2tgwE0,308
|
|
10
|
+
mm_btc/cli/cmd/create_tx_cmd.py,sha256=4NvPa7uT7eJcoBo_oVOLLudCpKvNIB_ScK8ko57MOXE,721
|
|
11
|
+
mm_btc/cli/cmd/decode_tx_cmd.py,sha256=OwSdxIA8GViABb1JbbZTLi5HIRIA5Tpp_dBkh9x3GQQ,170
|
|
12
|
+
mm_btc/cli/cmd/mnemonic_cmd.py,sha256=-qWo8AXMdSSYUwyvx4jP54buRuidJM-1q3O8UwnJCF0,1266
|
|
13
|
+
mm_btc/cli/cmd/utxo_cmd.py,sha256=531bTIsgeQYmwJ17Jyn5jYlDDChOGlrvkJ31EIFIdF4,305
|
|
14
|
+
mm_btc-0.5.0.dist-info/METADATA,sha256=ciB5k1Ts4VNXpaeK9yKntdm55zllNatRiay-SVN_nGM,294
|
|
15
|
+
mm_btc-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
16
|
+
mm_btc-0.5.0.dist-info/entry_points.txt,sha256=KphzLNE9eb9H1DO-L0gvBQaQT5ImedyVCN4a6svfiRg,46
|
|
17
|
+
mm_btc-0.5.0.dist-info/RECORD,,
|
mm_btc-0.4.1.dist-info/METADATA
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: mm-btc
|
|
3
|
-
Version: 0.4.1
|
|
4
|
-
Requires-Python: >=3.12
|
|
5
|
-
Requires-Dist: bitcoinlib~=0.7.3
|
|
6
|
-
Requires-Dist: bit~=0.8.0
|
|
7
|
-
Requires-Dist: hdwallet~=3.4.0
|
|
8
|
-
Requires-Dist: mm-crypto-utils>=0.3.4
|
|
9
|
-
Requires-Dist: mnemonic~=0.21
|
|
10
|
-
Requires-Dist: typer~=0.15.2
|
mm_btc-0.4.1.dist-info/RECORD
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
mm_btc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
mm_btc/blockstream.py,sha256=FfQ3QYx9jsEIYVQDttyrYHjWn9nZSt0g2RVJ0BP2nW4,3323
|
|
3
|
-
mm_btc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
mm_btc/tx.py,sha256=7KTMNuL1n8rRj_245BV1bH9M2_PctNvlvPsLEsRTYx4,245
|
|
5
|
-
mm_btc/wallet.py,sha256=_pGTuAf6Y9KzaWTTSg_tn6WEoRsGqhxJuPof0_xyrmM,2333
|
|
6
|
-
mm_btc/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
mm_btc/cli/cli.py,sha256=peUio3WAa2oXomZvq-87QAbuTP37CPNoq5RAG7ax3ns,2656
|
|
8
|
-
mm_btc/cli/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
mm_btc/cli/cmd/address_cmd.py,sha256=PCjOEpZbMqBKpaAJnDHzYSqRnQEqHKqxN-w5c1Xq6jQ,310
|
|
10
|
-
mm_btc/cli/cmd/create_tx_cmd.py,sha256=QHhfA91FGWf5r6DkWTaXInZJi6HYLfxueA1GtcBD2-s,703
|
|
11
|
-
mm_btc/cli/cmd/decode_tx_cmd.py,sha256=0jGlUjnA1X2Q2aYwSBeAjqVNZIBsW5X2lEwIpSfWJsU,175
|
|
12
|
-
mm_btc/cli/cmd/mnemonic_cmd.py,sha256=CY6tPsqOTNfM-4WhKDhqitCi2OeqSIUMEUTFIRGHwIg,1254
|
|
13
|
-
mm_btc/cli/cmd/utxo_cmd.py,sha256=B3vI2BPWMSPVvMLGBctJw-C9k9vVLUg4nKFEIYNtmgY,307
|
|
14
|
-
mm_btc-0.4.1.dist-info/METADATA,sha256=bt6CX5gfr_y91jQTnwavrJZ5itFuvo_jSHR_LNjpcdE,261
|
|
15
|
-
mm_btc-0.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
16
|
-
mm_btc-0.4.1.dist-info/entry_points.txt,sha256=KphzLNE9eb9H1DO-L0gvBQaQT5ImedyVCN4a6svfiRg,46
|
|
17
|
-
mm_btc-0.4.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|