platform_version/version/fee/signature/
mod.rs

1use bincode::{Decode, Encode};
2
3pub mod v1;
4
5#[derive(Clone, Debug, Encode, Decode, Default, PartialEq, Eq)]
6pub struct FeeSignatureVersion {
7    pub verify_signature_ecdsa_secp256k1: u64,
8    pub verify_signature_bls12_381: u64,
9    pub verify_signature_ecdsa_hash160: u64,
10    pub verify_signature_bip13_script_hash: u64,
11    pub verify_signature_eddsa25519_hash160: u64,
12}
13
14#[cfg(test)]
15mod tests {
16    use super::FeeSignatureVersion;
17
18    #[test]
19    // If this test failed, then a new field was added in FeeSignatureVersion. And the corresponding eq needs to be updated as well
20    fn test_fee_signature_version_equality() {
21        let version1 = FeeSignatureVersion {
22            verify_signature_ecdsa_secp256k1: 1,
23            verify_signature_bls12_381: 2,
24            verify_signature_ecdsa_hash160: 3,
25            verify_signature_bip13_script_hash: 4,
26            verify_signature_eddsa25519_hash160: 5,
27        };
28
29        let version2 = FeeSignatureVersion {
30            verify_signature_ecdsa_secp256k1: 1,
31            verify_signature_bls12_381: 2,
32            verify_signature_ecdsa_hash160: 3,
33            verify_signature_bip13_script_hash: 4,
34            verify_signature_eddsa25519_hash160: 5,
35        };
36
37        // This assertion will check if all fields are considered in the equality comparison
38        assert_eq!(version1, version2, "FeeSignatureVersion equality test failed. If a field was added or removed, update the Eq implementation.");
39    }
40}