cml_multi_era_wasm/byron/
mod.rs1pub 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
59use 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;