forked from argumentcomputer/solidity-verifier
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Automatic generating of proof / public parameters JSONs (argumentcomp…
…uter#53) * added CI scrypt for generating pk and compression-snark from Nova repo commit * Changed CI e2e configuration to work with NOVA_URL and NOVA_COMMIT params. Python script changed to work with any version of nova commit. PS: Previous test on nova/src/lib.rs can be removed. * Changed Script name. Return back from generating test in runtime * Changed Script name. Return back from generating test in runtime * Changed Script and CI config. --------- Co-authored-by: Artem <asamblers@gmail.com>
- Loading branch information
1 parent
34505f6
commit d69493c
Showing
3 changed files
with
75 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import subprocess | ||
import sys | ||
import os | ||
import re | ||
|
||
file_path = 'rust-reference-info.txt' | ||
|
||
def parse_variables_from_file(file_path): | ||
variables = {} | ||
with open(file_path, 'r') as file: | ||
content = file.read() | ||
# Define regex patterns for matching variables | ||
nova_url_pattern = r'\$NOVA_URL\s*=\s*\"(.+?)\"' | ||
nova_commit_pattern = r'\$NOVA_COMMIT\s*=\s*\"(.+?)\"' | ||
|
||
# Match variables using regular expressions | ||
nova_url_match = re.search(nova_url_pattern, content) | ||
nova_commit_match = re.search(nova_commit_pattern, content) | ||
|
||
# Extract matched variables | ||
if nova_url_match: | ||
variables['NOVA_URL'] = nova_url_match.group(1) | ||
if nova_commit_match: | ||
variables['NOVA_COMMIT'] = nova_commit_match.group(1) | ||
|
||
return variables | ||
|
||
# python generate_contract_input.py https://github.com/artem-bakuta/Nova.git 3838031868ca3f2783c01299546849860bfd36d2 | ||
if __name__ == "__main__": | ||
nova_repo_arg = "" | ||
nova_commit_arg = "" | ||
|
||
if len(sys.argv) > 1: | ||
nova_repo_arg = sys.argv[1] | ||
nova_commit_arg = sys.argv[2] | ||
|
||
# Configurations | ||
parsed_variables = parse_variables_from_file(file_path) | ||
nova_repo_url = nova_repo_arg if nova_repo_arg else parsed_variables['NOVA_URL'] | ||
nova_commit_hash = nova_commit_arg if nova_commit_arg else parsed_variables['NOVA_COMMIT'] | ||
print("Pulling project from: " + nova_repo_url + " " + nova_commit_hash) | ||
target_directory = "verify_cache" | ||
nova_directory = "nova" | ||
|
||
if os.path.exists(target_directory): | ||
subprocess.run(['rm', '-rf', target_directory], check=True) | ||
os.mkdir(target_directory) | ||
os.mkdir(target_directory + "/" + nova_directory) | ||
os.chdir(target_directory) | ||
os.system(f"git clone {nova_repo_url} {nova_directory}") | ||
os.chdir(nova_directory) | ||
os.system(f"git checkout {nova_commit_hash}") | ||
|
||
# Build the Nova project | ||
os.system(f"cargo test solidity_compatibility_e2e_pasta --release -- --ignored") | ||
print("Copy generated keys from Nova...") | ||
os.system(f"cp vk.json compressed-snark.json ../../.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# generate_contract_input.py script params | ||
|
||
# NOVA_URL variable | ||
$NOVA_URL = "https://github.com/lurk-lab/Nova.git" | ||
|
||
# NOVA_COMMIT variable | ||
$NOVA_COMMIT = "d5f5fb5e557b99cb111f2d5693aa34fe30722750" |