cml_multi_era_wasm/byron/transaction/
mod.rs1use 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}