
    (i                     P    d dl mZ d dlmZmZ ddlmZmZ ddlm	Z	  G d d      Z
y)	   )Signer)normalize_address
prepend_zx    )make_domainEIP712Struct)keccakc                   F    e Zd ZdededefdZdededefdZdefd	Z	d
 Z
y)BaseBuilderexchange_addresschain_idsignerc                     t        |      | _        || _        || _        | j	                  | j                  | j                        | _        || _        y )N)r   contract_addressr   r   _get_domain_separatordomain_separatorsalt_generator)selfr   r   r   r   s        U/var/www/br/venv/lib/python3.12/site-packages/py_order_utils/builders/base_builder.py__init__zBaseBuilder.__init__   sL     !22B C  $ : :MM400!
 -    verifying_contractreturnc                 2    t        ddt        |      |      S )NzPolymarket CTF Exchange1)nameversionchainIdverifyingContract)r   str)r   r   r   s      r   r   z!BaseBuilder._get_domain_separator   s!     *M0	
 	
r   orderc                 z    t        t        |j                  | j                              j	                               S )zG
        Creates an EIP712 compliant struct hash for the Order
        )domain)r   r	   signable_bytesr   hex)r   r!   s     r   _create_struct_hashzBaseBuilder._create_struct_hash   s6     5''t/D/D'EFJJL
 	
r   c                 8    | j                   j                  |      S )z'
        Signs the struct hash
        )r   sign)r   struct_hashs     r   r(   zBaseBuilder.sign%   s     {{,,r   N)__name__
__module____qualname__r    intr   r   r   r   r&   r(    r   r   r   r      sM    	- #	-/2	-<B	-

14
	

 
-r   r   N)r   r   utilsr   r   poly_eip712_structsr   r   	eth_utilsr	   r   r.   r   r   <module>r2      s     1 9 "- "-r   