code: def DeserializeFrom(reader):
          
          ttype = reader.ReadByte()
          tx = None
  
          from neo.Core.TX.RegisterTransaction import RegisterTransaction
          from neo.Core.TX.IssueTransaction import IssueTransaction
          from neo.Core.TX.ClaimTransaction import ClaimTransaction
          from neo.Core.TX.MinerTransaction import MinerTransaction
          from neo.Core.TX.PublishTransaction import PublishTransaction
          from neo.Core.TX.InvocationTransaction import InvocationTransaction
          from neo.Core.TX.EnrollmentTransaction import EnrollmentTransaction
          from neo.Core.TX.StateTransaction import StateTransaction
  
          if ttype == int.from_bytes(TransactionType.RegisterTransaction, 'little'):
              tx = RegisterTransaction()
          elif ttype == int.from_bytes(TransactionType.MinerTransaction, 'little'):
              tx = MinerTransaction()
          elif ttype == int.from_bytes(TransactionType.IssueTransaction, 'little'):
              tx = IssueTransaction()
          elif ttype == int.from_bytes(TransactionType.ClaimTransaction, 'little'):
              tx = ClaimTransaction()
          elif ttype == int.from_bytes(TransactionType.PublishTransaction, 'little'):
              tx = PublishTransaction()
          elif ttype == int.from_bytes(TransactionType.InvocationTransaction, 'little'):
              tx = InvocationTransaction()
          elif ttype == int.from_bytes(TransactionType.EnrollmentTransaction, 'little'):
              tx = EnrollmentTransaction()
          elif ttype == int.from_bytes(TransactionType.StateTransaction, 'little'):
              tx = StateTransaction()
          else:
              tx = Transaction()
              tx.Type = ttype
  
          tx.DeserializeUnsignedWithoutType(reader)
  
          tx.scripts = []
          byt = reader.ReadVarInt()
  
          if byt > 0:
              for i in range(0, byt):
                  witness = Witness()
                  witness.Deserialize(reader)
  
                  tx.scripts.append(witness)
  
          tx.OnDeserialized()
  
          return tx
docs: Deserialize full object.
  
          Args:
              reader (neo.IO.BinaryReader):
  
          Returns:
              Transaction: