예제 #1
0
 def to_xpub(self):
     data = '0488b21e'.decode('hex')
     data += ('%02x' % self.depth).decode('hex')
     data += self.fingerprint
     if self.hard:
         data += ('%08x' % (self.child_num | 2**31)).decode('hex')
     else:
         data += ('%08x' % self.child_num).decode('hex')
     data += self.chaincode
     data += self.pubkey
     return bitcoin.EncodeBase58Check(data)
예제 #2
0
파일: cryptocorp.py 프로젝트: mdz/electrum
def SerializeExtendedPublicKey(depth, parent_fingerprint, child_number,
                               chain_code, cK):
    """Yield a base58 encoded 78-byte binary blob corresponding to this node."""

    vch = PRIVATE_TEST__VERSION_LOOKUP[(False, False)]
    vch += chr(depth)
    vch += parent_fingerprint
    vch += struct.pack(">L", child_number)
    vch += chain_code
    #    ba += b'\0' + self.secret_exponent_bytes
    vch += cK
    return bitcoin.EncodeBase58Check(vch)
예제 #3
0
 def parse_xpubkey(self, pubkey):
     assert is_extended_pubkey(pubkey)
     pk = pubkey.decode('hex')
     pk = pk[1:]
     xkey = bitcoin.EncodeBase58Check(pk[0:78])
     dd = pk[78:]
     s = []
     while dd:
         n = int(bitcoin.rev_hex(dd[0:2].encode('hex')), 16)
         dd = dd[2:]
         s.append(n)
     assert len(s) == 2
     return xkey, s
예제 #4
0
파일: keystore.py 프로젝트: martyp11/PyB
 def parse_xpubkey(self, pubkey):
     assert pubkey[0:2] == 'ff'
     pk = bfh(pubkey)
     pk = pk[1:]
     xkey = bitcoin.EncodeBase58Check(pk[0:78])
     dd = pk[78:]
     s = []
     while dd:
         n = int(bitcoin.rev_hex(bh2u(dd[0:2])), 16)
         dd = dd[2:]
         s.append(n)
     assert len(s) == 2
     return xkey, s
예제 #5
0
 def to_xprv(self):
     if self.privkey == None:
         raise Exception('BIP32.to_xprv: no private key available')
     data = '0488ade4'.decode('hex')
     data += ('%02x' % self.depth).decode('hex')
     data += self.fingerprint
     if self.hard:
         data += ('%08x' % (self.child_num | 2**31)).decode('hex')
     else:
         data += ('%08x' % self.child_num).decode('hex')
     data += self.chaincode
     data += chr(0) + self.privkey
     return bitcoin.EncodeBase58Check(data)
예제 #6
0
 def SecretToASecret(secret, compressed=False):
     addrtype = 0
     vchIn = chr((addrtype + 128) & 255) + secret
     if compressed: vchIn += '\01'
     return bitcoin.EncodeBase58Check(vchIn)