@@ -6,10 +6,11 @@ use stacks::burnchains::{Address, Burnchain, PoxConstants};
66use stacks:: chainstate:: burn:: ConsensusHash ;
77use stacks:: chainstate:: stacks:: {
88 db:: StacksChainState , StacksAddress , StacksBlock , StacksBlockHeader , StacksPrivateKey ,
9- StacksPublicKey , StacksTransaction ,
9+ StacksPublicKey , StacksTransaction , TransactionPayload ,
1010} ;
1111use stacks:: core;
1212use stacks:: net:: StacksMessageCodec ;
13+ use stacks:: util:: hash:: hex_bytes;
1314use stacks:: util:: secp256k1:: Secp256k1PublicKey ;
1415use stacks:: vm:: costs:: ExecutionCost ;
1516use stacks:: vm:: execute;
@@ -936,23 +937,32 @@ fn pox_integration_test() {
936937 // look up the return value of our stacking operation...
937938 let mut tested = false ;
938939 for block in blocks_observed. iter ( ) {
940+ if tested {
941+ break ;
942+ }
939943 let transactions = block. get ( "transactions" ) . unwrap ( ) . as_array ( ) . unwrap ( ) ;
940944 eprintln ! ( "{}" , transactions. len( ) ) ;
941- if transactions. len ( ) == 2 {
942- for tx in transactions . iter ( ) {
943- if tx . get ( "tx_index" ) . unwrap ( ) . as_u64 ( ) . unwrap ( ) != 1 {
944- continue ;
945- }
946- let raw_result = tx . get ( "raw_result" ) . unwrap ( ) . as_str ( ) . unwrap ( ) ;
947- let parsed = < Value as ClarityDeserializable < Value > > :: deserialize ( & raw_result [ 2 ..] ) ;
948- assert_eq ! ( parsed. to_string ( ) ,
949- format! ( "(ok (tuple (lock-amount u1000000000000000) (stacker {}) (unlock-burn-height u270)))" ,
950- & spender_addr ) ) ;
945+ for tx in transactions. iter ( ) {
946+ let raw_tx = tx . get ( "raw_tx" ) . unwrap ( ) . as_str ( ) . unwrap ( ) ;
947+ if raw_tx == "0x00" {
948+ continue ;
949+ }
950+ let tx_bytes = hex_bytes ( & raw_tx [ 2 .. ] ) . unwrap ( ) ;
951+ let parsed = StacksTransaction :: consensus_deserialize ( & mut & tx_bytes [ ..] ) . unwrap ( ) ;
952+ if let TransactionPayload :: ContractCall ( _ ) = parsed. payload {
953+ } else {
954+ continue ;
951955 }
956+
957+ let raw_result = tx. get ( "raw_result" ) . unwrap ( ) . as_str ( ) . unwrap ( ) ;
958+ let parsed = <Value as ClarityDeserializable < Value > >:: deserialize ( & raw_result[ 2 ..] ) ;
959+ assert_eq ! ( parsed. to_string( ) ,
960+ format!( "(ok (tuple (lock-amount u1000000000000000) (stacker {}) (unlock-burn-height u270)))" ,
961+ & spender_addr) ) ;
952962 tested = true ;
953- continue ;
954963 }
955964 }
965+
956966 assert ! ( tested) ;
957967
958968 // let's stack with spender 2 and spender 3...
0 commit comments