import key and address generators from addrgen.py

This commit is contained in:
The MMGen Project 2022-10-04 13:08:55 +00:00
commit 1ae19320a8
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
9 changed files with 14 additions and 11 deletions

View file

@ -25,8 +25,6 @@ from collections import namedtuple
from .objmethods import Hilite,InitErrors,MMGenObject
from .obj import ImmutableAttr,MMGenIdx,HexStr,get_obj
from .seed import SeedID
from .keygen import KeyGenerator # stub
from .addrgen import AddrGenerator # stub
ati = namedtuple('addrtype_info',
['name','pubkey_type','compressed','gen_method','addr_fmt','wif_label','extra_attrs','desc'])

View file

@ -168,7 +168,7 @@ class AddrFile(MMGenObject):
if p.has_keys and p.ka_validity_chk != False:
from .opts import opt
if opt.yes or p.ka_validity_chk == True or keypress_confirm('Check key-to-address validity?'):
from .addr import KeyGenerator,AddrGenerator
from .addrgen import KeyGenerator,AddrGenerator
kg = KeyGenerator(p.proto,p.al_id.mmtype.pubkey_type)
ag = AddrGenerator(p.proto,p.al_id.mmtype)
llen = len(ret)

View file

@ -20,6 +20,8 @@
addrgen.py: Address generation initialization code for the MMGen suite
"""
from .keygen import KeyGenerator # convenience import
# decorator for to_addr() and to_viewkey()
def check_data(orig_func):
def f(self,data):

View file

@ -220,7 +220,7 @@ class AddrList(MMGenObject): # Address info for a single seed ID
gen_viewkey = type(self) == KeyAddrList and 'viewkey' in mmtype.extra_attrs
if self.gen_addrs:
from .addr import KeyGenerator,AddrGenerator
from .addrgen import KeyGenerator,AddrGenerator
kg = KeyGenerator( self.proto, mmtype.pubkey_type )
ag = AddrGenerator( self.proto, mmtype )
if self.add_p2pkh:
@ -345,7 +345,7 @@ class AddrList(MMGenObject): # Address info for a single seed ID
"""
def gen_addr(pk,t):
at = self.proto.addr_type(t)
from .addr import KeyGenerator,AddrGenerator
from .addrgen import KeyGenerator,AddrGenerator
kg = KeyGenerator(self.proto,at.pubkey_type)
ag = AddrGenerator(self.proto,at)
return ag.to_addr(kg.gen_data(pk))

View file

@ -37,7 +37,7 @@ class Unsigned(Completed,TxBase.Unsigned):
qmsg(f'Passing {len(keys)} key{suf(keys)} to {self.rpc.daemon.exec_fn}')
if self.has_segwit_inputs():
from ....addr import KeyGenerator,AddrGenerator
from ....addrgen import KeyGenerator,AddrGenerator
kg = KeyGenerator(self.proto,'std')
ag = AddrGenerator(self.proto,'segwit')
keydict = MMGenDict([(d.addr,d.sec) for d in keys])

View file

@ -26,7 +26,8 @@ generator_data = namedtuple('generator_data',['kg','ag'])
from .common import tool_cmd_base
from ..key import PrivKey
from ..addr import KeyGenerator,AddrGenerator,CoinAddr,MMGenAddrType
from ..addr import CoinAddr,MMGenAddrType
from ..addrgen import KeyGenerator,AddrGenerator
class tool_cmd(tool_cmd_base):
"""

View file

@ -543,7 +543,8 @@ from collections import namedtuple
from mmgen.protocol import init_proto,init_proto_from_opts,CoinProtocol
from mmgen.altcoin import init_genonly_altcoins,CoinInfo as cinfo
from mmgen.key import PrivKey
from mmgen.addr import KeyGenerator,AddrGenerator,MMGenAddrType
from mmgen.addr import MMGenAddrType
from mmgen.addrgen import KeyGenerator,AddrGenerator
from mmgen.keygen import get_backends
sys.argv = [sys.argv[0]] + ['--skip-cfg-file'] + sys.argv[1:]

View file

@ -382,7 +382,7 @@ class TestSuiteMain(TestSuiteBase,TestSuiteShared):
getrand(32),
compressed = non_mmgen_input_compressed,
pubkey_type = 'std' )
from mmgen.addr import KeyGenerator,AddrGenerator
from mmgen.addrgen import KeyGenerator,AddrGenerator
rand_coinaddr = AddrGenerator(
self.proto,
('legacy','compressed')[non_mmgen_input_compressed]
@ -422,7 +422,7 @@ class TestSuiteMain(TestSuiteBase,TestSuiteShared):
from mmgen.key import PrivKey
privkey = PrivKey(self.proto,getrand(32),compressed=True,pubkey_type='std')
t = ('compressed','segwit')['S' in self.proto.mmtypes]
from mmgen.addr import KeyGenerator,AddrGenerator
from mmgen.addrgen import KeyGenerator,AddrGenerator
rand_coinaddr = AddrGenerator(self.proto,t).to_addr(
KeyGenerator(self.proto,'std').gen_data(privkey)
)

View file

@ -6,7 +6,8 @@ test.unit_tests_d.ut_gen: key/address generation unit tests for the MMGen suite
from mmgen.common import *
from mmgen.protocol import init_proto
from mmgen.key import PrivKey
from mmgen.addr import MMGenAddrType,KeyGenerator,AddrGenerator
from mmgen.addr import MMGenAddrType
from mmgen.addrgen import KeyGenerator,AddrGenerator
from mmgen.keygen import get_backends
# TODO: add viewkey checks