@@ -31,6 +31,7 @@ use light_program_test::{
3131 deregister_program_with_registry_program, register_program_with_registry_program,
3232 } ,
3333 state_tree:: create_state_merkle_tree_and_queue_account,
34+ state_tree_v2:: create_batched_state_merkle_tree,
3435 test_accounts:: { TestAccounts , NOOP_PROGRAM_ID } ,
3536 test_keypairs:: { GROUP_PDA_SEED_TEST_KEYPAIR , OLD_REGISTRY_ID_TEST_KEYPAIR } ,
3637 } ,
@@ -387,6 +388,7 @@ async fn test_initialize_protocol_config() {
387388 let nullifier_queue_keypair = Keypair :: new ( ) ;
388389 let cpi_context_keypair = Keypair :: new ( ) ;
389390 create_state_merkle_tree_and_queue_account (
391+ & payer,
390392 & payer,
391393 true ,
392394 & mut rpc,
@@ -411,6 +413,7 @@ async fn test_initialize_protocol_config() {
411413 let nullifier_queue_keypair = Keypair :: new ( ) ;
412414 let cpi_context_keypair = Keypair :: new ( ) ;
413415 let result = create_state_merkle_tree_and_queue_account (
416+ & payer,
414417 & payer,
415418 true ,
416419 & mut rpc,
@@ -436,6 +439,7 @@ async fn test_initialize_protocol_config() {
436439 let cpi_context_keypair = Keypair :: new ( ) ;
437440 create_state_merkle_tree_and_queue_account (
438441 & payer,
442+ & updated_keypair,
439443 true ,
440444 & mut rpc,
441445 & merkle_tree_keypair,
@@ -453,12 +457,38 @@ async fn test_initialize_protocol_config() {
453457 . await
454458 . unwrap ( ) ;
455459 }
460+ // FAIL: initialize a Merkle tree with network_fee but wrong authority
461+ {
462+ let merkle_tree_keypair = Keypair :: new ( ) ;
463+ let nullifier_queue_keypair = Keypair :: new ( ) ;
464+ let cpi_context_keypair = Keypair :: new ( ) ;
465+ let result = create_state_merkle_tree_and_queue_account (
466+ & payer,
467+ & payer,
468+ true ,
469+ & mut rpc,
470+ & merkle_tree_keypair,
471+ & nullifier_queue_keypair,
472+ Some ( & cpi_context_keypair) ,
473+ None ,
474+ None ,
475+ 1 ,
476+ & StateMerkleTreeConfig {
477+ network_fee : Some ( 5000 ) ,
478+ ..Default :: default ( )
479+ } ,
480+ & NullifierQueueConfig :: default ( ) ,
481+ )
482+ . await ;
483+ assert_rpc_error ( result, 3 , RegistryError :: InvalidSigner . into ( ) ) . unwrap ( ) ;
484+ }
456485 // FAIL: initialize a Merkle tree with network_fee + forester (must be rejected)
457486 {
458487 let merkle_tree_keypair = Keypair :: new ( ) ;
459488 let nullifier_queue_keypair = Keypair :: new ( ) ;
460489 let cpi_context_keypair = Keypair :: new ( ) ;
461490 let result = create_state_merkle_tree_and_queue_account (
491+ & payer,
462492 & payer,
463493 true ,
464494 & mut rpc,
@@ -483,6 +513,7 @@ async fn test_initialize_protocol_config() {
483513 let nullifier_queue_keypair = Keypair :: new ( ) ;
484514 let cpi_context_keypair = Keypair :: new ( ) ;
485515 let result = create_state_merkle_tree_and_queue_account (
516+ & payer,
486517 & payer,
487518 true ,
488519 & mut rpc,
@@ -1875,11 +1906,48 @@ async fn test_batch_address_tree() {
18751906 network_fee : Some ( 1 ) ,
18761907 ..Default :: default ( )
18771908 } ;
1878- let result =
1879- create_batch_address_merkle_tree ( & mut rpc, & payer, & new_merkle_tree, test_tree_params)
1880- . await ;
1909+ let result = create_batch_address_merkle_tree (
1910+ & mut rpc,
1911+ & payer,
1912+ & payer,
1913+ & new_merkle_tree,
1914+ test_tree_params,
1915+ )
1916+ . await ;
18811917 assert_rpc_error ( result, 1 , RegistryError :: InvalidNetworkFee . into ( ) ) . unwrap ( ) ;
18821918 }
1919+ // FAIL: create batched address tree with correct fee but wrong authority
1920+ {
1921+ let new_merkle_tree = Keypair :: new ( ) ;
1922+ let test_tree_params = InitAddressTreeAccountsInstructionData :: default ( ) ;
1923+ let result = create_batch_address_merkle_tree (
1924+ & mut rpc,
1925+ & payer,
1926+ & payer,
1927+ & new_merkle_tree,
1928+ test_tree_params,
1929+ )
1930+ . await ;
1931+ assert_rpc_error ( result, 1 , RegistryError :: InvalidSigner . into ( ) ) . unwrap ( ) ;
1932+ }
1933+ // FAIL: create batched state tree with correct fee but wrong authority
1934+ {
1935+ let merkle_tree_keypair = Keypair :: new ( ) ;
1936+ let queue_keypair = Keypair :: new ( ) ;
1937+ let cpi_context_keypair = Keypair :: new ( ) ;
1938+ let result = create_batched_state_merkle_tree (
1939+ & payer,
1940+ & payer,
1941+ true ,
1942+ & mut rpc,
1943+ & merkle_tree_keypair,
1944+ & queue_keypair,
1945+ & cpi_context_keypair,
1946+ InitStateTreeAccountsInstructionData :: default ( ) ,
1947+ )
1948+ . await ;
1949+ assert_rpc_error ( result, 3 , RegistryError :: InvalidSigner . into ( ) ) . unwrap ( ) ;
1950+ }
18831951
18841952 for i in 0 ..tree_params. input_queue_batch_size * 2 {
18851953 println ! ( "tx {}" , i) ;
0 commit comments