Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 41 additions & 41 deletions circuits/cpp/src/aztec3/circuits/rollup/merge/.test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,46 +28,46 @@ class merge_rollup_tests : public ::testing::Test {
protected:
static void SetUpTestSuite() { barretenberg::srs::init_crs_factory("../barretenberg/cpp/srs_db/ignition"); }

static void run_cbind(MergeRollupInputs& merge_rollup_inputs,
BaseOrMergeRollupPublicInputs& expected_public_inputs,
bool compare_pubins = true)
{
info("Retesting via cbinds....");
std::vector<uint8_t> merge_rollup_inputs_vec;
serialize::write(merge_rollup_inputs_vec, merge_rollup_inputs);

uint8_t const* public_inputs_buf = nullptr;
// info("simulating circuit via cbind");
size_t public_inputs_size = 0;
info("creating proof");
auto* circuit_failure_ptr =
merge_rollup__sim(merge_rollup_inputs_vec.data(), &public_inputs_size, &public_inputs_buf);
ASSERT_TRUE(circuit_failure_ptr == nullptr);
// info("PublicInputs size: ", public_inputs_size);

if (compare_pubins) {
BaseOrMergeRollupPublicInputs public_inputs;
uint8_t const* public_inputs_buf_tmp = public_inputs_buf;
serialize::read(public_inputs_buf_tmp, public_inputs);
ASSERT_EQ(public_inputs.calldata_hash.size(), expected_public_inputs.calldata_hash.size());
for (size_t i = 0; i < public_inputs.calldata_hash.size(); i++) {
ASSERT_EQ(public_inputs.calldata_hash[i], expected_public_inputs.calldata_hash[i]);
}

std::vector<uint8_t> expected_public_inputs_vec;
serialize::write(expected_public_inputs_vec, expected_public_inputs);

ASSERT_EQ(public_inputs_size, expected_public_inputs_vec.size());
// Just compare the first 10 bytes of the serialized public outputs
if (public_inputs_size > 10) {
// for (size_t 0; i < public_inputs_size; i++) {
for (size_t i = 0; i < 10; i++) {
ASSERT_EQ(public_inputs_buf[i], expected_public_inputs_vec[i]);
}
}
}
free((void*)public_inputs_buf);
}
// static void run_cbind(MergeRollupInputs& merge_rollup_inputs,
// BaseOrMergeRollupPublicInputs& expected_public_inputs,
// bool compare_pubins = true)
// {
// info("Retesting via cbinds....");
// std::vector<uint8_t> merge_rollup_inputs_vec;
// serialize::write(merge_rollup_inputs_vec, merge_rollup_inputs);

// uint8_t const* public_inputs_buf = nullptr;
// // info("simulating circuit via cbind");
// size_t public_inputs_size = 0;
// info("creating proof");
// auto* circuit_failure_ptr =
// merge_rollup__sim(merge_rollup_inputs_vec.data(), &public_inputs_size, &public_inputs_buf);
// ASSERT_TRUE(circuit_failure_ptr == nullptr);
// // info("PublicInputs size: ", public_inputs_size);

// if (compare_pubins) {
// BaseOrMergeRollupPublicInputs public_inputs;
// uint8_t const* public_inputs_buf_tmp = public_inputs_buf;
// serialize::read(public_inputs_buf_tmp, public_inputs);
// ASSERT_EQ(public_inputs.calldata_hash.size(), expected_public_inputs.calldata_hash.size());
// for (size_t i = 0; i < public_inputs.calldata_hash.size(); i++) {
// ASSERT_EQ(public_inputs.calldata_hash[i], expected_public_inputs.calldata_hash[i]);
// }

// std::vector<uint8_t> expected_public_inputs_vec;
// serialize::write(expected_public_inputs_vec, expected_public_inputs);

// ASSERT_EQ(public_inputs_size, expected_public_inputs_vec.size());
// // Just compare the first 10 bytes of the serialized public outputs
// if (public_inputs_size > 10) {
// // for (size_t 0; i < public_inputs_size; i++) {
// for (size_t i = 0; i < 10; i++) {
// ASSERT_EQ(public_inputs_buf[i], expected_public_inputs_vec[i]);
// }
// }
// }
// free((void*)public_inputs_buf);
// }
};

TEST_F(merge_rollup_tests, native_different_rollup_type_fails)
Expand Down Expand Up @@ -299,6 +299,6 @@ TEST_F(merge_rollup_tests, native_merge_cbind)

ASSERT_FALSE(builder.failed());
BaseOrMergeRollupPublicInputs ignored_public_inputs;
run_cbind(inputs, ignored_public_inputs, false);
// run_cbind(inputs, ignored_public_inputs, false);
}
} // namespace aztec3::circuits::rollup::merge::native_merge_rollup_circuit
26 changes: 4 additions & 22 deletions circuits/cpp/src/aztec3/circuits/rollup/merge/c_bind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,14 @@
namespace {
using NT = aztec3::utils::types::NativeTypes;
using DummyCircuitBuilder = aztec3::utils::DummyCircuitBuilder;
using aztec3::circuits::abis::BaseOrMergeRollupPublicInputs;
using aztec3::circuits::abis::MergeRollupInputs;
using aztec3::circuits::rollup::merge::merge_rollup_circuit;
} // namespace

// WASM Cbinds
extern "C" {

WASM_EXPORT uint8_t* merge_rollup__sim(uint8_t const* merge_rollup_inputs_buf,
size_t* merge_rollup_public_inputs_size_out,
uint8_t const** merge_rollup_public_inputs_buf)
{
CBIND(merge_rollup__sim, [](MergeRollupInputs<NT> const& merge_rollup_inputs) {
DummyCircuitBuilder builder = DummyCircuitBuilder("merge_rollup__sim");
MergeRollupInputs<NT> merge_rollup_inputs;
serialize::read(merge_rollup_inputs_buf, merge_rollup_inputs);

BaseOrMergeRollupPublicInputs const public_inputs = merge_rollup_circuit(builder, merge_rollup_inputs);

// serialize public inputs to bytes vec
std::vector<uint8_t> public_inputs_vec;
serialize::write(public_inputs_vec, public_inputs);
// copy public inputs to output buffer
auto* raw_public_inputs_buf = (uint8_t*)malloc(public_inputs_vec.size());
memcpy(raw_public_inputs_buf, (void*)public_inputs_vec.data(), public_inputs_vec.size());
*merge_rollup_public_inputs_buf = raw_public_inputs_buf;
*merge_rollup_public_inputs_size_out = public_inputs_vec.size();
return builder.alloc_and_serialize_first_failure();
}
} // extern "C"
auto const& public_inputs = merge_rollup_circuit(builder, merge_rollup_inputs);
return builder.result_or_error(public_inputs);
});
7 changes: 1 addition & 6 deletions circuits/cpp/src/aztec3/circuits/rollup/merge/c_bind.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,4 @@
#include <cstddef>
#include <cstdint>

extern "C" {

WASM_EXPORT uint8_t* merge_rollup__sim(uint8_t const* merge_rollup_inputs_buf,
size_t* merge_rollup_public_inputs_size_out,
uint8_t const** merge_rollup_public_inputs_buf);
}
CBIND_DECL(merge_rollup__sim);
6 changes: 2 additions & 4 deletions yarn-project/aztec-rpc/src/kernel_prover/proof_creator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,9 @@ export class KernelProofCreator implements ProofCreator {
const proof = makeEmptyProof();
this.log('Ordering Kernel Prover Ordering Completed!');

const publicInputs = result as KernelCircuitPublicInputsFinal;

return {
publicInputs,
proof,
publicInputs: result,
proof: proof,
};
}
}
Loading