ethers_types_rs/
signature.rs

1use ethabi::ethereum_types::{Signature, U256};
2
3pub trait SignatureVRS {
4    fn v(&self) -> u8;
5
6    fn r(&self) -> U256;
7
8    fn s(&self) -> U256;
9}
10
11impl SignatureVRS for Signature {
12    /// Extract signature v
13    fn v(&self) -> u8 {
14        self.0[0]
15    }
16
17    /// Extract signature r
18    fn r(&self) -> U256 {
19        self.0[1..33].into()
20    }
21
22    /// Extract signature s
23    fn s(&self) -> U256 {
24        self.0[33..].into()
25    }
26}