Skip to content
This repository was archived by the owner on Feb 17, 2025. It is now read-only.

Commit 5f18a2a

Browse files
committed
External lookups #21
1 parent d0da82e commit 5f18a2a

File tree

2 files changed

+7
-23
lines changed

2 files changed

+7
-23
lines changed

include/nil/blueprint/transpiler/templates/lookup_argument.hpp

+3-21
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,6 @@
55

66
namespace nil {
77
namespace blueprint {
8-
/* std::string lookup_library_call = R"(
9-
{
10-
uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20;
11-
uint256[4] memory lookup_argument;
12-
(lookup_argument, tr_state.current_challenge) = modular_lookup_argument_$TEST_NAME$.verify(
13-
blob[special_selectors_offset: table_offset + quotient_offset],
14-
blob[lookup_offset:lookup_offset + sorted_columns * 0x20],
15-
basic_marshalling.get_uint256_be(blob, 0x81),
16-
l0,
17-
tr_state.current_challenge
18-
);
19-
F[3] = lookup_argument[0];
20-
F[4] = lookup_argument[1];
21-
F[5] = lookup_argument[2];
22-
F[6] = lookup_argument[3];
23-
}
24-
)";
25-
*/
268
std::string modular_dummy_lookup_argument_library_template = R"(
279
// SPDX-License-Identifier: Apache-2.0.
2810
//---------------------------------------------------------------------------//
@@ -81,8 +63,8 @@ import "../../cryptography/transcript.sol";
8163
import "../../interfaces/modular_lookup_argument.sol";
8264
import "hardhat/console.sol";
8365
84-
//contract modular_lookup_argument_$TEST_NAME$ is ILookupArgument{
85-
library modular_lookup_argument_$TEST_NAME${
66+
contract modular_lookup_argument_$TEST_NAME$ is ILookupArgument{
67+
//library modular_lookup_argument_$TEST_NAME${
8668
uint256 constant modulus = $MODULUS$;
8769
uint8 constant tables = 1;
8870
uint8 constant sorted_columns = $SORTED_COLUMNS_NUMBER$;
@@ -115,7 +97,7 @@ library modular_lookup_argument_$TEST_NAME${
11597
uint256 lookup_commitment,
11698
uint256 l0,
11799
bytes32 tr_state_before // It's better than transfer all random values
118-
) internal view returns (uint256[4] memory F, bytes32 tr_state_after){
100+
) external view returns (uint256[4] memory F, bytes32 tr_state_after){
119101
bytes calldata blob = zvalues[0xc0:];
120102
lookup_state memory state;
121103
state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + $PERMUTATION_TABLE_OFFSET$ + 0x40);

include/nil/blueprint/transpiler/templates/modular_verifier.hpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ namespace nil {
99
{
1010
uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20;
1111
uint256[4] memory lookup_argument;
12-
(lookup_argument, tr_state.current_challenge) = modular_lookup_argument_$TEST_NAME$.verify(
12+
ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address);
13+
(lookup_argument, tr_state.current_challenge) = lookup_contract.verify(
14+
// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_$TEST_NAME$.verify(
1315
blob[special_selectors_offset: table_offset + quotient_offset],
14-
blob[lookup_offset:lookup_offset + sorted_columns * 0x20],
16+
blob[lookup_offset:lookup_offset + sorted_columns * 0x60],
1517
basic_marshalling.get_uint256_be(blob, 0x81),
1618
state.l0,
1719
tr_state.current_challenge

0 commit comments

Comments
 (0)