Skip to main content

drive/state_transition_action/shielded/shielded_withdrawal/
transformer.rs

1use crate::state_transition_action::shielded::shielded_withdrawal::v0::ShieldedWithdrawalTransitionActionV0;
2use crate::state_transition_action::shielded::shielded_withdrawal::ShieldedWithdrawalTransitionAction;
3use dpp::fee::Credits;
4use dpp::prelude::ConsensusValidationResult;
5use dpp::state_transition::shielded_withdrawal_transition::ShieldedWithdrawalTransition;
6use dpp::version::PlatformVersion;
7
8impl ShieldedWithdrawalTransitionAction {
9    /// Transforms the state transition into an action
10    pub fn try_from_transition(
11        value: &ShieldedWithdrawalTransition,
12        current_total_balance: Credits,
13        creation_time_ms: u64,
14        fee_amount: Credits,
15        platform_version: &PlatformVersion,
16    ) -> ConsensusValidationResult<Self> {
17        match value {
18            ShieldedWithdrawalTransition::V0(v0) => {
19                let result = ShieldedWithdrawalTransitionActionV0::try_from_transition(
20                    v0,
21                    current_total_balance,
22                    creation_time_ms,
23                    fee_amount,
24                    platform_version,
25                );
26                result.map(|action| action.into())
27            }
28        }
29    }
30}