Esempio n. 1
0
    def toWire(self, buf, opts=None):
        Packet.toWire(self, buf, opts)
        buf.write(struct.pack("<I", self.version))

        if get_opt(opts, 'segwit', False):
            buf.write("\x00\x01")

        buf.write(encodeVarLength(len(self.inputs)))
        for i in self.inputs:
            prev_out, script, sequence = i
            buf.write(prev_out[0][::-1])
            buf.write(struct.pack("<I", prev_out[1]))
            buf.write(encodeVarString(script))
            buf.write(struct.pack("<I", sequence))

        buf.write(encodeVarLength(len(self.outputs)))
        for o in self.outputs:
            value, script = o
            buf.write(struct.pack("<Q", value))
            buf.write(encodeVarString(script))

        if get_opt(opts, 'segwit', False):
            for w in self.witnesses:
                buf.write(encodeVarLength(len(w)))
                for e in w:
                    buf.write(encodeVarString(e))

        buf.write(struct.pack("<I", self.lock_time))
Esempio n. 2
0
    def toWire(self, buf, opts=None):
        Packet.toWire(self, buf, opts)
        buf.write(struct.pack("<I", self.version))

        if get_opt(opts, 'segwit', False):
            buf.write("\x00\x01")

        buf.write(encodeVarLength(len(self.inputs)))
        for i in self.inputs:
            prev_out, script, sequence = i
            buf.write(prev_out[0][::-1])
            buf.write(struct.pack("<I", prev_out[1]))
            buf.write(encodeVarString(script))
            buf.write(struct.pack("<I", sequence))

        buf.write(encodeVarLength(len(self.outputs)))
        for o in self.outputs:
            value, script = o
            buf.write(struct.pack("<Q", value))
            buf.write(encodeVarString(script))

        if get_opt(opts, 'segwit', False):
            for w in self.witnesses:
                buf.write(encodeVarLength(len(w)))
                for e in w:
                    buf.write(encodeVarString(e))

        buf.write(struct.pack("<I", self.lock_time))
Esempio n. 3
0
    def toWire(self, buf, version):
        Packet.toWire(self, buf, version)
        buf.write(struct.pack("<I", self.version))
        buf.write(encodeVarLength(len(self.inputs)))
        for i in self.inputs:
            prev_out, script, sequence = i
            buf.write(prev_out[0][::-1])
            buf.write(struct.pack("<I", prev_out[1]))
            buf.write(encodeVarString(script))
            buf.write(struct.pack("<I", sequence))

        buf.write(encodeVarLength(len(self.outputs)))
        for o in self.outputs:
            value, script = o
            buf.write(struct.pack("<Q", value))
            buf.write(encodeVarString(script))

        buf.write(struct.pack("<I", self.lock_time))
Esempio n. 4
0
 def toWire(self, buf, unused_version):
     Packet.toWire(self, buf, unused_version)
     buf.write(struct.pack("<IQQ", self.version, self.services,
                           self.timestamp))
     self.addr_recv.toWire(buf, False)
     self.addr_from.toWire(buf, False)
     buf.write(self.nonce)
     buf.write(encodeVarString(self.user_agent))
     buf.write(struct.pack("<I", self.best_height))
Esempio n. 5
0
 def toWire(self, buf, opts=None):
     Packet.toWire(self, buf, opts)
     buf.write(
         struct.pack("<IQQ", self.version, self.services, self.timestamp))
     self.addr_recv.toWire(buf, {'version': 0})
     self.addr_from.toWire(buf, {'version': 0})
     buf.write(self.nonce)
     buf.write(encodeVarString(self.user_agent))
     buf.write(struct.pack("<I", self.best_height))
     if self.version >= 70001:
         buf.write(struct.pack('B', 1 if self.relay else 0))
Esempio n. 6
0
 def toWire(self, buf, opts=None):
     Packet.toWire(self, buf, opts)
     buf.write(struct.pack("<IQQ", self.version, self.services,
                           self.timestamp))
     self.addr_recv.toWire(buf, {'version': 0})
     self.addr_from.toWire(buf, {'version': 0})
     buf.write(self.nonce)
     buf.write(encodeVarString(self.user_agent))
     buf.write(struct.pack("<I", self.best_height))
     if self.version >= 70001:
         buf.write(struct.pack('B', 1 if self.relay else 0))
Esempio n. 7
0
    def toWire(self, buf, opts):
        Packet.toWire(self, buf, opts)
        buf.write(struct.pack('<I', self.bloom_filter_capacity))
        buf.write(struct.pack('<I', int(self.fpr * self.fpr_mul)))
        buf.write(encodeVarString(self.bloom_filter.tobytes()))

        buf.write(struct.pack('<I', self.iblt.m))
        for cell in self.iblt.T:
            buf.write(struct.pack('<I', cell[0]))
            buf.write(struct.pack('<32s', cell[1].tobytes()))
            # buf.write(struct.pack('<32s', cell[2].tobytes()))
            buf.write(struct.pack('<10s', cell[3].tobytes()))