cml_chain_wasm/auxdata/
utils.rs

1use crate::{NativeScriptList, PlutusV1ScriptList, PlutusV2ScriptList};
2use wasm_bindgen::prelude::wasm_bindgen;
3
4use super::{AuxiliaryData, Metadata};
5
6#[wasm_bindgen]
7impl AuxiliaryData {
8    pub fn new() -> Self {
9        cml_chain::auxdata::AuxiliaryData::new().into()
10    }
11
12    pub fn metadata(&self) -> Option<Metadata> {
13        self.0.metadata().map(|m| m.clone().into())
14    }
15
16    pub fn native_scripts(&self) -> Option<NativeScriptList> {
17        self.0.native_scripts().cloned().map(Into::into)
18    }
19
20    pub fn plutus_v1_scripts(&self) -> Option<PlutusV1ScriptList> {
21        self.0.plutus_v1_scripts().cloned().map(Into::into)
22    }
23
24    pub fn plutus_v2_scripts(&self) -> Option<PlutusV2ScriptList> {
25        self.0.plutus_v2_scripts().cloned().map(Into::into)
26    }
27
28    /// Warning: overwrites any conflicting metadatum labels present
29    pub fn add_metadata(&mut self, other: &Metadata) {
30        self.0.add_metadata(other.clone().into())
31    }
32
33    /// Warning: does not check for duplicates and may migrate eras
34    pub fn add_native_scripts(&mut self, scripts: &NativeScriptList) {
35        self.0.add_native_scripts(scripts.clone().into())
36    }
37
38    /// Warning: does not check for duplicates and may migrate eras
39    pub fn add_plutus_v1_scripts(&mut self, scripts: &PlutusV1ScriptList) {
40        self.0.add_plutus_v1_scripts(scripts.clone().into())
41    }
42
43    /// Warning: does not check for duplicates and may migrate eras
44    pub fn add_plutus_v2_scripts(&mut self, scripts: &PlutusV2ScriptList) {
45        self.0.add_plutus_v2_scripts(scripts.clone().into())
46    }
47
48    /// Adds everything present in other to self
49    /// May change the era the aux data is in if necessary
50    /// Warning: overwrites any metadatum labels present
51    /// also does not check for duplicates in scripts
52    pub fn add(&mut self, other: &AuxiliaryData) {
53        self.0.add(other.clone().into())
54    }
55}