
    (iz.                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d	Z ee
      ZdZdZdZdddddZd Z G d de      Zy)    )TestCase)ValidationException)	OrderData)BUY)OrderBuilder)EOA)Signer)ZERO_ADDRESSB0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80)key*0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266l   ^*i8 *0xdFE02Eb6733538f8Ea35D585af8DE5958AD99E40*0xC5d563A36AE78145C45a50134d48A1215220f80a*0x9c4e1703476e875070ee25b56a58b008cfb8fa78*0x69308FB512518e39F9b16112fA8d994F4e2Bf8bB)exchangenegRiskExchange
collateralconditionalc                      t         S )N)salt     I/var/www/br/venv/lib/python3.12/site-packages/tests/test_order_builder.pymock_salt_generatorr      s    Kr   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	efd
Zy)TestOrderBuilderc                 T   t        t        d   t        t              }| j	                         }| j                  |j                  |             | j	                         }d |_        | j                  |j                  |             | j	                         }d|_	        | j                  |j                  |             | j	                         }d|_
        | j                  |j                  |             | j	                         }d|_        | j                  |j                  |             y )Nr   -1not a numberd   r   amoy_contractschain_idsignergenerate_data
assertTrue_validate_inputsmakerassertFalsenonce
expirationsignatureTypeselfbuilderdatas      r   test_validate_orderz$TestOrderBuilder.test_validate_order   s    ~j98VL !!#0067 !!#
11$78 !!#
11$78!!#(11$78 !!# 11$78r   c                 T   t        t        d   t        t              }| j	                         }| j                  |j                  |             | j	                         }d |_        | j                  |j                  |             | j	                         }d|_	        | j                  |j                  |             | j	                         }d|_
        | j                  |j                  |             | j	                         }d|_        | j                  |j                  |             y )Nr   r   r    r!   r"   r.   s      r   test_validate_order_neg_riskz-TestOrderBuilder.test_validate_order_neg_risk7   s    ~.?@(FS !!#0067 !!#
11$78 !!#
11$78!!#(11$78 !!# 11$78r   c                    t        t        d   t        t              }| j	                         }d |_        | j                  t              5  |j                  |       d d d        | j	                         }t        |_        | j                  t              5  |j                  |       d d d        |j                  | j	                               }| j                  t        |d   t                     | j                  t        |d          | j                  t        |d          | j                  t        |d          | j                  d|d          | j                  d|d	          | j                  d
|d          | j                  d|d          | j                  d|d          | j                  d|d          | j                  t        |d          | j                  t         |d          t        t        d   t        t        t"              }|j                  | j	                               }| j                  t        |d   t                     | j                  t$        |d          | j                  t        |d          | j                  t        |d          | j                  t        |d          | j                  d|d          | j                  d|d	          | j                  d
|d          | j                  d|d          | j                  d|d          | j                  d|d          | j                  t        |d          | j                  t         |d          y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   r)   r%   taker  tokenId makerAmounttakerAmountr   r,   r+   r!   
feeRateBpssider-   r   r#   r$   r%   r&   r8   assertRaisesr   build_orderr
   r'   
isinstanceintassertEqualmaker_addressr   r   r   r   r/   r0   invalid_data_input_orders       r   test_build_orderz!TestOrderBuilder.test_build_orderQ   s   ~j98VL!//1%)" 23 	4 23	4 "//1$0! 23 	4 23	4 $$T%7%7%9: 	
6&>378w8x(89vg7vi01F=$9:6-#89F<01F7O,f\23fVn-f_56 :&&:M
 $$T%7%7%9: 	
6&>378vf~.w8x(89vg7vi01F=$9:6-#89F<01F7O,f\23fVn-f_56]	4 	4	4 	4   	M M- M*-M7c                    t        t        d   t        t              }| j	                         }d |_        | j                  t              5  |j                  |       d d d        | j	                         }t        |_        | j                  t              5  |j                  |       d d d        |j                  | j	                               }| j                  t        |d   t                     | j                  t        |d          | j                  t        |d          | j                  t        |d          | j                  d|d          | j                  d|d	          | j                  d
|d          | j                  d|d          | j                  d|d          | j                  d|d          | j                  t        |d          | j                  t         |d          t        t        d   t        t        t"              }|j                  | j	                               }| j                  t        |d   t                     | j                  t$        |d          | j                  t        |d          | j                  t        |d          | j                  t        |d          | j                  d|d          | j                  d|d	          | j                  d
|d          | j                  d|d          | j                  d|d          | j                  d|d          | j                  t        |d          | j                  t         |d          y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   r)   r%   r6   r7   r8   r9   r:   r;   r<   r   r,   r+   r!   r=   r>   r-   r?   rF   s       r   test_build_order_neg_riskz*TestOrderBuilder.test_build_order_neg_risk   s   ~.?@(FS!//1%)" 23 	4 23	4 "//1$0! 23 	4 23	4 $$T%7%7%9: 	
6&>378w8x(89vg7vi01F=$9:6-#89F<01F7O,f\23fVn-f_56 ,-xAT
 $$T%7%7%9: 	
6&>378vf~.w8x(89vg7vi01F=$9:6-#89F<01F7O,f\23fVn-f_56]	4 	4	4 	4rJ   c                    t        t        d   t        t        t              }|j                  | j                               }d}|j                  |      }| j                  ||       d}|j                  |      }| j                  ||       y )Nr   B0x02ca1d1aa31103804173ad1acd70066cb6c1258a4be6dada055111f9a7ea4e55ڄ0x302cd9abd0b5fcaa202a344437ec0b6660da984e24ae9ad915a592a90facf5a51bb8a873cd8d270f070217fea1986531d5eec66f1162a81f66e026db653bf7ce1c
r   r#   r$   r%   r   rA   r&   _create_struct_hashrD   build_order_signaturer/   r0   rH   expected_struct_hashstruct_hashexpected_signaturesigs          r   test_build_order_signaturez+TestOrderBuilder.test_build_order_signature   s    :&&:M
 $$T%7%7%9: Q 	 11&9-{; d++F3+S1r   c                    t        t        d   t        t        t              }|j                  | j                               }d}|j                  |      }| j                  ||       d}|j                  |      }| j                  ||       y )Nr   B0xf15790d3edc4b5aed427b0b543a9206fcf4b1a13dfed016d33bfb313076263b8ڄ0x1b3646ef347e5bd144c65bd3357ba19c12c12abaeedae733cf8579bc51a2752c0454c3bc6b236957e393637982c769b8dc0706c0f5c399983d933850afd1cbcd1crP   rS   s          r   #test_build_order_signature_neg_riskz4TestOrderBuilder.test_build_order_signature_neg_risk   s    ,-xAT
 $$T%7%7%9: Q 	 11&9-{; d++F3+S1r   c                 0   t        t        d   t        t        t              }|j                  | j                               }d}| j                  ||j                         | j                  t        |j                  d   t                     | j                  t        |j                  d          | j                  t        |j                  d          | j                  t        |j                  d          | j                  t        |j                  d          | j                  d|j                  d          | j                  d	|j                  d
          | j                  d|j                  d          | j                  d|j                  d          | j                  d|j                  d          | j                  d|j                  d          | j                  t         |j                  d          | j                  t"        |j                  d          y )Nr   rO   r   r)   r%   r6   r7   r8   r9   r:   r;   r<   r   r,   r+   r!   r=   r>   r-   r   r#   r$   r%   r   build_signed_orderr&   rD   	signaturer'   rB   orderrC   r   rE   r
   r   r   r/   r0   signed_orderrV   s       r   test_build_signed_orderz(TestOrderBuilder.test_build_signed_order   s   :&&:M
 11$2D2D2FG d+\-C-CD
<#5#5f#=sCD|11&9:(:(:7(CD(:(:8(DE|'9'9''BC|11)<=L$6$6}$EF<#5#5m#DEL..|<=L..w78l00>?l0089l00ABr   c                 0   t        t        d   t        t        t              }|j                  | j                               }d}| j                  ||j                         | j                  t        |j                  d   t                     | j                  t        |j                  d          | j                  t        |j                  d          | j                  t        |j                  d          | j                  t        |j                  d          | j                  d|j                  d          | j                  d	|j                  d
          | j                  d|j                  d          | j                  d|j                  d          | j                  d|j                  d          | j                  d|j                  d          | j                  t         |j                  d          | j                  t"        |j                  d          y )Nr   r[   r   r)   r%   r6   r7   r8   r9   r:   r;   r<   r   r,   r+   r!   r=   r>   r-   r^   rb   s       r    test_build_signed_order_neg_riskz1TestOrderBuilder.test_build_signed_order_neg_risk   s   ,-xAT
 11$2D2D2FG d+\-C-CD
<#5#5f#=sCD|11&9:(:(:7(CD(:(:8(DE|'9'9''BC|11)<=L$6$6}$EF<#5#5m#DEL..|<=L..w78l00>?l0089l00ABr   returnc           
      @    t        t        t        dddt        dd      S )N1234	100000000500000001000)r)   r6   r8   r:   r<   r>   r=   r+   )r   rE   r
   r   )r/   s    r   r&   zTestOrderBuilder.generate_data  s'    #"	
 		
r   N)__name__
__module____qualname__r2   r4   rI   rL   rX   r\   rd   rf   r   r&   r   r   r   r   r      s:    949457n57n2$2$C.C.

y 

r   r   N)unittestr   !py_order_utils.builders.exceptionr   py_order_utils.model.orderr   py_order_utils.model.sidesr   py_order_utils.buildersr   py_order_utils.model.signaturesr   py_order_utils.signerr	   py_order_utils.constantsr
   private_keyr%   rE   r   r$   r#   r   r   r   r   r   <module>rz      sd     A 0 * 0 / ( 1 S	K	 <<C>?	
x 
r   