Skip to main content

cml_multi_era_wasm/byron/
mod.rs

1// This file was code-generated using an experimental CDDL to rust tool:
2// https://github.com/dcSpark/cddl-codegen
3
4pub mod block;
5pub mod delegation;
6pub mod mpc;
7pub mod transaction;
8pub mod update;
9#[macro_use]
10pub mod utils;
11
12use ::wasm_bindgen::prelude::wasm_bindgen;
13use cml_chain_wasm::byron::ByronTxOut;
14use cml_chain_wasm::utils::BigInteger;
15use cml_core_wasm::{
16    impl_wasm_cbor_json_api_cbor_event_serialize, impl_wasm_conversions, impl_wasm_list,
17    impl_wasm_map_btree,
18};
19use cml_crypto_wasm::TransactionHash;
20pub use utils::{Blake2b224, Blake2b256, ByronAny};
21
22pub type SystemTag = String;
23
24pub type ByronBlockId = Blake2b256;
25
26pub type ByronPubKey = Vec<u8>;
27
28pub type ByronSignature = Vec<u8>;
29
30#[derive(Clone, Debug)]
31#[wasm_bindgen]
32pub struct ByronSlotId(cml_multi_era::byron::ByronSlotId);
33
34impl_wasm_cbor_json_api_cbor_event_serialize!(ByronSlotId);
35
36impl_wasm_conversions!(cml_multi_era::byron::ByronSlotId, ByronSlotId);
37
38#[wasm_bindgen]
39impl ByronSlotId {
40    pub fn epoch(&self) -> EpochId {
41        self.0.epoch
42    }
43
44    pub fn slot(&self) -> u64 {
45        self.0.slot
46    }
47
48    pub fn new(epoch: EpochId, slot: u64) -> Self {
49        Self(cml_multi_era::byron::ByronSlotId::new(epoch, slot))
50    }
51}
52
53pub type ByronTxId = TransactionHash;
54
55pub type ByronUpdateId = Blake2b256;
56
57pub type EpochId = u64;
58
59// this is pasted from lib.rs due to the export structure being at cml-multi-era-wasm root:
60
61use cml_chain_wasm::byron::{AddressId, StakeholderId};
62
63use crate::byron::{
64    delegation::ByronDelegation,
65    transaction::{ByronAttributes, ByronTxIn, ByronTxWitness},
66    update::{
67        ByronTxFeePolicy, ByronUpdateData, ByronUpdateProposal, ByronUpdateVote, SoftForkRule,
68    },
69};
70
71impl_wasm_list!(cml_chain::byron::AddressId, AddressId, AddressIdList);
72
73impl_wasm_list!(cml_chain::utils::BigInteger, BigInteger, BigIntegerList);
74
75impl_wasm_list!(cml_multi_era::byron::ByronAny, ByronAny, ByronAnyList);
76
77impl_wasm_list!(
78    cml_multi_era::byron::transaction::ByronAttributes,
79    ByronAttributes,
80    ByronAttributesList
81);
82
83impl_wasm_list!(
84    cml_multi_era::byron::delegation::ByronDelegation,
85    ByronDelegation,
86    ByronDelegationList
87);
88
89impl_wasm_list!(
90    cml_multi_era::byron::update::ByronTxFeePolicy,
91    ByronTxFeePolicy,
92    ByronTxFeePolicyList
93);
94
95impl_wasm_list!(
96    cml_multi_era::byron::transaction::ByronTxIn,
97    ByronTxIn,
98    ByronTxInList
99);
100
101impl_wasm_list!(cml_chain::byron::ByronTxOut, ByronTxOut, ByronTxOutList);
102
103impl_wasm_list!(
104    cml_multi_era::byron::transaction::ByronTxWitness,
105    ByronTxWitness,
106    ByronTxWitnessList
107);
108
109impl_wasm_list!(
110    cml_multi_era::byron::update::ByronUpdateProposal,
111    ByronUpdateProposal,
112    ByronUpdateProposalList
113);
114
115impl_wasm_list!(
116    cml_multi_era::byron::update::ByronUpdateVote,
117    ByronUpdateVote,
118    ByronUpdateVoteList
119);
120
121impl_wasm_list!(Vec<u8>, Vec<u8>, BytesList, true, false);
122
123impl_wasm_map_btree!(
124    cml_multi_era::byron::update::SystemTag,
125    cml_multi_era::byron::update::ByronUpdateData,
126    SystemTag,
127    ByronUpdateData,
128    SystemTagList,
129    MapSystemTagToByronUpdateData,
130    true,
131    false,
132    false,
133    false
134);
135
136impl_wasm_list!(
137    cml_multi_era::byron::update::SoftForkRule,
138    SoftForkRule,
139    SoftForkRuleList
140);
141
142impl_wasm_list!(
143    cml_chain::byron::StakeholderId,
144    StakeholderId,
145    StakeholderIdList
146);
147
148impl_wasm_list!(String, String, SystemTagList, true, false);
149
150pub type VssDecryptedShareList = BytesList;
151
152pub type VssPubKeyList = BytesList;