async def make_raw_block(self, b): '''Construct a raw block''' header = await self.make_raw_header(b) transactions = [] if b.get('height') > 0: transactions = await self.getrawtransactions(b.get('tx'), False) raw_block = header num_txs = len(transactions) if num_txs > 0: raw_block += int_to_varint(num_txs) raw_block += b''.join(transactions) else: raw_block += b'\x00' return raw_block
def test_int_to_varint(): with pytest.raises(ValueError): util.int_to_varint(-1) assert util.int_to_varint(0) == b'\0' assert util.int_to_varint(5) == b'\5' assert util.int_to_varint(252) == b'\xfc' assert util.int_to_varint(253) == b'\xfd\xfd\0' assert util.int_to_varint(65535) == b'\xfd\xff\xff' assert util.int_to_varint(65536) == b'\xfe\0\0\1\0' assert util.int_to_varint(2**32 - 1) == b'\xfe\xff\xff\xff\xff' assert util.int_to_varint(2**32) == b'\xff\0\0\0\0\1\0\0\0' assert util.int_to_varint(2**64-1) \ == b'\xff\xff\xff\xff\xff\xff\xff\xff\xff'