@@ -7,6 +7,7 @@ use crate::{MagicId, StdResult};
7
7
const MAINNET_MAGIC_ID : MagicId = 764824073 ;
8
8
const PREPROD_MAGIC_ID : MagicId = 1 ;
9
9
const PREVIEW_MAGIC_ID : MagicId = 2 ;
10
+ pub ( crate ) const DEVNET_MAGIC_ID : MagicId = 42 ;
10
11
11
12
#[ derive( Error , Debug ) ]
12
13
pub enum CardanoNetworkError {
@@ -21,11 +22,8 @@ pub enum CardanoNetwork {
21
22
/// The Cardano mainnet network
22
23
MainNet ,
23
24
24
- /// A Cardano test network (testnet, preview, or preprod )
25
+ /// A Cardano test network (preview, preprod or private devnet )
25
26
TestNet ( MagicId ) ,
26
-
27
- /// A Cardano private devnet
28
- DevNet ( MagicId ) ,
29
27
}
30
28
31
29
impl CardanoNetwork {
@@ -38,6 +36,7 @@ impl CardanoNetwork {
38
36
"mainnet" => Ok ( CardanoNetwork :: MainNet ) ,
39
37
"preview" => Ok ( CardanoNetwork :: TestNet ( PREVIEW_MAGIC_ID ) ) ,
40
38
"preprod" => Ok ( CardanoNetwork :: TestNet ( PREPROD_MAGIC_ID ) ) ,
39
+ "devnet" => Ok ( CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID ) ) ,
41
40
"private" => {
42
41
if let Some ( magic) = network_magic {
43
42
Ok ( CardanoNetwork :: TestNet ( magic) )
@@ -47,15 +46,6 @@ impl CardanoNetwork {
47
46
) )
48
47
}
49
48
}
50
- "devnet" => {
51
- if let Some ( magic) = network_magic {
52
- Ok ( CardanoNetwork :: DevNet ( magic) )
53
- } else {
54
- Err ( CardanoNetworkError :: ParseFromCode (
55
- "no NETWORK MAGIC number given for devnet network" . to_string ( ) ,
56
- ) )
57
- }
58
- }
59
49
what => Err ( CardanoNetworkError :: ParseFromCode ( format ! (
60
50
"could not parse network '{what}', the only recognized networks are: mainnet, devnet, testnet, preview, preprod and private"
61
51
) ) ) ,
@@ -66,7 +56,6 @@ impl CardanoNetwork {
66
56
pub fn code ( & self ) -> MagicId {
67
57
match * self {
68
58
CardanoNetwork :: MainNet => MAINNET_MAGIC_ID ,
69
- CardanoNetwork :: DevNet ( magic_id) => magic_id,
70
59
CardanoNetwork :: TestNet ( magic_id) => magic_id,
71
60
}
72
61
}
@@ -87,10 +76,10 @@ impl Display for CardanoNetwork {
87
76
fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
88
77
match * self {
89
78
CardanoNetwork :: MainNet => write ! ( f, "mainnet" ) ,
90
- CardanoNetwork :: DevNet ( _) => write ! ( f, "devnet" ) ,
91
79
CardanoNetwork :: TestNet ( magic_id) => match magic_id {
92
80
PREVIEW_MAGIC_ID => write ! ( f, "preview" ) ,
93
81
PREPROD_MAGIC_ID => write ! ( f, "preprod" ) ,
82
+ DEVNET_MAGIC_ID => write ! ( f, "devnet" ) ,
94
83
_ => write ! ( f, "private" ) ,
95
84
} ,
96
85
}
@@ -139,6 +128,14 @@ mod tests {
139
128
CardanoNetwork :: from_code( "preprod" . to_string( ) , Some ( 123 ) ) . unwrap( ) ,
140
129
CardanoNetwork :: TestNet ( PREPROD_MAGIC_ID )
141
130
) ;
131
+ assert_eq ! (
132
+ CardanoNetwork :: from_code( "devnet" . to_string( ) , None ) . unwrap( ) ,
133
+ CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID )
134
+ ) ;
135
+ assert_eq ! (
136
+ CardanoNetwork :: from_code( "devnet" . to_string( ) , Some ( 123 ) ) . unwrap( ) ,
137
+ CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID )
138
+ ) ;
142
139
assert_eq ! (
143
140
CardanoNetwork :: from_code( "private" . to_string( ) , Some ( 123 ) ) . unwrap( ) ,
144
141
CardanoNetwork :: TestNet ( 123 )
@@ -180,12 +177,22 @@ mod tests {
180
177
. unwrap ( ) ;
181
178
assert ! ( allow_unparsable_block) ;
182
179
183
- let allow_unparsable_block = CardanoNetwork :: DevNet ( 123 )
180
+ let allow_unparsable_block = CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID )
181
+ . compute_allow_unparsable_block ( false )
182
+ . unwrap ( ) ;
183
+ assert ! ( !allow_unparsable_block) ;
184
+
185
+ let allow_unparsable_block = CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID )
186
+ . compute_allow_unparsable_block ( true )
187
+ . unwrap ( ) ;
188
+ assert ! ( allow_unparsable_block) ;
189
+
190
+ let allow_unparsable_block = CardanoNetwork :: TestNet ( 123 )
184
191
. compute_allow_unparsable_block ( false )
185
192
. unwrap ( ) ;
186
193
assert ! ( !allow_unparsable_block) ;
187
194
188
- let allow_unparsable_block = CardanoNetwork :: DevNet ( 123 )
195
+ let allow_unparsable_block = CardanoNetwork :: TestNet ( 123 )
189
196
. compute_allow_unparsable_block ( true )
190
197
. unwrap ( ) ;
191
198
assert ! ( allow_unparsable_block) ;
@@ -200,7 +207,7 @@ mod tests {
200
207
}
201
208
202
209
assert_all_conversions_eq ( CardanoNetwork :: MainNet , "mainnet" ) ;
203
- assert_all_conversions_eq ( CardanoNetwork :: DevNet ( 123456 ) , "devnet" ) ;
210
+ assert_all_conversions_eq ( CardanoNetwork :: TestNet ( DEVNET_MAGIC_ID ) , "devnet" ) ;
204
211
assert_all_conversions_eq ( CardanoNetwork :: TestNet ( PREVIEW_MAGIC_ID ) , "preview" ) ;
205
212
assert_all_conversions_eq ( CardanoNetwork :: TestNet ( PREPROD_MAGIC_ID ) , "preprod" ) ;
206
213
assert_all_conversions_eq ( CardanoNetwork :: TestNet ( 123456 ) , "private" ) ;
0 commit comments