| 1234567891011121314151617181920212223242526272829303132 |
- from rlp.exceptions import (
- DeserializationError,
- SerializationError,
- )
- class Boolean:
- """A sedes for booleans"""
- def serialize(self, obj):
- if not isinstance(obj, bool):
- raise SerializationError("Can only serialize integers", obj)
- if obj is False:
- return b""
- elif obj is True:
- return b"\x01"
- else:
- raise Exception("Invariant: no other options for boolean values")
- def deserialize(self, serial):
- if serial == b"":
- return False
- elif serial == b"\x01":
- return True
- else:
- raise DeserializationError(
- "Invalid serialized boolean. Must be either 0x01 or 0x00", serial
- )
- boolean = Boolean()
|