@@ -7,7 +7,9 @@ use tokio::sync::{Mutex, MutexGuard};
7
7
8
8
use mithril_common:: {
9
9
CardanoNetwork , StdResult ,
10
- crypto_helper:: { OpCert , TryFromBytes } ,
10
+ crypto_helper:: {
11
+ OpCert , OpCertWithoutColdVerificationKey , TryFromBytes , ed25519:: Ed25519VerificationKey ,
12
+ } ,
11
13
entities:: PartyId ,
12
14
logging:: LoggerExtensions ,
13
15
} ;
@@ -113,10 +115,19 @@ impl<M: TryFromBytes + Debug> DmqConsumerClientPallas<M> {
113
115
. 0
114
116
. into_iter ( )
115
117
. map ( |dmq_message| {
116
- let opcert = OpCert :: try_from_bytes ( & dmq_message. operational_certificate )
118
+ let opcert_without_verification_key =
119
+ OpCertWithoutColdVerificationKey :: try_from_bytes (
120
+ & dmq_message. operational_certificate ,
121
+ )
117
122
. with_context ( || "Failed to parse operational certificate" ) ?;
123
+ let cold_verification_key =
124
+ Ed25519VerificationKey :: from_bytes ( & dmq_message. cold_verification_key )
125
+ . with_context ( || "Failed to parse cold verification key" ) ?
126
+ . into_inner ( ) ;
127
+ let opcert: OpCert =
128
+ ( opcert_without_verification_key, cold_verification_key) . into ( ) ;
118
129
let party_id = opcert. compute_protocol_party_id ( ) ?;
119
- let payload = M :: try_from_bytes ( & dmq_message. msg_body )
130
+ let payload = M :: try_from_bytes ( & dmq_message. msg_payload . msg_body )
120
131
. with_context ( || "Failed to parse DMQ message body" ) ?;
121
132
122
133
Ok ( ( payload, party_id) )
@@ -158,7 +169,10 @@ mod tests {
158
169
use mithril_common:: { crypto_helper:: TryToBytes , current_function, test:: TempDir } ;
159
170
use pallas_network:: {
160
171
facades:: DmqServer ,
161
- miniprotocols:: { localmsgnotification, localmsgsubmission:: DmqMsg } ,
172
+ miniprotocols:: {
173
+ localmsgnotification,
174
+ localmsgsubmission:: { DmqMsg , DmqMsgPayload } ,
175
+ } ,
162
176
} ;
163
177
use tokio:: { net:: UnixListener , task:: JoinHandle , time:: sleep} ;
164
178
@@ -173,41 +187,46 @@ mod tests {
173
187
fn fake_msgs ( ) -> Vec < DmqMsg > {
174
188
vec ! [
175
189
DmqMsg {
176
- msg_id: vec![ 0 , 1 ] ,
177
- msg_body: DmqMessageTestPayload :: new( b"msg_1" ) . to_bytes_vec( ) . unwrap( ) ,
178
- block_number: 10 ,
179
- ttl: 100 ,
190
+ msg_payload: DmqMsgPayload {
191
+ msg_id: vec![ 0 , 1 ] ,
192
+ msg_body: DmqMessageTestPayload :: new( b"msg_1" ) . to_bytes_vec( ) . unwrap( ) ,
193
+ kes_period: 10 ,
194
+ expires_at: 100 ,
195
+ } ,
180
196
kes_signature: vec![ 0 , 1 , 2 , 3 ] ,
181
197
operational_certificate: vec![
182
- 130 , 132 , 88 , 32 , 230 , 80 , 215 , 83 , 21 , 9 , 187 , 108 , 255 , 215 , 153 , 140 , 40 ,
183
- 198 , 142 , 78 , 200 , 250 , 98 , 26 , 9 , 82 , 32 , 110 , 161 , 30 , 176 , 63 , 205 , 125 ,
184
- 203 , 41 , 0 , 0 , 88 , 64 , 212 , 171 , 206 , 39 , 218 , 5 , 255 , 3 , 193 , 52 , 44 , 198 ,
185
- 171 , 83 , 19 , 80 , 114 , 225 , 186 , 191 , 156 , 192 , 84 , 146 , 245 , 159 , 31 , 240 , 9 ,
186
- 247 , 4 , 87 , 170 , 168 , 98 , 199 , 21 , 139 , 19 , 190 , 12 , 251 , 65 , 215 , 169 , 26 , 86 ,
187
- 37 , 137 , 188 , 17 , 14 , 178 , 205 , 175 , 93 , 39 , 86 , 4 , 138 , 187 , 234 , 95 , 5 , 88 ,
188
- 32 , 32 , 253 , 186 , 201 , 177 , 11 , 117 , 135 , 187 , 167 , 181 , 188 , 22 , 59 , 206 , 105 ,
198
+ 132 , 88 , 32 , 230 , 80 , 215 , 83 , 21 , 9 , 187 , 108 , 255 , 215 , 153 , 140 , 40 , 198 ,
199
+ 142 , 78 , 200 , 250 , 98 , 26 , 9 , 82 , 32 , 110 , 161 , 30 , 176 , 63 , 205 , 125 , 203 , 41 ,
200
+ 0 , 0 , 88 , 64 , 212 , 171 , 206 , 39 , 218 , 5 , 255 , 3 , 193 , 52 , 44 , 198 , 171 , 83 , 19 ,
201
+ 80 , 114 , 225 , 186 , 191 , 156 , 192 , 84 , 146 , 245 , 159 , 31 , 240 , 9 , 247 , 4 , 87 ,
202
+ 170 , 168 , 98 , 199 , 21 , 139 , 19 , 190 , 12 , 251 , 65 , 215 , 169 , 26 , 86 , 37 , 137 ,
203
+ 188 , 17 , 14 , 178 , 205 , 175 , 93 , 39 , 86 , 4 , 138 , 187 , 234 , 95 , 5 ,
204
+ ] ,
205
+ cold_verification_key: vec![
206
+ 32 , 253 , 186 , 201 , 177 , 11 , 117 , 135 , 187 , 167 , 181 , 188 , 22 , 59 , 206 , 105 ,
189
207
231 , 150 , 215 , 30 , 78 , 212 , 76 , 16 , 252 , 180 , 72 , 134 , 137 , 247 , 161 , 68 ,
190
208
] ,
191
- kes_period: 10 ,
192
209
} ,
193
210
DmqMsg {
194
- msg_id: vec![ 1 , 2 ] ,
195
- msg_body: DmqMessageTestPayload :: new( b"msg_2" ) . to_bytes_vec( ) . unwrap( ) ,
196
- block_number: 11 ,
197
- ttl: 100 ,
211
+ msg_payload: DmqMsgPayload {
212
+ msg_id: vec![ 1 , 2 ] ,
213
+ msg_body: DmqMessageTestPayload :: new( b"msg_2" ) . to_bytes_vec( ) . unwrap( ) ,
214
+ kes_period: 11 ,
215
+ expires_at: 101 ,
216
+ } ,
198
217
kes_signature: vec![ 1 , 2 , 3 , 4 ] ,
199
218
operational_certificate: vec![
200
- 130 , 132 , 88 , 32 , 230 , 80 , 215 , 83 , 21 , 9 , 187 , 108 , 255 , 215 , 153 , 140 , 40 ,
201
- 198 , 142 , 78 , 200 , 250 , 98 , 26 , 9 , 82 , 32 , 110 , 161 , 30 , 176 , 63 , 205 , 125 ,
202
- 203 , 41 , 0 , 0 , 88 , 64 , 132 , 4 , 199 , 39 , 190 , 173 , 88 , 102 , 121 , 117 , 55 , 62 ,
203
- 39 , 189 , 113 , 96 , 175 , 24 , 171 , 240 , 74 , 42 , 139 , 202 , 128 , 185 , 44 , 130 , 209 ,
204
- 77 , 191 , 122 , 196 , 224 , 33 , 158 , 187 , 156 , 203 , 190 , 173 , 150 , 247 , 87 , 172 ,
205
- 58 , 153 , 185 , 157 , 87 , 128 , 14 , 187 , 107 , 187 , 215 , 105 , 195 , 107 , 135 , 172 ,
206
- 43 , 173 , 9 , 88 , 32 , 77 , 75 , 24 , 6 , 47 , 133 , 2 , 89 , 141 , 224 , 69 , 202 , 123 , 105 ,
207
- 240 , 103 , 245 , 159 , 147 , 177 , 110 , 58 , 248 , 115 , 58 , 152 , 138 , 220 , 35 , 65 ,
208
- 245 , 200 ,
219
+ 132 , 88 , 32 , 230 , 80 , 215 , 83 , 21 , 9 , 187 , 108 , 255 , 215 , 153 , 140 , 40 , 198 ,
220
+ 142 , 78 , 200 , 250 , 98 , 26 , 9 , 82 , 32 , 110 , 161 , 30 , 176 , 63 , 205 , 125 , 203 , 41 ,
221
+ 0 , 0 , 88 , 64 , 212 , 171 , 206 , 39 , 218 , 5 , 255 , 3 , 193 , 52 , 44 , 198 , 171 , 83 , 19 ,
222
+ 80 , 114 , 225 , 186 , 191 , 156 , 192 , 84 , 146 , 245 , 159 , 31 , 240 , 9 , 247 , 4 , 87 ,
223
+ 170 , 168 , 98 , 199 , 21 , 139 , 19 , 190 , 12 , 251 , 65 , 215 , 169 , 26 , 86 , 37 , 137 ,
224
+ 188 , 17 , 14 , 178 , 205 , 175 , 93 , 39 , 86 , 4 , 138 , 187 , 234 , 95 , 5 ,
225
+ ] ,
226
+ cold_verification_key: vec![
227
+ 77 , 75 , 24 , 6 , 47 , 133 , 2 , 89 , 141 , 224 , 69 , 202 , 123 , 105 , 240 , 103 , 245 , 159 ,
228
+ 147 , 177 , 110 , 58 , 248 , 115 , 58 , 152 , 138 , 220 , 35 , 65 , 245 , 200 ,
209
229
] ,
210
- kes_period: 11 ,
211
230
} ,
212
231
]
213
232
}
0 commit comments