async def send(self, message: Message): encoded: bytes = cbor.dumps({"f": message.function, "d": message.data}) assert len(encoded) < (2**(LENGTH_BYTES * 8)) self.writer.write(len(encoded).to_bytes(LENGTH_BYTES, "big") + encoded) try: # Need timeout here in case connection is closed, this allows GC to clean up await asyncio.wait_for(self.writer.drain(), timeout=10 * 60) except asyncio.TimeoutError: raise TimeoutError("self.writer.drain()") self.bytes_written += LENGTH_BYTES + len(encoded)
async def _send_message(self, payload: Payload): encoded: bytes = cbor.dumps({ "f": payload.msg.function, "d": payload.msg.data, "i": payload.id }) size = len(encoded) assert len(encoded) < (2**(LENGTH_BYTES * 8)) await self.ws.send_bytes(encoded) self.log.info( f"-> {payload.msg.function} to peer {self.peer_host} {self.peer_node_id}" ) self.bytes_written += size
async def send(self, message: Message): encoded: bytes = cbor.dumps({"f": message.function, "d": message.data}) assert len(encoded) < (2**(LENGTH_BYTES * 8)) self.writer.write(len(encoded).to_bytes(LENGTH_BYTES, "big") + encoded) await self.writer.drain() self.bytes_written += LENGTH_BYTES + len(encoded)
def test_recursive_types(self): coin: Optional[Coin] = None l1 = [(bytes32([2] * 32), coin)] rr = RespondRemovals(uint32(1), bytes32([1] * 32), l1, None) c = cbor.loads(cbor.dumps(rr)) RespondRemovals(c["height"], c["header_hash"], c["coins"], c["proofs"])