mm-btc 0.2.1__py3-none-any.whl → 0.3.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 CHANGED
@@ -7,8 +7,10 @@ from pydantic import BaseModel
7
7
  MAINNET_BASE_URL = "https://blockstream.info/api"
8
8
  TESTNET_BASE_URL = "https://blockstream.info/testnet/api"
9
9
 
10
- ERROR_INVALID_ADDRESS = "INVALID_ADDRESS"
11
- ERROR_INVALID_NETWORK = "INVALID_NETWORK"
10
+ # ERROR_INVALID_ADDRESS = "INVALID_ADDRESS"
11
+ # ERROR_INVALID_NETWORK = "INVALID_NETWORK"
12
+
13
+ ERROR_400_BAD_REQUEST = "400 Bad Request"
12
14
 
13
15
  type Proxy = str | Sequence[str] | None
14
16
 
@@ -67,12 +69,8 @@ class BlockstreamClient:
67
69
  try:
68
70
  res = self._request(f"/address/{address}")
69
71
  data = res.to_dict()
70
- if res.code == 400 and (
71
- "invalid bitcoin address" in res.body.lower() or "bech32 segwit decoding error" in res.body.lower()
72
- ):
73
- return Err(ERROR_INVALID_ADDRESS, data=data)
74
- if res.code == 400 and "invalid network" in res.body.lower():
75
- return Err(ERROR_INVALID_NETWORK, data=data)
72
+ if res.code == 400:
73
+ return Err("400 Bad Request", data=data)
76
74
  return Ok(Address(**res.json), data=data)
77
75
  except Exception as err:
78
76
  result = Err(err, data=data)
mm_btc/cli/cli.py CHANGED
@@ -1,3 +1,4 @@
1
+ import importlib.metadata
1
2
  from pathlib import Path
2
3
  from typing import Annotated
3
4
 
@@ -7,7 +8,6 @@ from mm_std import print_plain
7
8
 
8
9
  from mm_btc.wallet import AddressType
9
10
 
10
- from . import cli_utils
11
11
  from .cmd import address_cmd, create_tx_cmd, decode_tx_cmd, mnemonic_cmd, utxo_cmd
12
12
 
13
13
  app = typer.Typer(no_args_is_help=True, pretty_exceptions_enable=False, add_completion=False)
@@ -67,7 +67,7 @@ def utxo_command(address: str) -> None:
67
67
 
68
68
  def version_callback(value: bool) -> None:
69
69
  if value:
70
- print_plain(f"mm-btc: v{cli_utils.get_version()}")
70
+ print_plain(f"mm-btc: v{importlib.metadata.version('mm-btc')}")
71
71
  raise typer.Exit
72
72
 
73
73
 
@@ -3,7 +3,6 @@ from pathlib import Path
3
3
  from bit import PrivateKey, PrivateKeyTestnet
4
4
  from mm_std import BaseConfig, print_console
5
5
 
6
- from mm_btc.cli.cli_utils import read_config
7
6
  from mm_btc.wallet import is_testnet_address
8
7
 
9
8
 
@@ -18,7 +17,7 @@ class Config(BaseConfig):
18
17
 
19
18
 
20
19
  def run(config_path: Path) -> None:
21
- config = read_config(Config, config_path)
20
+ config = Config.read_toml_config_or_exit(config_path)
22
21
  testnet = is_testnet_address(config.from_address)
23
22
  key = PrivateKeyTestnet(config.private) if testnet else PrivateKey(config.private)
24
23
 
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mm-btc
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Requires-Python: >=3.12
5
5
  Requires-Dist: bitcoinlib~=0.7.1
6
6
  Requires-Dist: bit~=0.8.0
7
7
  Requires-Dist: hdwallet~=3.2.3
8
- Requires-Dist: mm-std~=0.1.11
8
+ Requires-Dist: mm-crypto-utils>=0.1.3
9
9
  Requires-Dist: mnemonic~=0.21
10
10
  Requires-Dist: typer~=0.15.1
@@ -1,18 +1,17 @@
1
1
  mm_btc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- mm_btc/blockstream.py,sha256=as3Rv_OsbdvclUEotxrXC8K5mwddxvznY3SuFscKkY4,3591
2
+ mm_btc/blockstream.py,sha256=hnZ4pSPUbXCoPA0zPaEazwibDvy-WXHCXk0hrix-grA,3347
3
3
  mm_btc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mm_btc/tx.py,sha256=7KTMNuL1n8rRj_245BV1bH9M2_PctNvlvPsLEsRTYx4,245
5
5
  mm_btc/wallet.py,sha256=_pGTuAf6Y9KzaWTTSg_tn6WEoRsGqhxJuPof0_xyrmM,2333
6
6
  mm_btc/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- mm_btc/cli/cli.py,sha256=RleK9_widQ6OQEWU10qTRKvi7ooHKGE5JPYNOM9DfnM,2600
8
- mm_btc/cli/cli_utils.py,sha256=vNXTicMAyUWbPmdnAcBn5cCGON75ayZ6rVK8T5McgtQ,413
7
+ mm_btc/cli/cli.py,sha256=-UQ_StfyHS0p5gSD7bWWsibjJh3FJDSaWkVnlRUvZds,2615
9
8
  mm_btc/cli/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
9
  mm_btc/cli/cmd/address_cmd.py,sha256=fipX9FiQ2EgCEq8nVN6ELnDMoR5KTIX7bpAaRK3t_yg,284
11
- mm_btc/cli/cmd/create_tx_cmd.py,sha256=kD3lTc7sSDconCfB-PFHiH415ABeZ86kfkDwEw2jx50,736
10
+ mm_btc/cli/cmd/create_tx_cmd.py,sha256=QHhfA91FGWf5r6DkWTaXInZJi6HYLfxueA1GtcBD2-s,703
12
11
  mm_btc/cli/cmd/decode_tx_cmd.py,sha256=0jGlUjnA1X2Q2aYwSBeAjqVNZIBsW5X2lEwIpSfWJsU,175
13
12
  mm_btc/cli/cmd/mnemonic_cmd.py,sha256=CY6tPsqOTNfM-4WhKDhqitCi2OeqSIUMEUTFIRGHwIg,1254
14
13
  mm_btc/cli/cmd/utxo_cmd.py,sha256=mp-lVLURpXFqO3IeBIEwnHusEvT5tFjUKxnRYC-rFqQ,294
15
- mm_btc-0.2.1.dist-info/METADATA,sha256=uEDpGrymap4CQcZEBzNK9devojVPZ6aW8iLFrS9fczM,253
16
- mm_btc-0.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
17
- mm_btc-0.2.1.dist-info/entry_points.txt,sha256=KphzLNE9eb9H1DO-L0gvBQaQT5ImedyVCN4a6svfiRg,46
18
- mm_btc-0.2.1.dist-info/RECORD,,
14
+ mm_btc-0.3.0.dist-info/METADATA,sha256=07SoipqPS9Ogpdp2jM5tu29r9I6xX07NQ837ijTchkY,261
15
+ mm_btc-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ mm_btc-0.3.0.dist-info/entry_points.txt,sha256=KphzLNE9eb9H1DO-L0gvBQaQT5ImedyVCN4a6svfiRg,46
17
+ mm_btc-0.3.0.dist-info/RECORD,,
mm_btc/cli/cli_utils.py DELETED
@@ -1,19 +0,0 @@
1
- import importlib.metadata
2
- import sys
3
- from pathlib import Path
4
-
5
- from mm_std import BaseConfig
6
- from rich import print_json
7
-
8
-
9
- def get_version() -> str:
10
- return importlib.metadata.version("mm-btc")
11
-
12
-
13
- def read_config[T: BaseConfig](config_type: type[T], config_path: Path) -> T:
14
- res = config_type.read_config(config_path)
15
- if res.is_ok():
16
- return res.unwrap()
17
-
18
- print_json(res.err)
19
- sys.exit(1)
File without changes