
    (i_                     F    d dl mZmZ d dlmZmZ  G d d      Z e       Zy)    )big_endian_to_intint_to_big_endian)DeserializationErrorSerializationErrorc                   $    e Zd ZdZddZd Zd Zy)BigEndianIntz
    A sedes for big endian integers.

    :param l: the size of the serialized representation in bytes or `None` to
              use the shortest possible one
    Nc                     || _         y N)length)selfr   s     I/var/www/br/venv/lib/python3.12/site-packages/rlp/sedes/big_endian_int.py__init__zBigEndianInt.__init__   s	        c                 ~   t        |t              st        |t              st        d|      | j                  ,|d| j                  z  k\  rt        d| j                   d|      |dk  rt        d|      |dk(  rd}nt        |      }| j                  (dt        d| j                  t        |      z
        z  |z   S |S )	NzCan only serialize integers   z#Integer too large (does not fit in z bytes)r   z"Cannot serialize negative integersr       )
isinstanceboolintr   r   r   maxlen)r   objss      r   	serializezBigEndianInt.serialize   s    c4 
3(<$%BCHH;;"sc4;;.>'>$5dkk]'J  7$%I3OO!8A!#&A;;"SDKK#a&$899A==Hr   c                     | j                   $t        |      | j                   k7  rt        d|      | j                   "t        |      dkD  r|dd dk(  rt        d|      |xs d}t        |      S )Nz"Invalid serialization (wrong size)r      r   z*Invalid serialization (not minimal length))r   r   r   r   )r   serials     r   deserializezBigEndianInt.deserialize,   ss    ;;"s6{dkk'A&'KVTT;;3v;?va{g7M&?  "7 ((r   r
   )__name__
__module____qualname____doc__r   r   r    r   r   r   r      s    *	)r   r   N)	eth_utilsr   r   rlp.exceptionsr   r   r   big_endian_intr#   r   r   <module>r'      s#   
)) ))X r   