zcash: update address, viewkey prefixes

This commit is contained in:
The MMGen Project 2018-05-09 14:23:33 +00:00
commit 33fc67e241
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 9 additions and 7 deletions

View file

@ -92,6 +92,7 @@ class AddrGeneratorEthereum(AddrGenerator):
class AddrGeneratorZcashZ(AddrGenerator):
addr_width = 95
vk_width = 97
def zhash256(self,s,t):
s = map(ord,s+'\0'*32)
@ -121,7 +122,7 @@ class AddrGeneratorZcashZ(AddrGenerator):
vk[63] |= 0x40
from mmgen.protocol import _b58chk_encode
ret = _b58chk_encode(g.proto.addr_ver_num['viewkey'][0] + hexlify(''.join(map(chr,vk))))
assert len(ret) == self.addr_width,'Invalid Zcash view key length'
assert len(ret) == self.vk_width,'Invalid Zcash view key length'
return ZcashViewKey(ret)
def to_segwit_redeem_script(self,pubhex):

View file

@ -317,7 +317,7 @@ class ZcashProtocol(BitcoinProtocolAddrgen):
'p2pkh': ('1cb8','t1'),
'p2sh': ('1cbd','t3'),
'zcash_z': ('169a','zc'),
'viewkey': ('0b1c','V') }
'viewkey': ('a8abd3','ZiVK') }
wif_ver_num = { 'std': '80', 'zcash_z': 'ab36' }
mmtypes = ('L','C','Z')
dfl_mmtype = 'L'
@ -340,12 +340,12 @@ class ZcashProtocol(BitcoinProtocolAddrgen):
raise ValueError,'{}: incorrect pubkey_hash length'.format(hl)
class ZcashTestnetProtocol(ZcashProtocol):
wif_ver_num = { 'std': '??', 'zcash_z': 'ac08' }
wif_ver_num = { 'std': 'ef', 'zcash_z': 'ac08' }
addr_ver_num = {
'p2pkh': ('??','t1'),
'p2sh': ('??','t3'),
'zcash_z': ('16b6','??'),
'viewkey': ('0b2a','??') }
'p2pkh': ('1d25','tm'),
'p2sh': ('1cba','t2'),
'zcash_z': ('16b6','zt'),
'viewkey': ('a8ac0c','ZiVt') }
# https://github.com/monero-project/monero/blob/master/src/cryptonote_config.h
class MoneroProtocol(DummyWIF,BitcoinProtocolAddrgen):

View file

@ -180,6 +180,7 @@ def compare_test():
if b == 'ext':
if addr_type.name == 'zcash_z':
b_wif,b_addr,b_vk = ext_sec2addr(sec)
vmsg_r('\nvkey: {}'.format(b_vk))
if b_vk != a_vk:
match_error(sec,sec.wif,a_vk,b_vk,a,b)
else: