Пример #1
0
    def parse_transaction(self):
        self.unsigned_txs_out = []
        self.new_txs_out = []

        self.data_stream = BCDataStream()
        self.data_stream.write(h2b(self.unsigned_hex))

        start_pos = self.data_stream.read_cursor
        self.data = {'vin': [], 'vout': []}
        self.data['version'] = self.data_stream.read_int32()
        self.version = self.data['version']

        n_vin = self.data_stream.read_compact_size()
        for i in range(n_vin):
            self.parse_tx_in()

        n_vout = self.data_stream.read_compact_size()
        for i in range(n_vout):
            self.parse_tx_out()

        self.data['lockTime'] = self.data_stream.read_uint32()
        self.lock_time = self.data['lockTime']
        self.data['__data__'] = self.data_stream.input[start_pos:self.
                                                       data_stream.read_cursor]

        self.pycoin_tx = UnsignedTx(self.version, self.unsigned_txs_out,
                                    self.new_txs_out, self.lock_time)