diff --git a/include/nil/blueprint/transpiler/evm_verifier_gen.hpp b/include/nil/blueprint/transpiler/evm_verifier_gen.hpp index b9011d5..dae19dd 100644 --- a/include/nil/blueprint/transpiler/evm_verifier_gen.hpp +++ b/include/nil/blueprint/transpiler/evm_verifier_gen.hpp @@ -318,6 +318,7 @@ namespace nil { } _permutation_offset = _variable_values_offset; + _public_input_offset = _variable_values_offset; for( std::size_t i = 0; i < PlaceholderParams::arithmetization_params::witness_columns + PlaceholderParams::arithmetization_params::public_input_columns; i++){ if(i == PlaceholderParams::arithmetization_params::witness_columns){ _public_input_offset = _permutation_offset; diff --git a/include/nil/blueprint/transpiler/templates/modular_verifier.hpp b/include/nil/blueprint/transpiler/templates/modular_verifier.hpp index 8477f8c..089b685 100644 --- a/include/nil/blueprint/transpiler/templates/modular_verifier.hpp +++ b/include/nil/blueprint/transpiler/templates/modular_verifier.hpp @@ -9,12 +9,12 @@ namespace nil { { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; + uint256 lookup_commitment = basic_marshalling.get_uint256_be(blob, 0x81); ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( -// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_$TEST_NAME$.verify( blob[special_selectors_offset: table_offset + quotient_offset], blob[lookup_offset:lookup_offset + sorted_columns * 0x60], - basic_marshalling.get_uint256_be(blob, 0x81), + lookup_commitment, state.l0, tr_state.current_challenge ); @@ -191,6 +191,7 @@ contract modular_verifier_$TEST_NAME$ is IModularVerifier{ state.F[2] = permutation_argument[2]; } + //4. Lookup library call $LOOKUP_LIBRARY_CALL$ //5. Push permutation batch to transcript