def testBinaryUnpacker(self):
     ts = '\xff\xff\xff'
     bu = BinaryUnpacker(ts)
     self.assertEqual(bu.getSize(), len(ts))
     bu.advance(1)
     self.assertEqual(bu.getRemainingSize(), len(ts) - 1)
     self.assertEqual(bu.getBinaryString(), ts)
     self.assertEqual(bu.getRemainingString(), ts[1:])
     bu.rewind(1)
     self.assertEqual(bu.getRemainingSize(), len(ts))
     bu.resetPosition(2)
     self.assertEqual(bu.getRemainingSize(), len(ts) - 2)
     self.assertEqual(bu.getPosition(), 2)
     bu.resetPosition()
     self.assertEqual(bu.getRemainingSize(), len(ts))
     self.assertEqual(bu.getPosition(), 0)
     bu.append(ts)
     self.assertEqual(bu.getBinaryString(), ts + ts)
 def testBinaryUnpacker(self):
    ts = '\xff\xff\xff'
    bu = BinaryUnpacker(ts)
    self.assertEqual(bu.getSize(), len(ts))
    bu.advance(1)
    self.assertEqual(bu.getRemainingSize(), len(ts)-1)
    self.assertEqual(bu.getBinaryString(), ts)
    self.assertEqual(bu.getRemainingString(), ts[1:])
    bu.rewind(1)
    self.assertEqual(bu.getRemainingSize(), len(ts))
    bu.resetPosition(2)
    self.assertEqual(bu.getRemainingSize(), len(ts) - 2)
    self.assertEqual(bu.getPosition(), 2)
    bu.resetPosition()
    self.assertEqual(bu.getRemainingSize(), len(ts))
    self.assertEqual(bu.getPosition(), 0)
    bu.append(ts)
    self.assertEqual(bu.getBinaryString(), ts + ts)
Example #3
0
def getTxOffsetList(txListBinary, txCount):
   binunpack = BinaryUnpacker(txListBinary)
   txOffsetList = []
   for i in range(txCount):
      txOffsetList.append(binunpack.getPosition())
      binunpack.advance(VERSION_LENGTH)
      txInCount =  binunpack.get(VAR_INT)
      for j in range(txInCount):
         binunpack.advance(TX_OUT_HASH_LENGTH + TX_OUT_INDEX_LENGTH)
         sigScriptLength = binunpack.get(VAR_INT)
         binunpack.advance(sigScriptLength + SEQUENCE_LENGTH)
      txOutCount  = binunpack.get(VAR_INT)
      for k in range(txOutCount):
         binunpack.advance(SATOSHI_LENGTH)
         scriptLength =  binunpack.get(VAR_INT)
         binunpack.advance(scriptLength)
      binunpack.advance(LOCKTIME_LENGTH)
   return txOffsetList