def generate_hash(self): if self.contains_transaction: if self.extrinsic_length: extrinsic_data = self.data.data else: # Fallback for legacy version, prefix additional Compact<u32> with length extrinsic_length_type = CompactU32(ScaleBytes(bytearray())) extrinsic_length_type.encode(self.data.length) extrinsic_data = extrinsic_length_type.data.data + self.data.data return blake2b(extrinsic_data, digest_size=32).digest().hex() else: return None
def test_compact_u32_larger_than_4bytes(self): obj = CompactU32() obj.encode(150000000000000) self.assertEqual(str(obj.data), "0x0b0060b7986c88")
def test_compact_u32_4bytes(self): obj = CompactU32() obj.encode(1000000) self.assertEqual(str(obj.data), "0x02093d00")