Skip to main content

drive/state_transition_action/shielded/unshield/v0/
transformer.rs

1use crate::state_transition_action::shielded::unshield::v0::UnshieldTransitionActionV0;
2use crate::state_transition_action::shielded::ShieldedActionNote;
3use dpp::fee::Credits;
4use dpp::prelude::ConsensusValidationResult;
5use dpp::state_transition::state_transitions::shielded::unshield_transition::v0::UnshieldTransitionV0;
6
7impl UnshieldTransitionActionV0 {
8    /// Transforms the unshield transition into an action
9    pub fn try_from_transition(
10        value: &UnshieldTransitionV0,
11        current_total_balance: Credits,
12        fee_amount: Credits,
13    ) -> ConsensusValidationResult<Self> {
14        let notes: Vec<ShieldedActionNote> =
15            value.actions.iter().map(ShieldedActionNote::from).collect();
16
17        ConsensusValidationResult::new_with_data(UnshieldTransitionActionV0 {
18            output_address: value.output_address,
19            amount: value.unshielding_amount,
20            notes,
21            anchor: value.anchor,
22            fee_amount,
23            current_total_balance,
24        })
25    }
26}