dpp/identity/state_transition/mod.rs
1// TODO: Move to state_transitions module
2
3use crate::ProtocolError;
4use asset_lock_proof::AssetLockProof;
5
6pub mod asset_lock_proof;
7
8/// Objects with Asset Lock Proof
9pub trait AssetLockProved {
10 /// Set asset lock proof
11 fn set_asset_lock_proof(
12 &mut self,
13 asset_lock_proof: AssetLockProof,
14 ) -> Result<(), ProtocolError>;
15
16 /// Get asset lock proof
17 fn asset_lock_proof(&self) -> &AssetLockProof;
18}
19
20/// Only state transitions funded with Asset Lock Transactions have Asset Lock Proofs
21pub trait OptionallyAssetLockProved {
22 /// Returns asset lock proof if state transition implements it
23 fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof> {
24 None
25 }
26}