@@ -1762,12 +1762,14 @@ fn test_clear_auctioneer_mismatch_global() {
17621762 let create_prover_tx = create_prover_tx ( prover_address, prover_address, U256 :: ZERO , 1 , 2 , 2 ) ;
17631763 test. state . execute :: < MockVerifier > ( & create_prover_tx) . unwrap ( ) ;
17641764
1765- // For this test, we need to modify the request's auctioneer field.
1766- let clear_tx = create_clear_tx (
1765+ // Create a clear transaction where the request specifies test.auctioneer
1766+ // but the settle is signed by a different signer.
1767+ let clear_tx = create_clear_tx_with_mismatched_auctioneer (
17671768 & test. requester ,
17681769 & test. fulfiller ,
17691770 & test. fulfiller ,
1770- & signer ( "different_auctioneer" ) ,
1771+ & test. auctioneer , // Expected auctioneer in request
1772+ & signer ( "different_auctioneer" ) , // Wrong settle signer
17711773 & test. executor ,
17721774 & test. verifier ,
17731775 1 ,
@@ -1801,14 +1803,14 @@ fn test_clear_executor_mismatch_request() {
18011803 let create_prover_tx = create_prover_tx ( prover_address, prover_address, U256 :: ZERO , 1 , 2 , 2 ) ;
18021804 test. state . execute :: < MockVerifier > ( & create_prover_tx) . unwrap ( ) ;
18031805
1804- // Create clear transaction where execute signer != request executor .
1806+ // Create clear transaction with correct executor in request but wrong execute signer .
18051807 let wrong_executor = signer ( "wrong_executor" ) ;
1806- let clear_tx = create_clear_tx (
1808+ let mut clear_tx = create_clear_tx (
18071809 & test. requester ,
18081810 & test. fulfiller ,
18091811 & test. fulfiller ,
18101812 & test. auctioneer ,
1811- & wrong_executor , // Wrong executor as execute signer
1813+ & test . executor ,
18121814 & test. verifier ,
18131815 1 ,
18141816 U256 :: from ( 50_000 ) ,
@@ -1821,6 +1823,13 @@ fn test_clear_executor_mismatch_request() {
18211823 false ,
18221824 ) ;
18231825
1826+ // Replace the execute signature with wrong signer.
1827+ if let VAppTransaction :: Clear ( ref mut clear) = clear_tx {
1828+ if let Some ( ref execute_body) = clear. execute . body {
1829+ clear. execute . signature = proto_sign ( & wrong_executor, execute_body) . as_bytes ( ) . to_vec ( ) ;
1830+ }
1831+ }
1832+
18241833 // Execute should fail with ExecutorMismatch.
18251834 let result = test. state . execute :: < MockVerifier > ( & clear_tx) ;
18261835 assert ! ( matches!( result, Err ( VAppPanic :: ExecutorMismatch { .. } ) ) ) ;
@@ -1841,13 +1850,15 @@ fn test_clear_executor_mismatch_global() {
18411850 let create_prover_tx = create_prover_tx ( prover_address, prover_address, U256 :: ZERO , 1 , 2 , 2 ) ;
18421851 test. state . execute :: < MockVerifier > ( & create_prover_tx) . unwrap ( ) ;
18431852
1844- // For this test, we need to modify the request's executor field.
1845- let clear_tx = create_clear_tx (
1853+ // Create a clear transaction where the request specifies test.executor
1854+ // but the execute is signed by a different signer.
1855+ let different_executor = signer ( "different_executor" ) ;
1856+ let mut clear_tx = create_clear_tx (
18461857 & test. requester ,
18471858 & test. fulfiller ,
18481859 & test. fulfiller ,
18491860 & test. auctioneer ,
1850- & signer ( "different_executor" ) ,
1861+ & test . executor ,
18511862 & test. verifier ,
18521863 1 ,
18531864 U256 :: from ( 50_000 ) ,
@@ -1860,6 +1871,14 @@ fn test_clear_executor_mismatch_global() {
18601871 false ,
18611872 ) ;
18621873
1874+ // Replace the execute signature with different signer.
1875+ if let VAppTransaction :: Clear ( ref mut clear) = clear_tx {
1876+ if let Some ( ref execute_body) = clear. execute . body {
1877+ clear. execute . signature =
1878+ proto_sign ( & different_executor, execute_body) . as_bytes ( ) . to_vec ( ) ;
1879+ }
1880+ }
1881+
18631882 // Execute should fail with ExecutorMismatch.
18641883 let result = test. state . execute :: < MockVerifier > ( & clear_tx) ;
18651884 assert ! ( matches!( result, Err ( VAppPanic :: ExecutorMismatch { .. } ) ) ) ;
@@ -2194,14 +2213,14 @@ fn test_clear_verifier_address_mismatch() {
21942213 // Create a wrong verifier signer.
21952214 let wrong_verifier = signer ( "wrong_verifier" ) ;
21962215
2197- // Create clear transaction with wrong verifier signing.
2198- let clear_tx = create_clear_tx (
2216+ // Create clear transaction with correct verifier in request but wrong verifier signing.
2217+ let mut clear_tx = create_clear_tx (
21992218 & test. requester ,
22002219 & test. fulfiller ,
22012220 & test. fulfiller ,
22022221 & test. auctioneer ,
22032222 & test. executor ,
2204- & wrong_verifier , // Wrong verifier
2223+ & test . verifier ,
22052224 1 ,
22062225 U256 :: from ( 50_000 ) ,
22072226 1 ,
@@ -2213,6 +2232,15 @@ fn test_clear_verifier_address_mismatch() {
22132232 true ,
22142233 ) ;
22152234
2235+ // Replace the verifier signature with wrong signer.
2236+ if let VAppTransaction :: Clear ( ref mut clear) = clear_tx {
2237+ if let Some ( ref fulfill) = clear. fulfill {
2238+ if let Some ( ref fulfill_body) = fulfill. body {
2239+ clear. verify = Some ( proto_sign ( & wrong_verifier, fulfill_body) . as_bytes ( ) . to_vec ( ) ) ;
2240+ }
2241+ }
2242+ }
2243+
22162244 // Execute should fail with InvalidVerifierSignature.
22172245 let result = test. state . execute :: < MockVerifier > ( & clear_tx) ;
22182246 assert ! ( matches!( result, Err ( VAppPanic :: InvalidVerifierSignature ) ) ) ;
0 commit comments