Skip to content

Commit c82b74b

Browse files
committed
fix: build errors
1 parent 9c6e29d commit c82b74b

File tree

9 files changed

+145
-186
lines changed

9 files changed

+145
-186
lines changed

common/src/genesis_values.rs

Lines changed: 26 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,20 @@
1-
use std::collections::BTreeMap;
2-
31
use crate::{
42
calculations::{
53
epoch_to_first_slot_with_shelley_params, slot_to_epoch_with_shelley_params,
64
slot_to_timestamp_with_params,
75
},
8-
hash::Hash,
6+
GenesisDelegates,
97
};
108
const MAINNET_SHELLEY_GENESIS_HASH: &str =
119
"1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81";
1210

13-
pub type GenesisKey = Hash<28>;
14-
15-
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
16-
pub struct GenDeleg {
17-
// Pool Id
18-
pub delegate: Hash<28>,
19-
pub vrf: Hash<32>,
20-
}
21-
22-
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
23-
pub struct GenesisDelegs(pub BTreeMap<GenesisKey, GenDeleg>);
24-
25-
impl AsRef<BTreeMap<GenesisKey, GenDeleg>> for GenesisDelegs {
26-
fn as_ref(&self) -> &BTreeMap<GenesisKey, GenDeleg> {
27-
&self.0
28-
}
29-
}
30-
31-
impl From<Vec<(String, (String, String))>> for GenesisDelegs {
32-
fn from(entries: Vec<(String, (String, String))>) -> Self {
33-
let map = entries
34-
.into_iter()
35-
.map(|(key_hash, (delegate, vrf))| {
36-
let key = Hash::new(
37-
hex::decode(key_hash)
38-
.expect("Invalid key hash hex string")
39-
.try_into()
40-
.expect("Invalid Genesis Key length"),
41-
);
42-
let delegate_hash = Hash::new(
43-
hex::decode(delegate)
44-
.expect("Invalid delegate hex string")
45-
.try_into()
46-
.expect("Invalid delegate hash length"),
47-
);
48-
let vrf_hash = Hash::new(
49-
hex::decode(vrf)
50-
.expect("Invalid VRF hex string")
51-
.try_into()
52-
.expect("Invalid VRF hash length"),
53-
);
54-
(
55-
key,
56-
GenDeleg {
57-
delegate: delegate_hash,
58-
vrf: vrf_hash,
59-
},
60-
)
61-
})
62-
.collect();
63-
GenesisDelegs(map)
64-
}
65-
}
66-
6711
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
6812
pub struct GenesisValues {
6913
pub byron_timestamp: u64,
7014
pub shelley_epoch: u64,
7115
pub shelley_epoch_len: u64,
7216
pub shelley_genesis_hash: [u8; 32],
73-
pub genesis_delegs: GenesisDelegs,
17+
pub genesis_delegs: GenesisDelegates,
7418
}
7519

7620
impl GenesisValues {
@@ -83,64 +27,58 @@ impl GenesisValues {
8327
.unwrap()
8428
.try_into()
8529
.unwrap(),
86-
genesis_delegs: GenesisDelegs::from(vec![
30+
genesis_delegs: GenesisDelegates::try_from(vec![
8731
(
88-
"ad5463153dc3d24b9ff133e46136028bdc1edbb897f5a7cf1b37950c".to_string(),
32+
"ad5463153dc3d24b9ff133e46136028bdc1edbb897f5a7cf1b37950c",
8933
(
90-
"d9e5c76ad5ee778960804094a389f0b546b5c2b140a62f8ec43ea54d".to_string(),
91-
"64fa87e8b29a5b7bfbd6795677e3e878c505bc4a3649485d366b50abadec92d7"
92-
.to_string(),
34+
"d9e5c76ad5ee778960804094a389f0b546b5c2b140a62f8ec43ea54d",
35+
"64fa87e8b29a5b7bfbd6795677e3e878c505bc4a3649485d366b50abadec92d7",
9336
),
9437
),
9538
(
96-
"b9547b8a57656539a8d9bc42c008e38d9c8bd9c8adbb1e73ad529497".to_string(),
39+
"b9547b8a57656539a8d9bc42c008e38d9c8bd9c8adbb1e73ad529497",
9740
(
98-
"855d6fc1e54274e331e34478eeac8d060b0b90c1f9e8a2b01167c048".to_string(),
99-
"66d5167a1f426bd1adcc8bbf4b88c280d38c148d135cb41e3f5a39f948ad7fcc"
100-
.to_string(),
41+
"855d6fc1e54274e331e34478eeac8d060b0b90c1f9e8a2b01167c048",
42+
"66d5167a1f426bd1adcc8bbf4b88c280d38c148d135cb41e3f5a39f948ad7fcc",
10143
),
10244
),
10345
(
104-
"60baee25cbc90047e83fd01e1e57dc0b06d3d0cb150d0ab40bbfead1".to_string(),
46+
"60baee25cbc90047e83fd01e1e57dc0b06d3d0cb150d0ab40bbfead1",
10547
(
106-
"7f72a1826ae3b279782ab2bc582d0d2958de65bd86b2c4f82d8ba956".to_string(),
107-
"c0546d9aa5740afd569d3c2d9c412595cd60822bb6d9a4e8ce6c43d12bd0f674"
108-
.to_string(),
48+
"7f72a1826ae3b279782ab2bc582d0d2958de65bd86b2c4f82d8ba956",
49+
"c0546d9aa5740afd569d3c2d9c412595cd60822bb6d9a4e8ce6c43d12bd0f674",
10950
),
11051
),
11152
(
112-
"f7b341c14cd58fca4195a9b278cce1ef402dc0e06deb77e543cd1757".to_string(),
53+
"f7b341c14cd58fca4195a9b278cce1ef402dc0e06deb77e543cd1757",
11354
(
114-
"69ae12f9e45c0c9122356c8e624b1fbbed6c22a2e3b4358cf0cb5011".to_string(),
115-
"6394a632af51a32768a6f12dac3485d9c0712d0b54e3f389f355385762a478f2"
116-
.to_string(),
55+
"69ae12f9e45c0c9122356c8e624b1fbbed6c22a2e3b4358cf0cb5011",
56+
"6394a632af51a32768a6f12dac3485d9c0712d0b54e3f389f355385762a478f2",
11757
),
11858
),
11959
(
120-
"162f94554ac8c225383a2248c245659eda870eaa82d0ef25fc7dcd82".to_string(),
60+
"162f94554ac8c225383a2248c245659eda870eaa82d0ef25fc7dcd82",
12161
(
122-
"4485708022839a7b9b8b639a939c85ec0ed6999b5b6dc651b03c43f6".to_string(),
123-
"aba81e764b71006c515986bf7b37a72fbb5554f78e6775f08e384dbd572a4b32"
124-
.to_string(),
62+
"4485708022839a7b9b8b639a939c85ec0ed6999b5b6dc651b03c43f6",
63+
"aba81e764b71006c515986bf7b37a72fbb5554f78e6775f08e384dbd572a4b32",
12564
),
12665
),
12766
(
128-
"2075a095b3c844a29c24317a94a643ab8e22d54a3a3a72a420260af6".to_string(),
67+
"2075a095b3c844a29c24317a94a643ab8e22d54a3a3a72a420260af6",
12968
(
130-
"6535db26347283990a252313a7903a45e3526ec25ddba381c071b25b".to_string(),
131-
"fcaca997b8105bd860876348fc2c6e68b13607f9bbd23515cd2193b555d267af"
132-
.to_string(),
69+
"6535db26347283990a252313a7903a45e3526ec25ddba381c071b25b",
70+
"fcaca997b8105bd860876348fc2c6e68b13607f9bbd23515cd2193b555d267af",
13371
),
13472
),
13573
(
136-
"268cfc0b89e910ead22e0ade91493d8212f53f3e2164b2e4bef0819b".to_string(),
74+
"268cfc0b89e910ead22e0ade91493d8212f53f3e2164b2e4bef0819b",
13775
(
138-
"1d4f2e1fda43070d71bb22a5522f86943c7c18aeb4fa47a362c27e23".to_string(),
139-
"63ef48bc5355f3e7973100c371d6a095251c80ceb40559f4750aa7014a6fb6db"
140-
.to_string(),
76+
"1d4f2e1fda43070d71bb22a5522f86943c7c18aeb4fa47a362c27e23",
77+
"63ef48bc5355f3e7973100c371d6a095251c80ceb40559f4750aa7014a6fb6db",
14178
),
14279
),
143-
]),
80+
])
81+
.unwrap(),
14482
}
14583
}
14684

common/src/ouroboros/overlay_schedule.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@
66
//! https://github.com/IntersectMBO/cardano-ledger/blob/24ef1741c5e0109e4d73685a24d8e753e225656d/libs/cardano-protocol-tpraos/src/Cardano/Protocol/TPraos/Rules/Overlay.hs#L332
77
88
use crate::{
9-
genesis_values::{GenDeleg, GenesisDelegs, GenesisKey},
10-
rational_number::RationalNumber,
11-
rest_helper::ToCheckedF64,
9+
rational_number::RationalNumber, rest_helper::ToCheckedF64, GenesisDelegate, GenesisDelegates,
10+
GenesisKeyhash,
1211
};
1312
use anyhow::Result;
1413

15-
#[derive(Debug, Clone, PartialEq, Eq)]
14+
#[derive(Debug, Clone, PartialEq)]
1615
pub enum OBftSlot {
1716
/// Overlay slot but no block should be produced (rare edge case)
1817
NonActiveSlot,
1918
/// Active overlay slot reserved for specific genesis key
20-
ActiveSlot(GenesisKey, GenDeleg),
19+
ActiveSlot(GenesisKeyhash, GenesisDelegate),
2120
}
2221

2322
/// Determine if the given slot is reserved for the overlay schedule.
@@ -57,7 +56,7 @@ pub fn is_overlay_slot(epoch_slot: u64, decentralisation_param: &RationalNumber)
5756
/// Classification of the slot (NonActiveSlot or ActiveSlot with genesis key)
5857
pub fn classify_overlay_slot(
5958
epoch_slot: u64,
60-
genesis_delegs: &GenesisDelegs,
59+
genesis_delegs: &GenesisDelegates,
6160
decentralisation_param: &RationalNumber,
6261
active_slots_coeff: &RationalNumber,
6362
) -> Result<OBftSlot> {
@@ -105,7 +104,7 @@ pub fn classify_overlay_slot(
105104
/// - active_slots_coeff is not a valid rational number
106105
pub fn lookup_in_overlay_schedule(
107106
epoch_slot: u64,
108-
genesis_delegs: &GenesisDelegs,
107+
genesis_delegs: &GenesisDelegates,
109108
decentralisation_param: &RationalNumber,
110109
active_slots_coeff: &RationalNumber,
111110
) -> Result<Option<OBftSlot>> {

common/src/ouroboros/praos.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::ouroboros::vrf_validation::{
99
use crate::protocol_params::Nonce;
1010
use crate::rational_number::RationalNumber;
1111
use crate::{protocol_params::PraosParams, BlockInfo};
12-
use crate::{KeyHash, PoolId};
12+
use crate::{PoolId, VrfKeyHash};
1313
use anyhow::Result;
1414
use pallas::ledger::primitives::VrfCert;
1515
use pallas::ledger::traverse::MultiEraHeader;
@@ -19,7 +19,7 @@ pub fn validate_vrf_praos<'a>(
1919
header: &'a MultiEraHeader,
2020
epoch_nonce: &'a Nonce,
2121
praos_params: &'a PraosParams,
22-
active_spos: &'a HashMap<PoolId, KeyHash>,
22+
active_spos: &'a HashMap<PoolId, VrfKeyHash>,
2323
active_spdd: &'a HashMap<PoolId, u64>,
2424
total_active_stake: u64,
2525
) -> Result<Vec<VrfValidation<'a>>, VrfValidationError> {
@@ -28,7 +28,7 @@ pub fn validate_vrf_praos<'a>(
2828
let Some(issuer_vkey) = header.issuer_vkey() else {
2929
return Ok(vec![Box::new(|| Err(VrfValidationError::MissingIssuerKey))]);
3030
};
31-
let pool_id: PoolId = keyhash_224(issuer_vkey);
31+
let pool_id = PoolId::from(keyhash_224(issuer_vkey));
3232
let registered_vrf_key_hash =
3333
active_spos.get(&pool_id).ok_or(VrfValidationError::UnknownPool {
3434
pool_id: pool_id.clone(),
@@ -87,8 +87,8 @@ fn vrf_result<'a>(header: &'a MultiEraHeader) -> Option<&'a VrfCert> {
8787
#[cfg(test)]
8888
mod tests {
8989
use crate::{
90-
crypto::keyhash_256, protocol_params::NonceHash, serialization::Bech32WithHrp, BlockHash,
91-
BlockStatus, Era,
90+
crypto::keyhash_256, protocol_params::NonceHash, serialization::Bech32Conversion,
91+
BlockHash, BlockStatus, Era,
9292
};
9393

9494
use super::*;
@@ -124,14 +124,12 @@ mod tests {
124124
};
125125
let block_header =
126126
MultiEraHeader::decode(block_info.era as u8, None, &block_header_7854823).unwrap();
127-
let pool_id = Vec::<u8>::from_bech32_with_hrp(
128-
"pool195gdnmj6smzuakm4etxsxw3fgh8asqc4awtcskpyfnkpcvh2v8t",
129-
"pool",
130-
)
131-
.unwrap();
127+
let pool_id =
128+
PoolId::from_bech32("pool195gdnmj6smzuakm4etxsxw3fgh8asqc4awtcskpyfnkpcvh2v8t")
129+
.unwrap();
132130
let active_spos = HashMap::from([(
133131
pool_id.clone(),
134-
keyhash_256(block_header.vrf_vkey().unwrap()),
132+
VrfKeyHash::from(keyhash_256(block_header.vrf_vkey().unwrap())),
135133
)]);
136134
let active_spdd = HashMap::from([(pool_id.clone(), 64590523391239)]);
137135
let result = validate_vrf_praos(

0 commit comments

Comments
 (0)