cml_multi_era_wasm/byron/transaction/
mod.rs

1// This file was code-generated using an experimental CDDL to rust tool:
2// https://github.com/dcSpark/cddl-codegen
3
4use crate::byron::{
5    Blake2b256, ByronAny, ByronAnyList, ByronPubKey, ByronSignature, ByronTxId, ByronTxInList,
6    ByronTxOutList,
7};
8use cml_core_wasm::{
9    impl_wasm_cbor_json_api_cbor_event_serialize, impl_wasm_conversions, impl_wasm_map_btree,
10};
11use wasm_bindgen::prelude::wasm_bindgen;
12
13impl_wasm_map_btree!(
14    cml_multi_era::byron::ByronAny,
15    cml_multi_era::byron::ByronAny,
16    ByronAny,
17    ByronAny,
18    ByronAnyList,
19    ByronAttributes
20);
21
22#[derive(Clone, Debug)]
23#[wasm_bindgen]
24pub struct ByronPkWitness(cml_multi_era::byron::transaction::ByronPkWitness);
25
26impl_wasm_cbor_json_api_cbor_event_serialize!(ByronPkWitness);
27
28impl_wasm_conversions!(
29    cml_multi_era::byron::transaction::ByronPkWitness,
30    ByronPkWitness
31);
32
33#[wasm_bindgen]
34impl ByronPkWitness {
35    pub fn index_1(&self) -> ByronPkWitnessEntry {
36        self.0.index_1.clone().into()
37    }
38
39    pub fn new(index_1: &ByronPkWitnessEntry) -> Self {
40        Self(cml_multi_era::byron::transaction::ByronPkWitness::new(
41            index_1.clone().into(),
42        ))
43    }
44}
45
46#[derive(Clone, Debug)]
47#[wasm_bindgen]
48pub struct ByronPkWitnessEntry(cml_multi_era::byron::transaction::ByronPkWitnessEntry);
49
50impl_wasm_cbor_json_api_cbor_event_serialize!(ByronPkWitnessEntry);
51
52impl_wasm_conversions!(
53    cml_multi_era::byron::transaction::ByronPkWitnessEntry,
54    ByronPkWitnessEntry
55);
56
57#[wasm_bindgen]
58impl ByronPkWitnessEntry {
59    pub fn byron_pub_key(&self) -> ByronPubKey {
60        self.0.byron_pub_key.clone()
61    }
62
63    pub fn byron_signature(&self) -> ByronSignature {
64        self.0.byron_signature.clone()
65    }
66
67    pub fn new(byron_pub_key: ByronPubKey, byron_signature: ByronSignature) -> Self {
68        Self(cml_multi_era::byron::transaction::ByronPkWitnessEntry::new(
69            byron_pub_key,
70            byron_signature,
71        ))
72    }
73}
74
75#[derive(Clone, Debug)]
76#[wasm_bindgen]
77pub struct ByronRedeemWitness(cml_multi_era::byron::transaction::ByronRedeemWitness);
78
79impl_wasm_cbor_json_api_cbor_event_serialize!(ByronRedeemWitness);
80
81impl_wasm_conversions!(
82    cml_multi_era::byron::transaction::ByronRedeemWitness,
83    ByronRedeemWitness
84);
85
86#[wasm_bindgen]
87impl ByronRedeemWitness {
88    pub fn index_1(&self) -> ByronRedeemerWitnessEntry {
89        self.0.index_1.clone().into()
90    }
91
92    pub fn new(index_1: &ByronRedeemerWitnessEntry) -> Self {
93        Self(cml_multi_era::byron::transaction::ByronRedeemWitness::new(
94            index_1.clone().into(),
95        ))
96    }
97}
98
99#[derive(Clone, Debug)]
100#[wasm_bindgen]
101pub struct ByronRedeemerScript(cml_multi_era::byron::transaction::ByronRedeemerScript);
102
103impl_wasm_cbor_json_api_cbor_event_serialize!(ByronRedeemerScript);
104
105impl_wasm_conversions!(
106    cml_multi_era::byron::transaction::ByronRedeemerScript,
107    ByronRedeemerScript
108);
109
110#[wasm_bindgen]
111impl ByronRedeemerScript {
112    pub fn u16(&self) -> u16 {
113        self.0.u16
114    }
115
116    pub fn index_1(&self) -> Vec<u8> {
117        self.0.index_1.clone()
118    }
119
120    pub fn new(u16: u16, index_1: Vec<u8>) -> Self {
121        Self(cml_multi_era::byron::transaction::ByronRedeemerScript::new(
122            u16, index_1,
123        ))
124    }
125}
126
127#[derive(Clone, Debug)]
128#[wasm_bindgen]
129pub struct ByronRedeemerWitnessEntry(cml_multi_era::byron::transaction::ByronRedeemerWitnessEntry);
130
131impl_wasm_cbor_json_api_cbor_event_serialize!(ByronRedeemerWitnessEntry);
132
133impl_wasm_conversions!(
134    cml_multi_era::byron::transaction::ByronRedeemerWitnessEntry,
135    ByronRedeemerWitnessEntry
136);
137
138#[wasm_bindgen]
139impl ByronRedeemerWitnessEntry {
140    pub fn byron_pub_key(&self) -> ByronPubKey {
141        self.0.byron_pub_key.clone()
142    }
143
144    pub fn byron_signature(&self) -> ByronSignature {
145        self.0.byron_signature.clone()
146    }
147
148    pub fn new(byron_pub_key: ByronPubKey, byron_signature: ByronSignature) -> Self {
149        Self(
150            cml_multi_era::byron::transaction::ByronRedeemerWitnessEntry::new(
151                byron_pub_key,
152                byron_signature,
153            ),
154        )
155    }
156}
157
158#[derive(Clone, Debug)]
159#[wasm_bindgen]
160pub struct ByronScriptWitness(cml_multi_era::byron::transaction::ByronScriptWitness);
161
162impl_wasm_cbor_json_api_cbor_event_serialize!(ByronScriptWitness);
163
164impl_wasm_conversions!(
165    cml_multi_era::byron::transaction::ByronScriptWitness,
166    ByronScriptWitness
167);
168
169#[wasm_bindgen]
170impl ByronScriptWitness {
171    pub fn index_1(&self) -> ByronScriptWitnessEntry {
172        self.0.index_1.clone().into()
173    }
174
175    pub fn new(index_1: &ByronScriptWitnessEntry) -> Self {
176        Self(cml_multi_era::byron::transaction::ByronScriptWitness::new(
177            index_1.clone().into(),
178        ))
179    }
180}
181
182#[derive(Clone, Debug)]
183#[wasm_bindgen]
184pub struct ByronScriptWitnessEntry(cml_multi_era::byron::transaction::ByronScriptWitnessEntry);
185
186impl_wasm_cbor_json_api_cbor_event_serialize!(ByronScriptWitnessEntry);
187
188impl_wasm_conversions!(
189    cml_multi_era::byron::transaction::ByronScriptWitnessEntry,
190    ByronScriptWitnessEntry
191);
192
193#[wasm_bindgen]
194impl ByronScriptWitnessEntry {
195    pub fn byron_validator_script(&self) -> ByronValidatorScript {
196        self.0.byron_validator_script.clone().into()
197    }
198
199    pub fn byron_redeemer_script(&self) -> ByronRedeemerScript {
200        self.0.byron_redeemer_script.clone().into()
201    }
202
203    pub fn new(
204        byron_validator_script: &ByronValidatorScript,
205        byron_redeemer_script: &ByronRedeemerScript,
206    ) -> Self {
207        Self(
208            cml_multi_era::byron::transaction::ByronScriptWitnessEntry::new(
209                byron_validator_script.clone().into(),
210                byron_redeemer_script.clone().into(),
211            ),
212        )
213    }
214}
215
216#[derive(Clone, Debug)]
217#[wasm_bindgen]
218pub struct ByronTx(cml_multi_era::byron::transaction::ByronTx);
219
220impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTx);
221
222impl_wasm_conversions!(cml_multi_era::byron::transaction::ByronTx, ByronTx);
223
224#[wasm_bindgen]
225impl ByronTx {
226    pub fn inputs(&self) -> ByronTxInList {
227        self.0.inputs.clone().into()
228    }
229
230    pub fn outputs(&self) -> ByronTxOutList {
231        self.0.outputs.clone().into()
232    }
233
234    pub fn attrs(&self) -> ByronAttributes {
235        self.0.attrs.clone().into()
236    }
237
238    pub fn new(inputs: &ByronTxInList, outputs: &ByronTxOutList, attrs: &ByronAttributes) -> Self {
239        Self(cml_multi_era::byron::transaction::ByronTx::new(
240            inputs.clone().into(),
241            outputs.clone().into(),
242            attrs.clone().into(),
243        ))
244    }
245}
246
247#[derive(Clone, Debug)]
248#[wasm_bindgen]
249pub struct ByronTxIn(cml_multi_era::byron::transaction::ByronTxIn);
250
251impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxIn);
252
253impl_wasm_conversions!(cml_multi_era::byron::transaction::ByronTxIn, ByronTxIn);
254
255#[wasm_bindgen]
256impl ByronTxIn {
257    pub fn new_byron_tx_in_regular(byron_tx_in_regular: &ByronTxInRegular) -> Self {
258        Self(
259            cml_multi_era::byron::transaction::ByronTxIn::new_byron_tx_in_regular(
260                byron_tx_in_regular.clone().into(),
261            ),
262        )
263    }
264
265    pub fn new_byron_tx_in_genesis(byron_tx_in_genesis: &ByronTxInGenesis) -> Self {
266        Self(
267            cml_multi_era::byron::transaction::ByronTxIn::new_byron_tx_in_genesis(
268                byron_tx_in_genesis.clone().into(),
269            ),
270        )
271    }
272
273    pub fn kind(&self) -> ByronTxInKind {
274        match &self.0 {
275            cml_multi_era::byron::transaction::ByronTxIn::ByronTxInRegular(_) => {
276                ByronTxInKind::ByronTxInRegular
277            }
278            cml_multi_era::byron::transaction::ByronTxIn::ByronTxInGenesis(_) => {
279                ByronTxInKind::ByronTxInGenesis
280            }
281        }
282    }
283
284    pub fn as_byron_tx_in_regular(&self) -> Option<ByronTxInRegular> {
285        match &self.0 {
286            cml_multi_era::byron::transaction::ByronTxIn::ByronTxInRegular(byron_tx_in_regular) => {
287                Some(byron_tx_in_regular.clone().into())
288            }
289            _ => None,
290        }
291    }
292
293    pub fn as_byron_tx_in_genesis(&self) -> Option<ByronTxInGenesis> {
294        match &self.0 {
295            cml_multi_era::byron::transaction::ByronTxIn::ByronTxInGenesis(byron_tx_in_genesis) => {
296                Some(byron_tx_in_genesis.clone().into())
297            }
298            _ => None,
299        }
300    }
301}
302
303#[derive(Clone, Debug)]
304#[wasm_bindgen]
305pub struct ByronTxInGenesis(cml_multi_era::byron::transaction::ByronTxInGenesis);
306
307impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxInGenesis);
308
309impl_wasm_conversions!(
310    cml_multi_era::byron::transaction::ByronTxInGenesis,
311    ByronTxInGenesis
312);
313
314#[wasm_bindgen]
315impl ByronTxInGenesis {
316    pub fn u8(&self) -> u8 {
317        self.0.u8
318    }
319
320    pub fn index_1(&self) -> Vec<u8> {
321        self.0.index_1.clone()
322    }
323
324    pub fn new(u8: u8, index_1: Vec<u8>) -> Self {
325        Self(cml_multi_era::byron::transaction::ByronTxInGenesis::new(
326            u8, index_1,
327        ))
328    }
329}
330
331#[wasm_bindgen]
332pub enum ByronTxInKind {
333    ByronTxInRegular,
334    ByronTxInGenesis,
335}
336
337#[derive(Clone, Debug)]
338#[wasm_bindgen]
339pub struct ByronTxInRegular(cml_multi_era::byron::transaction::ByronTxInRegular);
340
341impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxInRegular);
342
343impl_wasm_conversions!(
344    cml_multi_era::byron::transaction::ByronTxInRegular,
345    ByronTxInRegular
346);
347
348#[wasm_bindgen]
349impl ByronTxInRegular {
350    pub fn index_1(&self) -> ByronTxOutPtr {
351        self.0.index_1.clone().into()
352    }
353
354    pub fn new(index_1: &ByronTxOutPtr) -> Self {
355        Self(cml_multi_era::byron::transaction::ByronTxInRegular::new(
356            index_1.clone().into(),
357        ))
358    }
359}
360
361#[derive(Clone, Debug)]
362#[wasm_bindgen]
363pub struct ByronTxOutPtr(cml_multi_era::byron::transaction::ByronTxOutPtr);
364
365impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxOutPtr);
366
367impl_wasm_conversions!(
368    cml_multi_era::byron::transaction::ByronTxOutPtr,
369    ByronTxOutPtr
370);
371
372#[wasm_bindgen]
373impl ByronTxOutPtr {
374    pub fn byron_tx_id(&self) -> ByronTxId {
375        self.0.byron_tx_id.into()
376    }
377
378    pub fn u32(&self) -> u32 {
379        self.0.u32
380    }
381
382    pub fn new(byron_tx_id: &ByronTxId, u32: u32) -> Self {
383        Self(cml_multi_era::byron::transaction::ByronTxOutPtr::new(
384            byron_tx_id.clone().into(),
385            u32,
386        ))
387    }
388}
389
390#[derive(Clone, Debug)]
391#[wasm_bindgen]
392pub struct ByronTxProof(cml_multi_era::byron::transaction::ByronTxProof);
393
394impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxProof);
395
396impl_wasm_conversions!(
397    cml_multi_era::byron::transaction::ByronTxProof,
398    ByronTxProof
399);
400
401#[wasm_bindgen]
402impl ByronTxProof {
403    pub fn u32(&self) -> u32 {
404        self.0.u32
405    }
406
407    pub fn blake2b256(&self) -> Blake2b256 {
408        self.0.blake2b256.into()
409    }
410
411    pub fn blake2b2562(&self) -> Blake2b256 {
412        self.0.blake2b2562.into()
413    }
414
415    pub fn new(u32: u32, blake2b256: &Blake2b256, blake2b2562: &Blake2b256) -> Self {
416        Self(cml_multi_era::byron::transaction::ByronTxProof::new(
417            u32,
418            blake2b256.clone().into(),
419            blake2b2562.clone().into(),
420        ))
421    }
422}
423
424#[derive(Clone, Debug)]
425#[wasm_bindgen]
426pub struct ByronTxWitness(cml_multi_era::byron::transaction::ByronTxWitness);
427
428impl_wasm_cbor_json_api_cbor_event_serialize!(ByronTxWitness);
429
430impl_wasm_conversions!(
431    cml_multi_era::byron::transaction::ByronTxWitness,
432    ByronTxWitness
433);
434
435#[wasm_bindgen]
436impl ByronTxWitness {
437    pub fn new_byron_pk_witness(index_1: &ByronPkWitnessEntry) -> Self {
438        Self(
439            cml_multi_era::byron::transaction::ByronTxWitness::new_byron_pk_witness(
440                index_1.clone().into(),
441            ),
442        )
443    }
444
445    pub fn new_byron_script_witness(index_1: &ByronScriptWitnessEntry) -> Self {
446        Self(
447            cml_multi_era::byron::transaction::ByronTxWitness::new_byron_script_witness(
448                index_1.clone().into(),
449            ),
450        )
451    }
452
453    pub fn new_byron_redeem_witness(index_1: &ByronRedeemerWitnessEntry) -> Self {
454        Self(
455            cml_multi_era::byron::transaction::ByronTxWitness::new_byron_redeem_witness(
456                index_1.clone().into(),
457            ),
458        )
459    }
460
461    pub fn kind(&self) -> ByronTxWitnessKind {
462        match &self.0 {
463            cml_multi_era::byron::transaction::ByronTxWitness::ByronPkWitness(_) => {
464                ByronTxWitnessKind::ByronPkWitness
465            }
466            cml_multi_era::byron::transaction::ByronTxWitness::ByronScriptWitness(_) => {
467                ByronTxWitnessKind::ByronScriptWitness
468            }
469            cml_multi_era::byron::transaction::ByronTxWitness::ByronRedeemWitness(_) => {
470                ByronTxWitnessKind::ByronRedeemWitness
471            }
472        }
473    }
474
475    pub fn as_byron_pk_witness(&self) -> Option<ByronPkWitness> {
476        match &self.0 {
477            cml_multi_era::byron::transaction::ByronTxWitness::ByronPkWitness(byron_pk_witness) => {
478                Some(byron_pk_witness.clone().into())
479            }
480            _ => None,
481        }
482    }
483
484    pub fn as_byron_script_witness(&self) -> Option<ByronScriptWitness> {
485        match &self.0 {
486            cml_multi_era::byron::transaction::ByronTxWitness::ByronScriptWitness(
487                byron_script_witness,
488            ) => Some(byron_script_witness.clone().into()),
489            _ => None,
490        }
491    }
492
493    pub fn as_byron_redeem_witness(&self) -> Option<ByronRedeemWitness> {
494        match &self.0 {
495            cml_multi_era::byron::transaction::ByronTxWitness::ByronRedeemWitness(
496                byron_redeem_witness,
497            ) => Some(byron_redeem_witness.clone().into()),
498            _ => None,
499        }
500    }
501}
502
503#[wasm_bindgen]
504pub enum ByronTxWitnessKind {
505    ByronPkWitness,
506    ByronScriptWitness,
507    ByronRedeemWitness,
508}
509
510#[derive(Clone, Debug)]
511#[wasm_bindgen]
512pub struct ByronValidatorScript(cml_multi_era::byron::transaction::ByronValidatorScript);
513
514impl_wasm_cbor_json_api_cbor_event_serialize!(ByronValidatorScript);
515
516impl_wasm_conversions!(
517    cml_multi_era::byron::transaction::ByronValidatorScript,
518    ByronValidatorScript
519);
520
521#[wasm_bindgen]
522impl ByronValidatorScript {
523    pub fn u16(&self) -> u16 {
524        self.0.u16
525    }
526
527    pub fn index_1(&self) -> Vec<u8> {
528        self.0.index_1.clone()
529    }
530
531    pub fn new(u16: u16, index_1: Vec<u8>) -> Self {
532        Self(cml_multi_era::byron::transaction::ByronValidatorScript::new(u16, index_1))
533    }
534}