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 = []
Пример #3
0
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())
Пример #5
0
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)
Пример #6
0
        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)
Пример #7
0
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"]
Пример #8
0
 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)
Пример #9
0
 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)