@@ -4,12 +4,10 @@ use crate::{
4
4
key_decode_hex, EraMarkersSigner , EraMarkersVerifier , EraMarkersVerifierSignature ,
5
5
EraMarkersVerifierVerificationKey ,
6
6
} ,
7
- entities:: HexEncodedEraMarkersSignature ,
8
7
era:: { EraMarker , EraReaderAdapter } ,
9
8
StdError , StdResult ,
10
9
} ;
11
10
use async_trait:: async_trait;
12
- use hex:: { FromHex , ToHex } ;
13
11
use serde:: { Deserialize , Serialize } ;
14
12
use std:: sync:: Arc ;
15
13
use thiserror:: Error ;
@@ -45,7 +43,7 @@ pub struct EraMarkersPayload {
45
43
pub markers : Vec < EraMarker > ,
46
44
47
45
/// Era markers signature
48
- pub signature : Option < HexEncodedEraMarkersSignature > ,
46
+ pub signature : Option < EraMarkersVerifierSignature > ,
49
47
}
50
48
51
49
impl EraMarkersPayload {
@@ -54,39 +52,28 @@ impl EraMarkersPayload {
54
52
. map_err ( |e| EraMarkersPayloadError :: SerializeMessage ( e. into ( ) ) )
55
53
}
56
54
57
- fn deserialize_signature ( & self ) -> Result < EraMarkersVerifierSignature , EraMarkersPayloadError > {
58
- EraMarkersVerifierSignature :: from_bytes (
59
- & Vec :: from_hex (
60
- self . signature
61
- . as_ref ( )
62
- . ok_or ( EraMarkersPayloadError :: MissingSignature ) ?,
63
- )
64
- . map_err ( |e| EraMarkersPayloadError :: DeserializeSignature ( e. into ( ) ) ) ?,
65
- )
66
- . map_err ( |e| EraMarkersPayloadError :: DeserializeSignature ( e. into ( ) ) )
67
- }
68
-
69
55
/// Verify the signature an era markers payload
70
56
pub fn verify_signature (
71
57
& self ,
72
58
verification_key : EraMarkersVerifierVerificationKey ,
73
59
) -> Result < ( ) , EraMarkersPayloadError > {
60
+ let signature = self
61
+ . signature
62
+ . ok_or ( EraMarkersPayloadError :: MissingSignature ) ?;
74
63
let markers_verifier = EraMarkersVerifier :: from_verification_key ( verification_key) ;
75
64
76
65
markers_verifier
77
- . verify ( & self . message_to_bytes ( ) ?, & self . deserialize_signature ( ) ? )
66
+ . verify ( & self . message_to_bytes ( ) ?, & signature )
78
67
. map_err ( |e| EraMarkersPayloadError :: VerifySignature ( e. into ( ) ) )
79
68
}
80
69
81
70
/// Sign an era markers payload
82
71
pub fn sign ( self , signer : & EraMarkersSigner ) -> Result < Self , EraMarkersPayloadError > {
83
- let signature = signer
84
- . sign (
85
- & self
86
- . message_to_bytes ( )
87
- . map_err ( |e| EraMarkersPayloadError :: CreateSignature ( e. into ( ) ) ) ?,
88
- )
89
- . encode_hex :: < String > ( ) ;
72
+ let signature = signer. sign (
73
+ & self
74
+ . message_to_bytes ( )
75
+ . map_err ( |e| EraMarkersPayloadError :: CreateSignature ( e. into ( ) ) ) ?,
76
+ ) ;
90
77
91
78
Ok ( Self {
92
79
markers : self . markers ,
@@ -155,7 +142,7 @@ mod test {
155
142
156
143
use super :: * ;
157
144
158
- const GOLDEN_ERA_MARKERS_PAYLOAD : & str =
145
+ const GOLDEN_ERA_MARKERS_PAYLOAD_WITH_SIGNATURE : & str =
159
146
"7b226d61726b657273223a5b7b226e616d65223a227468616c6573222c2265706f6368223a317d2c7b226e616d\
160
147
65223a227079746861676f726173222c2265706f6368223a327d5d2c227369676e6174757265223a22633539373\
161
148
9653333663163336234376361306162353239386536353562316264653235656564303866356232653536663361\
@@ -175,8 +162,8 @@ mod test {
175
162
}
176
163
177
164
#[ test]
178
- fn golden_markers_payload ( ) {
179
- let _: EraMarkersPayload = key_decode_hex ( GOLDEN_ERA_MARKERS_PAYLOAD )
165
+ fn golden_markers_payload_with_signature ( ) {
166
+ let _: EraMarkersPayload = key_decode_hex ( GOLDEN_ERA_MARKERS_PAYLOAD_WITH_SIGNATURE )
180
167
. expect ( "Decoding golden markers payload should not fail" ) ;
181
168
}
182
169
0 commit comments