drive/state_transition_action/shielded/shield/
transformer.rs1use crate::state_transition_action::shielded::shield::v0::ShieldTransitionActionV0;
2use crate::state_transition_action::shielded::shield::ShieldTransitionAction;
3use dpp::address_funds::PlatformAddress;
4use dpp::fee::Credits;
5use dpp::prelude::{AddressNonce, ConsensusValidationResult};
6use dpp::state_transition::shield_transition::ShieldTransition;
7use std::collections::BTreeMap;
8
9impl ShieldTransitionAction {
10 pub fn try_from_transition(
12 value: &ShieldTransition,
13 inputs_with_remaining_balance: BTreeMap<PlatformAddress, (AddressNonce, Credits)>,
14 shield_amount: Credits,
15 current_total_balance: Credits,
16 ) -> ConsensusValidationResult<Self> {
17 match value {
18 ShieldTransition::V0(v0) => {
19 let result = ShieldTransitionActionV0::try_from_transition(
20 v0,
21 inputs_with_remaining_balance,
22 shield_amount,
23 current_total_balance,
24 );
25 result.map(|action| action.into())
26 }
27 }
28 }
29}