proto.addr_fmt_to_ver_bytes(): reimplement as dict
This commit is contained in:
parent
01e2830296
commit
c647e48959
5 changed files with 11 additions and 14 deletions
|
|
@ -105,7 +105,7 @@ class addr_generator:
|
|||
|
||||
@check_data
|
||||
def to_addr(self,data):
|
||||
step1 = self.proto.addr_fmt_to_ver_bytes('monero') + data.pubkey
|
||||
step1 = self.proto.addr_fmt_to_ver_bytes['monero'] + data.pubkey
|
||||
return CoinAddr(
|
||||
proto = self.proto,
|
||||
addr = self.b58enc( step1 + self.keccak_256(step1).digest()[:4]) )
|
||||
|
|
@ -119,13 +119,13 @@ class addr_generator:
|
|||
@check_data
|
||||
def to_addr(self,data):
|
||||
ret = b58chk_encode(
|
||||
self.proto.addr_fmt_to_ver_bytes('zcash_z')
|
||||
self.proto.addr_fmt_to_ver_bytes['zcash_z']
|
||||
+ data.pubkey )
|
||||
return CoinAddr( self.proto, ret )
|
||||
|
||||
@check_data
|
||||
def to_viewkey(self,data):
|
||||
ret = b58chk_encode(
|
||||
self.proto.addr_fmt_to_ver_bytes('viewkey')
|
||||
self.proto.addr_fmt_to_ver_bytes['viewkey']
|
||||
+ data.viewkey_bytes )
|
||||
return ZcashViewKey( self.proto, ret )
|
||||
|
|
|
|||
|
|
@ -460,13 +460,13 @@ class CoinInfo(object):
|
|||
test_equal(
|
||||
'P2PKH version number',
|
||||
e.p2pkh_info[0],
|
||||
int.from_bytes(proto.addr_fmt_to_ver_bytes('p2pkh'),'big'),
|
||||
int.from_bytes(proto.addr_fmt_to_ver_bytes['p2pkh'],'big'),
|
||||
*cdata )
|
||||
|
||||
test_equal(
|
||||
'P2SH version number',
|
||||
e.p2sh_info[0],
|
||||
int.from_bytes(proto.addr_fmt_to_ver_bytes('p2sh'),'big'),
|
||||
int.from_bytes(proto.addr_fmt_to_ver_bytes['p2sh'],'big'),
|
||||
*cdata )
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ class mainnet(CoinProtocol.Secp256k1): # chainparams.cpp
|
|||
def pubhash2addr(self,pubhash,p2sh):
|
||||
assert len(pubhash) == 20, f'{len(pubhash)}: invalid length for pubkey hash'
|
||||
return b58chk_encode(
|
||||
self.addr_fmt_to_ver_bytes(('p2pkh','p2sh')[p2sh],return_hex=False) + pubhash
|
||||
self.addr_fmt_to_ver_bytes[('p2pkh','p2sh')[p2sh]] + pubhash
|
||||
)
|
||||
|
||||
# Segwit:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ from .btc import mainnet
|
|||
|
||||
class mainnet(mainnet):
|
||||
block0 = '12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2'
|
||||
addr_ver_bytes = { '30': 'p2pkh', '32': 'p2sh', '05': 'p2sh' } # new p2sh ver 0x32 must come first
|
||||
addr_ver_bytes = { '30': 'p2pkh', '05': 'p2sh', '32': 'p2sh' } # new p2sh ver 0x32 must come last
|
||||
wif_ver_num = { 'std': 'b0' }
|
||||
mmtypes = ('L','C','S','B')
|
||||
coin_amt = 'LTCAmt'
|
||||
|
|
@ -30,7 +30,7 @@ class mainnet(mainnet):
|
|||
|
||||
class testnet(mainnet):
|
||||
# addr ver nums same as Bitcoin testnet, except for 'p2sh'
|
||||
addr_ver_bytes = { '6f':'p2pkh', '3a':'p2sh', 'c4':'p2sh' }
|
||||
addr_ver_bytes = { '6f':'p2pkh', 'c4':'p2sh', '3a':'p2sh' }
|
||||
wif_ver_num = { 'std': 'ef' } # same as Bitcoin testnet
|
||||
bech32_hrp = 'tltc'
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,9 @@ class CoinProtocol(MMGenObject):
|
|||
'regtest': '_rt',
|
||||
}[network]
|
||||
|
||||
if hasattr(self,'addr_ver_bytes'):
|
||||
self.addr_fmt_to_ver_bytes = {v:bytes.fromhex(k) for k,v in self.addr_ver_bytes.items()}
|
||||
|
||||
if 'tx' not in self.mmcaps and g.is_txprog:
|
||||
from .util import die
|
||||
die(2,f'Command {g.prog_name!r} not supported for coin {self.coin}')
|
||||
|
|
@ -131,12 +134,6 @@ class CoinProtocol(MMGenObject):
|
|||
def cap(self,s):
|
||||
return s in self.caps
|
||||
|
||||
def addr_fmt_to_ver_bytes(self,req_fmt,return_hex=False):
|
||||
for ver_hex,fmt in self.addr_ver_bytes.items():
|
||||
if req_fmt == fmt:
|
||||
return ver_hex if return_hex else bytes.fromhex(ver_hex)
|
||||
return False
|
||||
|
||||
def get_addr_len(self,addr_fmt):
|
||||
return self.addr_len
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue