@@ -3,11 +3,12 @@ use dlp_api::{
33 v2:: {
44 instruction_builder:: {
55 approve_commitment, post_commitment, register_operator,
6- register_verifier, update_verifier_registry,
6+ register_verifier, update_verifier_registry, write_state_buffer ,
77 } ,
88 pda:: pending_commitment_pda,
99 PendingCommitment , PostCommitmentArgs , RegisterOperatorArgs ,
10- RegisterVerifierArgs , VERIFIER_REGISTRY_ACTION_ADD ,
10+ RegisterVerifierArgs , WriteStateBufferArgs ,
11+ VERIFIER_REGISTRY_ACTION_ADD ,
1112 } ,
1213} ;
1314use solana_program:: native_token:: LAMPORTS_PER_SOL ;
@@ -249,7 +250,7 @@ async fn setup_approve_commitment_env(
249250 delegated_account,
250251 Account {
251252 lamports : LAMPORTS_PER_SOL ,
252- data : vec ! [ 1 , 2 , 3 , 4 ] ,
253+ data : state_data ( ) ,
253254 owner : dlp_api:: ID ,
254255 executable : false ,
255256 rent_epoch : 0 ,
@@ -270,7 +271,7 @@ async fn setup_approve_commitment_env(
270271 } ,
271272 ) ;
272273
273- let ( banks, payer, blockhash) = program_test. start ( ) . await ;
274+ let ( mut banks, payer, blockhash) = program_test. start ( ) . await ;
274275 let config_args = valid_args ( ) ;
275276 init_v2 ( & banks, & payer, & authority, blockhash, config_args. clone ( ) ) . await ;
276277
@@ -302,6 +303,20 @@ async fn setup_approve_commitment_env(
302303 . await ;
303304 }
304305
306+ write_v2_state_buffer (
307+ & mut banks,
308+ & payer,
309+ & operator,
310+ delegated_account,
311+ WriteStateBufferArgs {
312+ commit_id : valid_post_commitment_args ( ) . commit_id ,
313+ total_len : state_data ( ) . len ( ) as u32 ,
314+ offset : 0 ,
315+ chunk : state_data ( ) ,
316+ } ,
317+ )
318+ . await ;
319+
305320 ApproveCommitmentEnv {
306321 banks,
307322 payer,
@@ -392,12 +407,39 @@ fn valid_post_commitment_args() -> PostCommitmentArgs {
392407 commit_id : 1 ,
393408 lamports : 1_000 ,
394409 owner : Pubkey :: new_unique ( ) ,
395- data_hash : [ 7 ; 32 ] ,
396410 da_pointer_hash : [ 9 ; 32 ] ,
397411 er_slot : Some ( 42 ) ,
398412 }
399413}
400414
415+ async fn write_v2_state_buffer (
416+ banks : & mut BanksClient ,
417+ payer : & Keypair ,
418+ operator : & Keypair ,
419+ account : Pubkey ,
420+ args : WriteStateBufferArgs ,
421+ ) {
422+ let latest_blockhash: Hash = banks. get_latest_blockhash ( ) . await . unwrap ( ) ;
423+ let blockhash = banks
424+ . get_new_latest_blockhash ( & latest_blockhash)
425+ . await
426+ . unwrap ( ) ;
427+ let ix =
428+ write_state_buffer ( payer. pubkey ( ) , operator. pubkey ( ) , account, args) ;
429+ let tx = Transaction :: new_signed_with_payer (
430+ & [ ix] ,
431+ Some ( & payer. pubkey ( ) ) ,
432+ & [ payer, operator] ,
433+ blockhash,
434+ ) ;
435+
436+ banks. process_transaction ( tx) . await . unwrap ( ) ;
437+ }
438+
439+ fn state_data ( ) -> Vec < u8 > {
440+ vec ! [ 1 , 2 , 3 , 4 ]
441+ }
442+
401443async fn post_v2_commitment (
402444 banks : & mut BanksClient ,
403445 payer : & Keypair ,
0 commit comments