1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::{SafeBytesAccess, SafeOption};
use crate::structs::{Address, AddressSelector, ErrorInfo, FloatingUtxoId, Hash, Input, Output, Proof};

impl Input {

    pub fn address(&self) -> Result<Address, ErrorInfo> {
        Proof::proofs_to_address(&self.proof)
    }

    pub fn predicate_filter(address: &Address) -> Self {
        let mut input = Self::default();
        let mut f = FloatingUtxoId::default();
        let mut a = AddressSelector::default();
        a.address = Some(address.clone());
        a.requires_output_contract_predicate_match = Some(true);
        f.address_selector = Some(a);

        input.floating_utxo_id = Some(f);
        input
    }

}