Source code for rlp.sedes.boolean
from rlp.exceptions import (
DeserializationError,
SerializationError,
)
[docs]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()