@@ -362,7 +362,18 @@ func TestContractInvokeHostFunctionInvokeStatelessContractFn(t *testing.T) {
362362 expectedScVal := xdr.ScVal {Type : xdr .ScValTypeScvU64 , U64 : & invokeResult }
363363 var transactionMeta xdr.TransactionMeta
364364 assert .NoError (t , xdr .SafeUnmarshalBase64 (tx .ResultMetaXdr , & transactionMeta ))
365- assert .True (t , expectedScVal .Equals (transactionMeta .V3 .SorobanMeta .ReturnValue ))
365+
366+ var returnValue xdr.ScVal
367+ switch transactionMeta .V {
368+ case 3 :
369+ returnValue = transactionMeta .MustV3 ().SorobanMeta .ReturnValue
370+ case 4 :
371+ returnValue = * transactionMeta .MustV4 ().SorobanMeta .ReturnValue
372+ default :
373+ t .Fatalf ("Invalid meta version: %d" , transactionMeta .V )
374+ }
375+
376+ assert .True (t , expectedScVal .Equals (returnValue ))
366377
367378 clientInvokeOp , err := itest .Client ().Operations (horizonclient.OperationRequest {
368379 ForTransaction : tx .Hash ,
@@ -457,7 +468,16 @@ func TestContractInvokeHostFunctionInvokeStatefulContractFn(t *testing.T) {
457468 expectedScVal := xdr.ScVal {Type : xdr .ScValTypeScvU32 , U32 : & invokeResult }
458469 var transactionMeta xdr.TransactionMeta
459470 assert .NoError (t , xdr .SafeUnmarshalBase64 (clientTx .ResultMetaXdr , & transactionMeta ))
460- assert .True (t , expectedScVal .Equals (transactionMeta .V3 .SorobanMeta .ReturnValue ))
471+ var returnValue xdr.ScVal
472+ switch transactionMeta .V {
473+ case 3 :
474+ returnValue = transactionMeta .MustV3 ().SorobanMeta .ReturnValue
475+ case 4 :
476+ returnValue = * transactionMeta .MustV4 ().SorobanMeta .ReturnValue
477+ default :
478+ t .Fatalf ("Invalid meta version: %d" , transactionMeta .V )
479+ }
480+ assert .True (t , expectedScVal .Equals (returnValue ))
461481
462482 clientInvokeOp , err := itest .Client ().Operations (horizonclient.OperationRequest {
463483 ForTransaction : tx .Hash ,
0 commit comments