• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MinaProtocol / mina / 538

25 Aug 2025 05:35PM UTC coverage: 61.202% (+0.4%) from 60.772%
538

push

buildkite

web-flow
Merge pull request #17673 from MinaProtocol/amcie-merge-release320-to-master

amcie-merge-release320-to-master

3142 of 4828 new or added lines in 308 files covered. (65.08%)

205 existing lines in 68 files now uncovered.

50733 of 82894 relevant lines covered (61.2%)

470098.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

98.28
/src/lib/string_sign/tests/test_string_sign.ml
1
open Core_kernel
2
open String_sign
3
open Mina_signature_kind
4

5
(* Create a keypair for testing *)
6
let keypair : Signature_lib.Keypair.t =
7
  let public_key =
8
    Signature_lib.Public_key.Compressed.of_base58_check_exn
1✔
9
      "B62qnNkiQn1t1Nhof2fyTtBTbHLbXcUDVX2BWpjGKKK3HsfP8LPhYgE"
10
    |> Signature_lib.Public_key.decompress_exn
11
  in
12
  let private_key =
1✔
13
    Signature_lib.Private_key.of_base58_check_exn
14
      "EKEyDHNLpR42jU8j9p13t6GA3wKBXdHszrV17G6jpfJbK8FZDfYo"
15
  in
16
  { public_key; private_key }
1✔
17

18
(* Test basic signing and verification with default network *)
19
let test_default_network () =
20
  let s =
1✔
21
    "Now is the time for all good men to come to the aid of their party"
22
  in
23
  let signature = sign keypair.private_key s in
24
  Alcotest.(check bool)
1✔
25
    "Sign and verify with default network" true
26
    (verify signature keypair.public_key s)
1✔
27

28
(* Test signing and verification with mainnet *)
29
let test_mainnet () =
30
  let s = "Rain and Spain don't rhyme with cheese" in
1✔
31
  let signature = sign ~signature_kind:Mainnet keypair.private_key s in
32
  Alcotest.(check bool)
1✔
33
    "Sign and verify with mainnet" true
34
    (verify ~signature_kind:Mainnet signature keypair.public_key s)
1✔
35

36
(* Test legacy mainnet signature verification *)
37
let test_legacy_mainnet () =
38
  let s = "Legacy signature for mainnet" in
1✔
39
  let signature =
40
    "\"7mX3ZLNHk9CKtMd7hFLXYwEBXyiosDug9BLWDND1KJEdyfMWX9oWHscxGMT3q4P9DdYiXsXFynsfoLhooy3XJ5dgduPSHw5u\""
41
    |> Yojson.Safe.from_string |> Mina_base.Signature.of_yojson
1✔
42
    |> Core_kernel.Result.ok |> Option.value_exn
1✔
43
  in
44
  Alcotest.(check bool)
1✔
45
    "Verify legacy mainnet signature" true
46
    (verify ~signature_kind:Mainnet signature keypair.public_key s)
1✔
47

48
(* Test signing and verification with testnet *)
49
let test_testnet () =
50
  let s = "In a galaxy far, far away" in
1✔
51
  let signature = sign ~signature_kind:Testnet keypair.private_key s in
52
  Alcotest.(check bool)
1✔
53
    "Sign and verify with testnet" true
54
    (verify ~signature_kind:Testnet signature keypair.public_key s)
1✔
55

56
(* Test legacy testnet signature verification *)
57
let test_legacy_testnet () =
58
  let s = "Legacy signature for testnet" in
1✔
59
  let signature =
60
    "\"7mXR8PX3MuDWa7vTWTy6NWE83nKkRQosU2NzcCohuP56qy5CmugUTEgVD14xRSPMD7DsdCsgD2Y6ehY6Dkh6hRTU28i6CF37\""
61
    |> Yojson.Safe.from_string |> Mina_base.Signature.of_yojson
1✔
62
    |> Core_kernel.Result.ok |> Option.value_exn
1✔
63
  in
64
  Alcotest.(check bool)
1✔
65
    "Verify legacy testnet signature" true
66
    (verify ~signature_kind:Testnet signature keypair.public_key s)
1✔
67

68
(* Test signing and verification with other networks *)
69
let test_other_network () =
70
  let s = "Sky is blue" in
1✔
71
  let signature =
72
    sign ~signature_kind:(Other_network "Foo") keypair.private_key s
73
  in
74
  Alcotest.(check bool)
1✔
75
    "Sign and verify with other network" true
76
    (verify ~signature_kind:(Other_network "Foo") signature keypair.public_key s)
1✔
77

78
(* Test that signatures from one network don't verify on others *)
79
let test_testnet_failures () =
80
  let s = "Some pills make you larger" in
1✔
81
  let signature = sign ~signature_kind:Testnet keypair.private_key s in
82

83
  (* Should verify with testnet *)
84
  Alcotest.(check bool)
1✔
85
    "Testnet signature verifies with testnet" true
86
    (verify ~signature_kind:Testnet signature keypair.public_key s) ;
1✔
87

88
  (* Should not verify with mainnet *)
89
  Alcotest.(check bool)
1✔
90
    "Testnet signature fails with mainnet" false
91
    (verify ~signature_kind:Mainnet signature keypair.public_key s) ;
1✔
92

93
  (* Should not verify with other network *)
94
  Alcotest.(check bool)
1✔
95
    "Testnet signature fails with other network" false
96
    (verify ~signature_kind:(Other_network "Foo") signature keypair.public_key s)
1✔
97

98
(* Test that mainnet signatures don't verify on other networks *)
99
let test_mainnet_failures () =
100
  let s = "Watson, come here, I need you" in
1✔
101
  let signature = sign ~signature_kind:Mainnet keypair.private_key s in
102

103
  (* Should verify with mainnet *)
104
  Alcotest.(check bool)
1✔
105
    "Mainnet signature verifies with mainnet" true
106
    (verify ~signature_kind:Mainnet signature keypair.public_key s) ;
1✔
107

108
  (* Should not verify with testnet *)
109
  Alcotest.(check bool)
1✔
110
    "Mainnet signature fails with testnet" false
111
    (verify ~signature_kind:Testnet signature keypair.public_key s) ;
1✔
112

113
  (* Should not verify with other network *)
114
  Alcotest.(check bool)
1✔
115
    "Mainnet signature fails with other network" false
116
    (verify ~signature_kind:(Other_network "Foo") signature keypair.public_key s)
1✔
117

118
(* Test that other network signatures don't verify on standard networks *)
119
let test_other_network_failures () =
120
  let s = "Roses are red" in
1✔
121
  let signature =
122
    sign ~signature_kind:(Other_network "Foo") keypair.private_key s
123
  in
124

125
  (* Should verify with the same other network *)
126
  Alcotest.(check bool)
1✔
127
    "Other network signature verifies with same network" true
128
    (verify ~signature_kind:(Other_network "Foo") signature keypair.public_key s) ;
1✔
129

130
  (* Should not verify with mainnet *)
131
  Alcotest.(check bool)
1✔
132
    "Other network signature fails with mainnet" false
133
    (verify ~signature_kind:Mainnet signature keypair.public_key s) ;
1✔
134

135
  (* Should not verify with testnet *)
136
  Alcotest.(check bool)
1✔
137
    "Other network signature fails with testnet" false
138
    (verify ~signature_kind:Testnet signature keypair.public_key s) ;
1✔
139

140
  (* Should not verify with different other network *)
141
  Alcotest.(check bool)
1✔
142
    "Other network signature fails with different other network" false
143
    (verify ~signature_kind:(Other_network "Bar") signature keypair.public_key s)
1✔
144

145
(* Define the test suite *)
146
let () =
NEW
147
  Alcotest.run "String_sign"
×
148
    [ ( "Basic signing and verification"
149
      , [ Alcotest.test_case "Default network" `Quick test_default_network
1✔
150
        ; Alcotest.test_case "Mainnet" `Quick test_mainnet
1✔
151
        ; Alcotest.test_case "Legacy mainnet" `Quick test_legacy_mainnet
1✔
152
        ; Alcotest.test_case "Testnet" `Quick test_testnet
1✔
153
        ; Alcotest.test_case "Legacy testnet" `Quick test_legacy_testnet
1✔
154
        ; Alcotest.test_case "Other network" `Quick test_other_network
1✔
155
        ] )
156
    ; ( "Cross-network verification failures"
157
      , [ Alcotest.test_case "Testnet failures" `Quick test_testnet_failures
1✔
158
        ; Alcotest.test_case "Mainnet failures" `Quick test_mainnet_failures
1✔
159
        ; Alcotest.test_case "Other network failures" `Quick
1✔
160
            test_other_network_failures
161
        ] )
162
    ]
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc