Fix #177 implement full transaction state tracking