def messagetostring(message, as_utf8=false, as_one_line=false):
  out = cstringio.stringio()
  printmessage(message, out, as_utf8=as_utf8, as_one_line=as_one_line)
  result = out.getvalue()
  out.close()
  if as_one_line:
    return result.rstrip()
  return result
 def create_transaction(self, node, coinbase, to_address, amount):
     from_txid = node.getblock(coinbase)["tx"][0]
     inputs = [{"txid": from_txid, "vout": 0}]
     outputs = {to_address: amount}
     rawtx = node.createrawtransaction(inputs, outputs)
     signresult = node.signrawtransaction(rawtx)
     tx = ctransaction()
     f = cstringio.stringio(unhexlify(signresult["hex"]))
     tx.deserialize(f)
     return tx
 def got_data(self):
     while true:
         if len(self.recvbuf) < 4:
             return
         if self.recvbuf[:4] != self.magic_bytes[self.network]:
             raise valueerror("got garbage %s" % repr(self.recvbuf))
         if self.ver_recv < 209:
             if len(self.recvbuf) < 4 + 12 + 4:
                 return
             command = self.recvbuf[4:4+12].split("\x00", 1)[0]
             msglen = struct.unpack("<i", self.recvbuf[4+12:4+12+4])[0]
             checksum = none
             if len(self.recvbuf) < 4 + 12 + 4 + msglen:
                 return
             msg = self.recvbuf[4+12+4:4+12+4+msglen]
             self.recvbuf = self.recvbuf[4+12+4+msglen:]
         else:
             if len(self.recvbuf) < 4 + 12 + 4 + 4:
                 return
             command = self.recvbuf[4:4+12].split("\x00", 1)[0]
             msglen = struct.unpack("<i", self.recvbuf[4+12:4+12+4])[0]
             checksum = self.recvbuf[4+12+4:4+12+4+4]
             if len(self.recvbuf) < 4 + 12 + 4 + 4 + msglen:
                 return
             msg = self.recvbuf[4+12+4+4:4+12+4+4+msglen]
             th = sha256(msg)
             h = sha256(th)
             if checksum != h[:4]:
                 raise valueerror("got bad checksum " + repr(self.recvbuf))
             self.recvbuf = self.recvbuf[4+12+4+4+msglen:]
         if command in self.messagemap:
             f = cstringio.stringio(msg)
             t = self.messagemap[command]()
             t.deserialize(f)
             self.got_message(t)
         else:
             self.show_debug_msg("unknown command: '" + command + "' " +
                                 repr(msg))
 def serializepartialtostring(self):
   out = stringio()
   self._internalserialize(out.write)
   return out.getvalue()