pub fn verify_multiple_revoke_tokens<E: Engine>(rt_sender: &RevokeToken, rt_receiver: &RevokeToken, merch_state: &mut MerchantState<E>) -> BoltResult<(cl::Signature<E>, cl::Signature<E>)> {
        let pay_token_sender_result = merch_state.verify_revoke_token(&rt_sender.signature, &rt_sender.message, &rt_sender.message.wpk);
        let pay_token_receiver_result = merch_state.verify_revoke_token(&rt_receiver.signature, &rt_receiver.message, &rt_receiver.message.wpk);
        let new_pay_token_sender = match pay_token_sender_result {
            Ok(n) => n,
            Err(err) => return Err(String::from(err.to_string()))
        };
        let new_pay_token_receiver = match pay_token_receiver_result {
            Ok(n) => n,
            Err(err) => return Err(String::from(err.to_string()))
        };

        update_merchant_state(&mut merch_state.keys, &rt_sender.message.wpk, Some(rt_sender.signature.clone()));
        update_merchant_state(&mut merch_state.keys, &rt_receiver.message.wpk, Some(rt_receiver.signature.clone()));

        Ok(Some((new_pay_token_sender, new_pay_token_receiver)))
    }
///
/// verify_multiple_revoke_tokens (phase 2) - takes as input revoke messages and signatures
/// from the sender and receiver and the merchant state of the intermediary.
/// If the revocation tokens are valid, generate new signatures for the new wallets of both
/// sender and receiver (from the PoK of committed values in new wallet).
///
verify_multiple_revoke_tokens (phase 2) - takes as input revoke messages and signatures
from the sender and receiver and the merchant state of the intermediary.
If the revocation tokens are valid, generate new signatures for the new wallets of both
sender and receiver (from the PoK of committed values in new wallet).
verify_multiple_revoke_tokens ( phase 2 ) - takes as input revoke messages and signatures from the sender and receiver and the merchant state of the intermediary . If the revocation tokens are valid generate new signatures for the new wallets of both sender and receiver ( from the PoK of committed values in new wallet ) .
pub fn verify_multiple_revoke_tokens<E: Engine>(rt_sender: &RevokeToken, rt_receiver: &RevokeToken, merch_state: &mut MerchantState<E>) -> BoltResult<(cl::Signature<E>, cl::Signature<E>)> {
        let pay_token_sender_result = merch_state.verify_revoke_token(&rt_sender.signature, &rt_sender.message, &rt_sender.message.wpk);
        let pay_token_receiver_result = merch_state.verify_revoke_token(&rt_receiver.signature, &rt_receiver.message, &rt_receiver.message.wpk);
        let new_pay_token_sender = match pay_token_sender_result {
            Ok(n) => n,
            Err(err) => return Err(String::from(err.to_string()))
        };
        let new_pay_token_receiver = match pay_token_receiver_result {
            Ok(n) => n,
            Err(err) => return Err(String::from(err.to_string()))
        };
        update_merchant_state(&mut merch_state.keys, &rt_sender.message.wpk, Some(rt_sender.signature.clone()));
        update_merchant_state(&mut merch_state.keys, &rt_receiver.message.wpk, Some(rt_receiver.signature.clone()));
        Ok(Some((new_pay_token_sender, new_pay_token_receiver)))
    }
pub fn verify_multiple_revoke_tokens < E : Engine > ( rt_sender : & RevokeToken , rt_receiver : & RevokeToken , merch_state : & mut MerchantState < E > ) -> BoltResult < ( cl :: Signature < E > , cl :: Signature < E > ) > { let pay_token_sender_result = merch_state . verify_revoke_token ( & rt_sender . signature , & rt_sender . message , & rt_sender . message . wpk ) ; let pay_token_receiver_result = merch_state . verify_revoke_token ( & rt_receiver . signature , & rt_receiver . message , & rt_receiver . message . wpk ) ; let new_pay_token_sender = match pay_token_sender_result { Ok ( n ) => n , Err ( err ) => return Err ( String :: from ( err . to_string ( ) ) ) } ; let new_pay_token_receiver = match pay_token_receiver_result { Ok ( n ) => n , Err ( err ) => return Err ( String :: from ( err . to_string ( ) ) ) } ; update_merchant_state ( & mut merch_state . keys , & rt_sender . message . wpk , Some ( rt_sender . signature . clone ( ) ) ) ; update_merchant_state ( & mut merch_state . keys , & rt_receiver . message . wpk , Some ( rt_receiver . signature . clone ( ) ) ) ; Ok ( Some ( ( new_pay_token_sender , new_pay_token_receiver ) ) ) }
verify_multiple_revoke_tokens (phase 2) - takes as input revoke messages and signatures
from the sender and receiver and the merchant state of the intermediary.
verify_multiple_revoke_tokens ( phase 2 ) - takes as input revoke messages and signatures from the sender and receiver and the merchant state of the intermediary .
rt_sender
&RevokeToken
rt_receiver
&RevokeToken
merch_state
&mut MerchantState<E>
rt_sender
&RevokeToken
rt_receiver
&RevokeToken
merch_state
&mut MerchantState<E>