def __init__(self, tab_main, name, ip, port, mnPrivKey, hwAcc, collateral=None, isTestnet=False, *args, **kwargs): QObject.__init__(self, *args, **kwargs) if collateral is None: collateral = {} self.tab_main = tab_main self.name = name self.ip = ip self.port = str(port) self.mnPrivKey = wif_to_privkey(mnPrivKey) self.mnWIF = mnPrivKey self.mnPubKey = bitcoin.privkey_to_pubkey(self.mnPrivKey) self.hwAcc = hwAcc self.spath = collateral['spath'] self.nodePath = "%d'/0/%d" % (self.hwAcc, self.spath) self.collateral = collateral self.isTestnet = isTestnet self.currHeight = 0 Masternode.mnCount += 1 printOK("Initializing MNode with collateral: %s" % self.nodePath)
def ecdsa_sign_bin(msgbin, priv): v, r, s = ecdsa_raw_sign(msgbin, priv) sig = encode_sig(v, r, s) pubkey = privkey_to_pubkey(wif_to_privkey(priv)) ok = ecdsa_raw_verify(msgbin, decode_sig(sig), pubkey) if not ok: raise Exception('Bad signature!') return sig
def ecdsa_sign(msg, priv): """ Based on project: https://github.com/chaeplin/dashmnb. """ v, r, s = ecdsa_raw_sign(electrum_sig_hash(msg), priv) sig = encode_sig(v, r, s) pubkey = privkey_to_pubkey(wif_to_privkey(priv)) ok = ecdsa_raw_verify(electrum_sig_hash(msg), decode_sig(sig), pubkey) if not ok: raise Exception('Bad signature!') return sig
def __init__(self, caller, name, ip, port, mnPrivKey, hwAcc, collateral = {}, *args, **kwargs): QObject.__init__(self, *args, **kwargs) self.caller = caller self.name = name self.ip = ip self.port = str(port) self.mnPrivKey = wif_to_privkey(mnPrivKey) self.mnWIF = mnPrivKey self.mnPubKey = bitcoin.privkey_to_pubkey(self.mnPrivKey) self.hwAcc = hwAcc self.spath = collateral['spath'] self.nodePath = MPATH + "%d'/0/%d" % (self.hwAcc, self.spath) self.collateral = collateral Masternode.mnCount += 1 printOK("Initializing MNode with collateral: %s" % self.nodePath)