DATA = RDIR + '/data/' commands.getoutput('mkdir -p ' + DATA) #get some variables from the json iput FROMADDRESS = listOptions['transaction_from'].strip() TOADDRESS = listOptions['transaction_to'].strip() CID = listOptions['currency_id'] TOAMOUNT = listOptions['send_amt'] PTYPE = listOptions['property_type'] BROADCAST = listOptions['broadcast'] CLEAN = 1 if BROADCAST > 0: PRIVATE_KEY = listOptions['from_private_key'].strip() CLEAN = listOptions['clean'] #check if private key provided produces correct address address = pybitcointools.privkey_to_address(PRIVATE_KEY) if not address == FROMADDRESS and not force: print json.dumps({ "status": "NOT OK", "error": "Private key does not produce same address as \'transaction from\'", "fix": "Set \'force\' flag to proceed without address checks" }) exit() #prime out utxo files if sync_utxo(FROMADDRESS) == 1: print json.dumps({ "status":
RPCPASS=line.split('=')[1].strip() elif line.split('=')[0] == "rpcconnect": RPCHOST=line.split('=')[1].strip() elif line.split('=')[0] == "rpcport": RPCPORT=line.split('=')[1].strip() except IOError as e: print "Unable to open conf file: ~/.bitcoin/bitcoin.conf" exit() try: conn = bitcoinrpc.connect_to_remote(RPCUSER,RPCPASS,host=RPCHOST,port=RPCPORT,use_https=False) except StandardError: print json.dumps({ "status": "NOT OK", "error": "Can't connect to bitcoind" , "fix": "Check bitcoind or config: "+RPCUSER+" "+RPCPASS+" "+RPCHOST+" "+RPCPORT}) exit() #check if private key provided produces correct address address = pybitcointools.privkey_to_address(listOptions['from_private_key']) if not address == listOptions['transaction_from'] and not force: print json.dumps({ "status": "NOT OK", "error": "Private key does not produce same address as \'transaction from\'" , "fix": "Set \'force\' flag to proceed without address checks" }) exit() #see if account has been added account = conn.getaccount(listOptions['transaction_from']) if account == "" and not force: _time = str(int(time.time())) private = listOptions['from_private_key'] print json.dumps({ "status": "NOT OK", "error": "Couldn\'t find address in wallet, please run \'fix\' on the machine", "fix": "bitcoind importprivkey " + private + " imported_" + _time }) #calculate minimum unspent balance available_balance = Decimal(0.0) unspent_tx = []
DATA=RDIR+'/data/' commands.getoutput('mkdir -p '+DATA) #get some variables from the json iput FROMADDRESS=listOptions['transaction_from'].strip() TOADDRESS=listOptions['transaction_to'].strip() CID=listOptions['currency_id'] TOAMOUNT=listOptions['send_amt'] PTYPE=listOptions['property_type'] BROADCAST=listOptions['broadcast'] CLEAN=1 if BROADCAST > 0: PRIVATE_KEY=listOptions['from_private_key'].strip() CLEAN=listOptions['clean'] #check if private key provided produces correct address address = pybitcointools.privkey_to_address(PRIVATE_KEY) if not address == FROMADDRESS and not force: print json.dumps({ "status": "NOT OK", "error": "Private key does not produce same address as \'transaction from\'" , "fix": "Set \'force\' flag to proceed without address checks" }) exit() #prime out utxo files if sync_utxo(FROMADDRESS) == 1: print json.dumps({ "status": "NOT OK", "error": "Couldn't update utxo list", "fix": "Check connection to internet, sx operating properly and try again" }) exit() #calculate minimum unspent balance (everything in satoshi's) available_balance = int(0) utxo_array=get_utxo() for item in utxo_array: if item['address'] == FROMADDRESS: available_balance += int(item['satoshi'])
def privkey_to_address(self): return pybitcointools.privkey_to_address(self.to_btc_privkey())
def update(source_code,address_private_key=None): if(not address_private_key): address_private_key=hexlify(secure_random(32)) address=pybitcointools.privkey_to_address(address_private_key)
rtx = pbt.mktx(data["u"], outs) # serialized tx dtx = pbt.deserialize(rtx) base.display_dtx(dtx, data) print "Check balance and targets. Remove your data source (USB-stick)." print "Press <enter> to proceed, <ctrl-c> to cancel." raw_input() print print "Enter private key or (double) Electrum seed:" priv = raw_input().strip() if " " in priv: seed = mnemonic.mn_decode(priv.split(" ")) priv = pbt.electrum_privkey(seed, 0, 0) # root key source = pbt.privkey_to_address(priv) if source != data["source"]: print "Address from privkey:", source raise Exception ("Privkey does not match source address.") print # sign tx for i in range(len(dtx["ins"])): rtx = pbt.sign(rtx, i, priv) print "signed serialized tx:" print rtx58 = pbt.changebase(rtx, 16, 58) print rtx58 printqr.print_tx(rtx58)
JSON = sys.stdin.readlines() listOptions = json.loads(str("".join(JSON))) if "testnet" in listOptions and listOptions["testnet"] == True: testnet = True magicbyte = 111 else: testnet = False magicbyte = 0 # sort out whether using local or remote API conn = bitcoinrpc.connect_to_local() # check if private key provided produces correct address address = pybitcointools.privkey_to_address(listOptions["from_private_key"], magicbyte) if not address == listOptions["transaction_from"] and not force: print json.dumps( { "status": "NOT OK", "error": "Private key does not produce same address as 'transaction from'", "fix": "Set 'force' flag to proceed without address checks", } ) exit() # see if account has been added account = conn.getaccount(listOptions["transaction_from"]) if account == "" and not force: _time = str(int(time.time())) private = listOptions["from_private_key"]
def setUp(self): self.brainwallet_string = 'Here is a brainwallet string for testing purposes' self.private_key = bc.sha256(self.brainwallet_string) self.private_key_wif = bc.encode_privkey(self.private_key, 'wif') self.addr = bc.privkey_to_address(self.private_key)