def do_get10(self, args): print("\033[0;37;40m") children_amount = len(self.wallet["children"]) init_chil = children_amount for i in range(20): childm, childc = wallet.get_key_chain(self.wallet["public_key"] + self.chaincode + str(children_amount + i)) self.wallet["children"].append([childm, childc]) children_amount = len(self.wallet["children"]) print("Receiving: ") for k in range(10): c = self.wallet["children"][init_chil + k] addr = wallet.gen_address(wallet.get_pubkey_str(c[0])) self.addresses.append(addr) open("addresses.txt", "a+").write(addr + "\n") print(k, ". ", addr) print("Change addresses: ") for k in range(10, 20): c = self.wallet["children"][init_chil + k] addr = wallet.gen_address(wallet.get_pubkey_str(c[0])) self.addresses.append(addr) open("addresses.txt", "a+").write(addr + "\n") print(k - 10, ". ", addr)
def testing_forming(): privkey = wallet.gen_privkey() wif = wallet.privkey_to_wif(privkey) sender = wallet.gen_address(wallet.get_pubkey_str(privkey)) recipient = wallet.gen_address(wallet.get_pubkey_str(wallet.gen_privkey())) utxo_obj = Utxos() g_miner_reward = 50 coinbase_tx = form_coinbase(recipient, wif, g_miner_reward) print(coinbase_tx.toJSON()) serial_coinbase = Serializer().serialize(coinbase_tx) deserial_coinbase = Deserializer().deserialize(serial_coinbase)
def do_new_child(self, args): "Generates new child private key" print("\033[0;37;40m") ind = len(self.wallet["children"]) childm, childc = wallet.get_key_chain(self.wallet["public_key"] + self.chaincode + str(ind)) self.wallet["children"].append([childm, childc]) addr = wallet.gen_address(wallet.get_pubkey_str(childm)) self.addresses.append(addr) open("addresses.txt", "a+").write(addr + "\n") print("New child was generated: ") print("Child private key: ", childm) print("Addres: ", addr)
def do_new_key(self, args): "Generates new pair of public and private keys" privkey = wallet.gen_privkey() wif = wallet.privkey_to_wif(privkey) vk = wallet.get_pubkey_str(privkey) pub_address = wallet.gen_address(vk) self.wallet["wif"] = wif self.addresses.append(pub_address) f = open("addresses.txt", "a+") f.write(pub_address + "\n") f.close() print("Private key : " + privkey) print("Address : " + pub_address)
def test(): " SCRIPT TEST " privkey = wallet.gen_privkey() wif = wallet.privkey_to_wif(privkey) pubkey = wallet.get_pubkey_str(privkey) address = wallet.gen_address(pubkey) scriptSig = get_scriptSig(wif, "1234567890abcdef1234567890") print("scriptSig: " + scriptSig) scriptPubKey = get_scriptPubKey(address) print("scriptPubKey: " + scriptPubKey) if exec_script(scriptSig, scriptPubKey, "1234567890abcdef1234567890"): print("script is correct")
def do_import(self, path): "Import WIF from file: import PATH" if not path: print("Please, enter path to file.") return try: self.wallet["wif"] = open(path, "r").read(51) privkey = wallet.wif_to_privkey(self.wallet["wif"]) pubkey = wallet.get_pubkey_str(privkey) self.addresses.append(wallet.gen_address(pubkey)) f = open("addresses.txt", "a+") f.write(self.addresses[-1] + "\n") f.close() print("Private key ( WIF ): " + self.wallet["wif"] + " was imported to wallet") print("Public address : " + self.addresses[-1]) except: print("File " + path + " doesn't exist or has invalid form ( WIF needed )")
def __init__(self): self.db = TinyDB('blks.json') self.utxo_pool = Utxos() self.utxo_pool.update_pool([]) ############################## self.bits = 0x33222222 try: with open("miner_key", "r") as f: self.miner_wif = f.read(51) with open("miner_address.txt", "r") as f2: self.address = f2.read(34) except: with open("miner_key", "w") as f: privkey = wallet.gen_privkey() self.miner_wif = wallet.privkey_to_wif(privkey) f.write(self.miner_wif + "\n") with open("miner_address.txt", "w") as f2: self.address = wallet.gen_address( wallet.get_pubkey_str(privkey)) f2.write(self.address + "\n")
def __init__(self): cmd.Cmd.__init__(self) self.prompt = "\033[1;32;40m > " self.intro = "\033[1;34;40m*** Wallet command line interface ***\nType 'help' to get usage.\033[0;37;40m\n" self.doc_header = "Commands" self.server_port = "http://127.0.0.1:5000" self.tx_to_broadcast = [] self.chain = Blockchain() self.addresses = [] try: with open("addresses.txt", "r") as f: lines = f.readlines() for l in lines: self.addresses.append(l.replace("\n", "")) except: pass try: with open("mnemonic", "r") as f: self.mnemonic = f.read().replace("\n", "") except: with open("mnemonic", "w") as f: f.write(wallet.get_mnemonic()) self.mnemonic = open("mnemonic", "r").read().replace("\n", "") self.seed = wallet.get_seed(self.mnemonic) # hex str self.master_key, self.chaincode = wallet.get_key_chain(self.seed) self.wallet = { "seed": self.seed, "private_key": self.master_key, "wif": wallet.privkey_to_wif(self.master_key), "public_key": wallet.get_pubkey_str(self.master_key), "xprivate_key": "", "xpublic_key": "", "address": "", "children": [] } self.wif_address = {}