21 using G1Native = Curve::GroupNative::affine_element;
22 using FFNative = Curve::ScalarFieldNative;
24 G1Native P0_val = G1Native::random_element();
25 G1Native P1_val = G1Native::random_element();
26 G1Native kernel_return_data_val = G1Native::random_element();
27 G1Native app_return_data_val = G1Native::random_element();
28 FFNative ecc_op_hash_val = FFNative::random_element();
29 FFNative output_hn_accum_hash_val = FFNative::random_element();
40 PairingInputs pairing_inputs{ G1::from_witness(&
builder, P0_val), G1::from_witness(&
builder, P1_val) };
51 for (
const auto& idx :
builder.public_inputs()) {
52 public_inputs.push_back(
builder.get_variable(idx));
60 std::vector<FF> stdlib_public_inputs;
61 stdlib_public_inputs.reserve(public_inputs.size());
62 for (
const auto& val : public_inputs) {
63 stdlib_public_inputs.push_back(FF::from_witness(&
builder, val));
73 EXPECT_EQ(kernel_input.
app_return_data.get_value(), app_return_data_val);
86 using Curve = IO::Curve;
87 using FF = IO::Curve::ScalarField;
89 using PairingInputs = IO::PairingInputs;
91 using G1Native = Curve::GroupNative::affine_element;
92 using FFNative = IONative::FF;
94 G1Native P0_val = G1Native::random_element();
95 G1Native P1_val = G1Native::random_element();
106 PairingInputs pairing_inputs{ G1::from_witness(&
builder, P0_val), G1::from_witness(&
builder, P1_val) };
107 io_output.pairing_inputs = pairing_inputs;
110 io_output.set_public();
113 for (
const auto& idx :
builder.public_inputs()) {
114 public_inputs.push_back(
builder.get_variable(idx));
123 std::vector<FF> stdlib_public_inputs;
124 stdlib_public_inputs.reserve(public_inputs.size());
125 for (
const auto& val : public_inputs) {
126 stdlib_public_inputs.push_back(FF::from_witness(&
builder, val));
130 io_input.reconstruct_from_public(stdlib_public_inputs);
133 EXPECT_EQ(io_input.pairing_inputs.P0().get_value(), P0_val);
134 EXPECT_EQ(io_input.pairing_inputs.P1().get_value(), P1_val);
139 IONative io_input_native;
140 io_input_native.reconstruct_from_public(public_inputs);
143 EXPECT_EQ(io_input_native.pairing_inputs.P0(), P0_val);
144 EXPECT_EQ(io_input_native.pairing_inputs.P1(), P1_val);
162 using G1Native = Curve::GroupNative::affine_element;
163 using ScalarFieldBn254Native = RollUpIONative::FF;
165 using G1GrumpkinNative = GrumpkinNative::AffineElement;
166 using ScalarFieldGrumpkinNative = GrumpkinNative::ScalarField;
168 G1Native P0_val = G1Native::random_element();
169 G1Native P1_val = G1Native::random_element();
170 ScalarFieldGrumpkinNative challenge_val = ScalarFieldGrumpkinNative::random_element();
171 ScalarFieldGrumpkinNative evaluation_val = ScalarFieldGrumpkinNative::random_element();
172 G1GrumpkinNative commitment_val = G1GrumpkinNative::random_element();
183 PairingInputs pairing_inputs{ G1::from_witness(&
builder, P0_val), G1::from_witness(&
builder, P1_val) };
184 IpaClaim ipa_claim{ { ScalarFieldGrumpkin::from_witness(&
builder, challenge_val),
185 ScalarFieldGrumpkin::from_witness(&
builder, evaluation_val) },
186 G1Grumpkin::from_witness(&
builder, commitment_val) };
194 for (
const auto& idx :
builder.public_inputs()) {
195 public_inputs.push_back(
builder.get_variable(idx));
205 stdlib_public_inputs.reserve(public_inputs.size());
206 for (
const auto& val : public_inputs) {
207 stdlib_public_inputs.push_back(ScalarFieldBn254::from_witness(&
builder, val));
224 RollUpIONative rollup_io_input_native;
225 rollup_io_input_native.reconstruct_from_public(public_inputs);
228 EXPECT_EQ(rollup_io_input_native.pairing_inputs.P0(), P0_val);
229 EXPECT_EQ(rollup_io_input_native.pairing_inputs.P1(), P1_val);
230 EXPECT_EQ(rollup_io_input_native.ipa_claim.opening_pair.challenge, challenge_val);
231 EXPECT_EQ(rollup_io_input_native.ipa_claim.opening_pair.evaluation, evaluation_val);
232 EXPECT_EQ(rollup_io_input_native.ipa_claim.commitment, commitment_val);
246 using Curve = HidingIO::Curve;
247 using G1 = HidingIO::G1;
248 using FF = HidingIO::FF;
249 using PairingInputs = HidingIO::PairingInputs;
252 using G1Native = Curve::GroupNative::affine_element;
253 using FFNative = Curve::ScalarFieldNative;
255 static constexpr size_t NUM_WIRES = Builder::NUM_WIRES;
257 G1Native P0_val = G1Native::random_element();
258 G1Native P1_val = G1Native::random_element();
259 G1Native return_data_val = G1Native::random_element();
261 for (
auto& commitment : ecc_op_tables_val) {
262 commitment = G1Native::random_element();
271 HidingIO hiding_output;
274 PairingInputs pairing_inputs{ G1::from_witness(&
builder, P0_val), G1::from_witness(&
builder, P1_val) };
275 hiding_output.pairing_inputs = pairing_inputs;
276 hiding_output.kernel_return_data = G1::from_witness(&
builder, return_data_val);
278 for (
auto [table_commitment, table_val] :
zip_view(hiding_output.ecc_op_tables, ecc_op_tables_val)) {
279 table_commitment = G1::from_witness(&
builder, table_val);
283 hiding_output.set_public();
286 for (
const auto& idx :
builder.public_inputs()) {
287 public_inputs.push_back(
builder.get_variable(idx));
297 std::vector<FF> stdlib_public_inputs;
298 stdlib_public_inputs.reserve(public_inputs.size());
299 for (
const auto& val : public_inputs) {
300 stdlib_public_inputs.push_back(FF::from_witness(&
builder, val));
303 HidingIO hiding_input;
304 hiding_input.reconstruct_from_public(stdlib_public_inputs);
307 EXPECT_EQ(hiding_input.pairing_inputs.P0().get_value(), P0_val);
308 EXPECT_EQ(hiding_input.pairing_inputs.P1().get_value(), P1_val);
309 EXPECT_EQ(hiding_input.kernel_return_data.get_value(), return_data_val);
310 for (
auto [reconstructed_commitment, commitment] :
zip_view(hiding_input.ecc_op_tables, ecc_op_tables_val)) {
311 EXPECT_EQ(reconstructed_commitment.get_value(), commitment);
317 HidingIONative hiding_input_native;
318 hiding_input_native.reconstruct_from_public(public_inputs);
321 EXPECT_EQ(hiding_input_native.pairing_inputs.P0(), P0_val);
322 EXPECT_EQ(hiding_input_native.pairing_inputs.P1(), P1_val);
323 EXPECT_EQ(hiding_input_native.kernel_return_data, return_data_val);
324 for (
auto [reconstructed_commitment, commitment] :
325 zip_view(hiding_input_native.ecc_op_tables, ecc_op_tables_val)) {
326 EXPECT_EQ(reconstructed_commitment, commitment);