1- use std:: collections:: BTreeMap ;
2-
31use 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} ;
108const 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 ) ]
6812pub 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
7620impl 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
0 commit comments