minor fixes and cleanups

This commit is contained in:
The MMGen Project 2022-01-29 11:23:39 +00:00
commit a83dbb0ad5
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
5 changed files with 13 additions and 9 deletions

View file

@ -51,7 +51,7 @@ using standard command-line utilities.
MMGen also differs from most cryptocurrency wallets today in its use of the
original 1626-word [Electrum wordlist][ew] for mnemonic seed phrases. Seed
phrases are derived using ordinary base conversion, similarly allowing you to
regenerate your seed from your seed phrase without MMGen program itself, should
regenerate your seed from your seed phrase without MMGen program itself should
the need arise. An example of how to do this at the Python prompt is provided
[here.][S]
@ -70,7 +70,7 @@ widespread standard.
[Litecoin][bx], [Ethereum][E], Ethereum Classic and [ERC20 tokens][E].
- **Monero transacting and wallet management** via the interactive
[`mmgen-xmrwallet`][xm] command. Offline transaction signing is possible
using a shared blockchain between online and offline machines.
using a blockchain shared between online and offline machines.
- **[Address generation support][ag]** for the above coins, plus [Zcash][zx]
(t and z addresses) and [144 Bitcoin-derived altcoins][ax].
- **Support for all Bitcoin address types** including Segwit-P2SH and Bech32.
@ -117,7 +117,7 @@ widespread standard.
from your seed phrase at the prompt, allowing you to dispense with a
physically stored wallet entirely if you wish.
- Word-completing **mnemonic entry modes** customized for each of MMGen’s
supported wordlists minimize keystrokes during seed phrase entry.
supported wordlists minimize keystrokes required during seed phrase entry.
- **Stealth mnemonic entry:** This feature allows you to obfuscate your seed
phrase with “dead” keystrokes to guard against acoustic side-channel attacks.
- **Network privacy:** MMGen never “calls home” or checks for upgrades over the

View file

@ -20,11 +20,9 @@
addrlist.py: Address list classes for the MMGen suite
"""
from hashlib import sha256,sha512
from .util import qmsg,qmsg_r,suf,make_chksum_N,Msg
from .objmethods import MMGenObject,Hilite,InitErrors
from .obj import MMGenListItem,ListItemAttr,MMGenDict,WalletPassword
from .seed import SeedID
from .key import PrivKey
from .addr import MMGenID,MMGenAddrType,CoinAddr,AddrIdx,AddrListID,ViewKey
@ -234,6 +232,7 @@ class AddrList(MMGenObject): # Address info for a single seed ID
le = self.entry_type
num,pos = (0,0)
from hashlib import sha256,sha512
from .globalvars import g
while pos != t_addrs:

View file

@ -124,7 +124,7 @@ class MMGenTermLinuxStub(MMGenTermLinux):
@classmethod
def init(cls):
pass
cls.stdin_fd = sys.stdin.fileno()
@classmethod
def get_char(cls,prompt='',immed_chars='',prehold_protect=None,num_chars=None,sleep=None):
@ -135,6 +135,10 @@ class MMGenTermLinuxStub(MMGenTermLinux):
get_char_raw = get_char
@classmethod
def kb_hold_protect(cls):
pass
class MMGenTermMSWin(MMGenTerm):
@classmethod

View file

@ -25,9 +25,8 @@ generator_data = namedtuple('generator_data',['kg','ag'])
from .common import tool_cmd_base
from ..protocol import init_proto,init_genonly_altcoins,hash160
from ..key import PrivKey
from ..addr import KeyGenerator,AddrGenerator,MMGenAddrType,CoinAddr
from ..addr import KeyGenerator,AddrGenerator,CoinAddr
class tool_cmd(tool_cmd_base):
"""
@ -134,6 +133,7 @@ class tool_cmd(tool_cmd_base):
if self.mmtype.name == 'segwit':
return self.proto.pubkey2segwitaddr( pubkey )
else:
from ..protocol import hash160
return self.pubhash2addr( hash160(pubkey).hex() )
def pubhex2redeem_script(self,pubkeyhex:'sstr'): # new
@ -146,6 +146,7 @@ class tool_cmd(tool_cmd_base):
assert self.mmtype.name == 'segwit', 'This command is meaningful only for --type=segwit'
assert redeem_scripthex[:4] == '0014', f'{redeem_scripthex!r}: invalid redeem script'
assert len(redeem_scripthex) == 44, f'{len(redeem_scripthex)//2} bytes: invalid redeem script length'
from ..protocol import hash160
return self.pubhash2addr( hash160(bytes.fromhex(redeem_scripthex)).hex() )
def pubhash2addr(self,pubhashhex:'sstr'):

View file

@ -634,7 +634,7 @@ class MMGenTX:
from decimal import Decimal
tx_size = self.estimate_size()
ret = self.proto.coin_amt(
Decimal(fee_per_kb * opt.tx_fee_adj * tx_size / 1024),
fee_per_kb * Decimal(opt.tx_fee_adj) * tx_size / 1024,
from_decimal = True )
if opt.verbose:
msg(fmt(f"""