def createRawT(this, message): inputSum=0 inputs=[] for x in this.listUnspent(): inputs.append({ 'txid':x['txid'], 'vout':x['vout'] }) inputSum+=x['amount'] #print inputs outputSum=0 outputs={} i=0 for char in message: if i <len(charAddrs): outputs[charAddrs[i]]=ord(char)*CHARCOST outputSum+=(ord(char)*CHARCOST) i+=1 outputs[garbageAddr]=(inputSum-outputSum-MINING_FEE) r=connect.sendCommand('createrawtransaction', [inputs, outputs]) if DEBUG: r2=connect.sendCommand('decoderawtransaction', [r.json()['result']]) pprint.pprint(r2.json()) return r
def sentCharTxs(): charTxs=[] res=connect.sendCommand('listtransactions', ['', 10000]) for r in res.json()['result']: if isCharAddr(r['address']): #pprint.pprint(r['txid']) charTxs.append(r['txid']) charTxs=set(charTxs) return charTxs
def listUnspent(this): returns=[] res=connect.sendCommand('listunspent', []) for r in res.json()['result']: #print r if r['address']==this.addr: returns.append(r) return returns
def decodeCharTransactions(): charTxs=sentCharTxs() for txid in charTxs: if validVote(txid): print('displaying vote with txid '+str(txid)+":") transaction=connect.sendCommand('gettransaction', [txid]).json() details=transaction['result']['details'] addrSorted={} for x in details: if x['category']=='receive': a=x['address'] addrSorted[a]=x msg=getCharStr(addrSorted) print(msg)
def sentCharDebug(): res=connect.sendCommand('listreceivedbyaddress', []) #pprint.pprint(res.json()) #print 'first 5 char addrs are:' #for i in range(0, 5): #print charAddrs[i] print '\n addrs in lis received:' for r in res.json()['result']: #print r['address'] for q in charAddrs[0:10]: ra=r['address'].rstrip() q=q.rstrip() print 'now comparing:' print ra #print len(r['address']) print q #print len(q) if ra==q: print ' match!' else: print 'no match'
def printreadable(hexed): pprint.pprint(connect.sendCommand('decoderawtransaction', [hexed]).json())
def sayPassphrase(this, t): connect.sendCommand('walletpassphrase', [this.phrase, t])
def fundVoter(voter): c=connect.sendCommand("walletpassphrase", [connect.phrase, 1]) #print c.json() d=connect.sendCommand("sendtoaddress", [voter.addr, 0.1]) print d.json()
def sendRawT(this, rawt): r=connect.sendCommand('sendrawtransaction', [rawt]) return r
def signRawT(this, rawt): r=connect.sendCommand('signrawtransaction', [rawt.json()['result']]) #pprint.pprint(r.json()) return r