@@ -47,22 +47,27 @@ template <typename Flavor> void OinkRecursiveVerifier_<Flavor>::verify()
47
47
FF public_input_size = transcript->template receive_from_prover <FF>(domain_separator + " public_input_size" );
48
48
FF pub_inputs_offset = transcript->template receive_from_prover <FF>(domain_separator + " pub_inputs_offset" );
49
49
50
- if (static_cast <uint32_t >(circuit_size.get_value ()) != verification_key->verification_key ->circuit_size ) {
50
+ if (static_cast <uint32_t >(circuit_size.get_value ()) !=
51
+ static_cast <uint32_t >(verification_key->verification_key ->circuit_size .get_value ())) {
51
52
throw_or_abort (" OinkRecursiveVerifier::verify: proof circuit size does not match verification key" );
52
53
}
53
- if (static_cast <uint32_t >(public_input_size.get_value ()) != verification_key->verification_key ->num_public_inputs ) {
54
- const std::string message = " OinkRecursiveVerifier::verify: proof public input size (" +
55
- std::to_string (static_cast <uint32_t >(public_input_size.get_value ())) +
56
- " ) does not match verification key public input size (" +
57
- std::to_string (verification_key->verification_key ->num_public_inputs ) + " )" ;
54
+ if (static_cast <uint32_t >(public_input_size.get_value ()) !=
55
+ static_cast <uint32_t >(verification_key->verification_key ->num_public_inputs .get_value ())) {
56
+ const std::string message =
57
+ " OinkRecursiveVerifier::verify: proof public input size (" +
58
+ std::to_string (static_cast <uint32_t >(public_input_size.get_value ())) +
59
+ " ) does not match verification key public input size (" +
60
+ std::to_string (static_cast <uint32_t >(verification_key->verification_key ->num_public_inputs .get_value ())) +
61
+ " )" ;
58
62
throw_or_abort (message);
59
63
}
60
- if (static_cast <uint32_t >(pub_inputs_offset.get_value ()) != verification_key->verification_key ->pub_inputs_offset ) {
64
+ if (static_cast <uint32_t >(pub_inputs_offset.get_value ()) !=
65
+ static_cast <uint32_t >(verification_key->verification_key ->pub_inputs_offset .get_value ())) {
61
66
throw_or_abort (" OinkRecursiveVerifier::verify: proof public input offset does not match verification key" );
62
67
}
63
68
64
69
std::vector<FF> public_inputs;
65
- for (size_t i = 0 ; i < verification_key-> verification_key -> num_public_inputs ; ++i) {
70
+ for (size_t i = 0 ; i < static_cast < size_t >( static_cast < uint32_t >(public_input_size. get_value ())) ; ++i) {
66
71
public_inputs.emplace_back (
67
72
transcript->template receive_from_prover <FF>(domain_separator + " public_input_" + std::to_string (i)));
68
73
}
@@ -109,12 +114,13 @@ template <typename Flavor> void OinkRecursiveVerifier_<Flavor>::verify()
109
114
}
110
115
}
111
116
117
+ // TODO(https://github.com/AztecProtocol/barretenberg/issues/1283): Suspicious get_value().
112
118
const FF public_input_delta = compute_public_input_delta<Flavor>(
113
119
public_inputs,
114
120
beta,
115
121
gamma ,
116
122
circuit_size,
117
- static_cast <uint32_t >(verification_key->verification_key ->pub_inputs_offset ));
123
+ static_cast <uint32_t >(verification_key->verification_key ->pub_inputs_offset . get_value () ));
118
124
119
125
// Get commitment to permutation and lookup grand products
120
126
commitments.z_perm = transcript->template receive_from_prover <Commitment>(domain_separator + labels.z_perm );
0 commit comments