certora-cli-alpha-master 20241225.10.19.754960__tar.gz → 20241225.17.56.777880__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of certora-cli-alpha-master might be problematic. Click here for more details.
- {certora_cli_alpha_master-20241225.10.19.754960/certora_cli_alpha_master.egg-info → certora_cli_alpha_master-20241225.17.56.777880}/PKG-INFO +3 -2
- certora_cli_alpha_master-20241225.17.56.777880/README.md +1 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraBuildRust.py +7 -7
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraCloudIO.py +5 -5
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraConfigIO.py +10 -8
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraContextAttributes.py +32 -1
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraParseBuildScript.py +22 -3
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/certoraAttrUtil.py +1 -1
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/certoraValidateFuncs.py +11 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880/certora_cli_alpha_master.egg-info}/PKG-INFO +3 -2
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli_alpha_master.egg-info/requires.txt +1 -0
- certora_cli_alpha_master-20241225.17.56.777880/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_jars/Typechecker.jar +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/setup.py +3 -3
- certora_cli_alpha_master-20241225.10.19.754960/README.md +0 -1
- certora_cli_alpha_master-20241225.10.19.754960/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/LICENSE +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/MANIFEST.in +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_bins/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollector.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollectorFactory.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollectorSol.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollectorSolBased.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollectorVy.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/CompilerCollectorYul.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/Compiler/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraBuild.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraBuildCacheManager.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraBuildDataClasses.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraCollectRunMetadata.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraCompilerParameters.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraContext.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraContextClass.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraContextValidator.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraContractFuncs.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraExtensionInfo.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraJobList.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraMiniSpecParser.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraNodeFilters.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraSourceFinders.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraType.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EVMVerifier/certoraVerifyGenerator.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/mutateApp.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/mutateAttributes.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/mutateConstants.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/mutateUtil.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Mutate/mutateValidate.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/ExpectedComparator.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/certoraLogging.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/Shared/certoraUtils.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraEVMProver.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraEqCheck.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraMutate.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraRun.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraSolanaProver.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/certoraSorobanProver.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli/rustMutator.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli_alpha_master.egg-info/SOURCES.txt +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli_alpha_master.egg-info/dependency_links.txt +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli_alpha_master.egg-info/entry_points.txt +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_cli_alpha_master.egg-info/top_level.txt +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/certora_jars/__init__.py +0 -0
- {certora_cli_alpha_master-20241225.10.19.754960 → certora_cli_alpha_master-20241225.17.56.777880}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: certora-cli-alpha-master
|
3
|
-
Version: 20241225.
|
3
|
+
Version: 20241225.17.56.777880
|
4
4
|
Summary: Runner for the Certora Prover
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-alpha-master
|
6
6
|
Author: Certora
|
@@ -22,5 +22,6 @@ Requires-Dist: tqdm
|
|
22
22
|
Requires-Dist: StrEnum
|
23
23
|
Requires-Dist: tomli
|
24
24
|
Requires-Dist: universalmutator
|
25
|
+
Requires-Dist: jinja2
|
25
26
|
|
26
|
-
Commit
|
27
|
+
Commit b803960. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
@@ -0,0 +1 @@
|
|
1
|
+
Commit b803960. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
@@ -60,10 +60,10 @@ def copy_files_to_build_dir(context: CertoraContext, root_directory: Path) -> No
|
|
60
60
|
rust_executable = root_directory / context.rust_executables
|
61
61
|
shutil.copyfile(rust_executable, Util.get_build_dir() / rust_executable.name)
|
62
62
|
|
63
|
-
if context.
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
63
|
+
if hasattr(context, 'solana_inlining') and context.solana_inlining:
|
64
|
+
solana_inlining = Path(context.solana_inlining).resolve()
|
65
|
+
shutil.copy(solana_inlining, Util.get_build_dir() / solana_inlining.name)
|
66
|
+
|
67
|
+
if hasattr(context, 'solana_summaries') and context.solana_summaries:
|
68
|
+
solana_summaries = Path(context.solana_summaries).resolve()
|
69
|
+
shutil.copy(solana_summaries, Util.get_build_dir() / solana_summaries.name)
|
@@ -749,11 +749,11 @@ class CloudVerification:
|
|
749
749
|
|
750
750
|
files_list.append(Util.get_build_dir() / Path(self.context.rust_executables).name)
|
751
751
|
|
752
|
-
if self.context.
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
752
|
+
if hasattr(self.context, 'solana_inlining') and self.context.solana_inlining:
|
753
|
+
files_list.append(Util.get_build_dir() / Path(self.context.solana_inlining).name)
|
754
|
+
|
755
|
+
if hasattr(self.context, 'solana_summaries') and self.context.solana_summaries:
|
756
|
+
files_list.append(Util.get_build_dir() / Path(self.context.solana_summaries).name)
|
757
757
|
|
758
758
|
result = compress_files(self.ZipFilePath, *files_list,
|
759
759
|
short_output=Ctx.is_minimal_cli_output(self.context))
|
@@ -61,7 +61,7 @@ def read_from_conf_file(context: CertoraContext) -> None:
|
|
61
61
|
try:
|
62
62
|
check_conf_content(configuration, context)
|
63
63
|
except Util.CertoraUserInputError as e:
|
64
|
-
raise Util.CertoraUserInputError(f"Error when reading {conf_file_path}", e) from None
|
64
|
+
raise Util.CertoraUserInputError(f"Error when reading {conf_file_path}: {str(e)}", e) from None
|
65
65
|
context.conf_file = str(conf_file_path)
|
66
66
|
|
67
67
|
|
@@ -86,10 +86,12 @@ def check_conf_content(conf: Dict[str, Any], context: CertoraContext) -> None:
|
|
86
86
|
else:
|
87
87
|
raise Util.CertoraUserInputError(f"{option} appears in the conf file but is not a known attribute. ")
|
88
88
|
|
89
|
-
if 'files' not in conf:
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
89
|
+
if Attrs.is_evm_app() and 'files' not in conf:
|
90
|
+
raise Util.CertoraUserInputError("Mandatory 'files' attribute is missing from the configuration")
|
91
|
+
|
92
|
+
if Attrs.is_rust_app():
|
93
|
+
has_build_script = getattr(context, 'build_script', False)
|
94
|
+
if not has_build_script and 'files' not in conf:
|
95
|
+
raise Util.CertoraUserInputError("Mandatory 'build_script' or 'files' attribute is missing from the configuration")
|
96
|
+
|
97
|
+
context.files = conf.get('files')
|
@@ -1389,7 +1389,8 @@ class BackendAttributes(AttrUtil.Attributes):
|
|
1389
1389
|
class RustAttributes(AttrUtil.Attributes):
|
1390
1390
|
|
1391
1391
|
BUILD_SCRIPT = AttrUtil.AttributeDefinition(
|
1392
|
-
|
1392
|
+
attr_validation_func=Vf.validate_exec_file,
|
1393
|
+
help_msg="script to build a rust project",
|
1393
1394
|
default_desc="Using default building command",
|
1394
1395
|
argparse_args={
|
1395
1396
|
'action': AttrUtil.UniqueStore
|
@@ -1398,6 +1399,16 @@ class RustAttributes(AttrUtil.Attributes):
|
|
1398
1399
|
disables_build_cache=False
|
1399
1400
|
)
|
1400
1401
|
|
1402
|
+
CARGO_FEATURES = AttrUtil.AttributeDefinition(
|
1403
|
+
attr_validation_func=Vf.validate_non_empty_string,
|
1404
|
+
help_msg="a white space separated list of strings that are extra features passed to the build_script",
|
1405
|
+
argparse_args={
|
1406
|
+
'action': AttrUtil.UniqueStore
|
1407
|
+
},
|
1408
|
+
affects_build_cache_key=False,
|
1409
|
+
disables_build_cache=False
|
1410
|
+
)
|
1411
|
+
|
1401
1412
|
|
1402
1413
|
class EvmProverAttributes(CommonAttributes, DeprecatedAttributes, EvmAttributes, InternalUseAttributes,
|
1403
1414
|
BackendAttributes):
|
@@ -1442,6 +1453,26 @@ class SolanaProverAttributes(CommonAttributes, InternalUseAttributes, BackendAtt
|
|
1442
1453
|
disables_build_cache=False
|
1443
1454
|
)
|
1444
1455
|
|
1456
|
+
SOLANA_INLINING = AttrUtil.AttributeDefinition(
|
1457
|
+
attr_validation_func=Vf.validate_readable_file,
|
1458
|
+
help_msg="a path for the inlining file for Solana contract",
|
1459
|
+
argparse_args={
|
1460
|
+
'action': AttrUtil.UniqueStore
|
1461
|
+
},
|
1462
|
+
affects_build_cache_key=False,
|
1463
|
+
disables_build_cache=False
|
1464
|
+
)
|
1465
|
+
|
1466
|
+
SOLANA_SUMMARIES = AttrUtil.AttributeDefinition(
|
1467
|
+
attr_validation_func=Vf.validate_readable_file,
|
1468
|
+
help_msg="a path for the summaries file for Solana contract",
|
1469
|
+
argparse_args={
|
1470
|
+
'action': AttrUtil.UniqueStore
|
1471
|
+
},
|
1472
|
+
affects_build_cache_key=False,
|
1473
|
+
disables_build_cache=False
|
1474
|
+
)
|
1475
|
+
|
1445
1476
|
|
1446
1477
|
ATTRIBUTES_CLASS: Optional[Type[AttrUtil.Attributes]] = None
|
1447
1478
|
|
@@ -13,7 +13,12 @@ def run_script_and_parse_json(context: CertoraContext) -> None:
|
|
13
13
|
return
|
14
14
|
try:
|
15
15
|
build_script_logger.info(f"Building from script {context.build_script}")
|
16
|
-
|
16
|
+
run_cmd = [context.build_script, '--json']
|
17
|
+
if context.cargo_features is not None:
|
18
|
+
run_cmd.append('--cargo_features')
|
19
|
+
for feature in context.cargo_features.split(' '):
|
20
|
+
run_cmd.append(feature)
|
21
|
+
result = subprocess.run(run_cmd, capture_output=True, text=True)
|
17
22
|
|
18
23
|
# Check if the script executed successfully
|
19
24
|
if result.returncode != 0:
|
@@ -21,13 +26,27 @@ def run_script_and_parse_json(context: CertoraContext) -> None:
|
|
21
26
|
|
22
27
|
json_obj = json.loads(result.stdout)
|
23
28
|
|
24
|
-
if not json_obj
|
25
|
-
raise Util.CertoraUserInputError(f"
|
29
|
+
if not json_obj:
|
30
|
+
raise Util.CertoraUserInputError(f"No JSON output from build script {context.build_script}")
|
31
|
+
|
32
|
+
if missing_keys := [key for key in ["success", "project_directory", "sources", "executables"] if key not in json_obj]:
|
33
|
+
raise Util.CertoraUserInputError(f"Missing required keys in build script response: {', '.join(missing_keys)}")
|
34
|
+
|
35
|
+
if not json_obj.get("success"):
|
36
|
+
raise Util.CertoraUserInputError(
|
37
|
+
f"Compilation failed using build script: {context.build_script}\n"
|
38
|
+
f"Success value in JSON response is False."
|
39
|
+
)
|
26
40
|
|
27
41
|
context.rust_project_directory = json_obj.get("project_directory")
|
28
42
|
context.rust_sources = json_obj.get("sources")
|
29
43
|
context.rust_executables = json_obj.get("executables")
|
30
44
|
|
45
|
+
if context.test == str(Util.TestValue.AFTER_BUILD_RUST):
|
46
|
+
raise Util.TestResultsReady(None)
|
47
|
+
|
48
|
+
except Util.TestResultsReady as e:
|
49
|
+
raise e
|
31
50
|
except FileNotFoundError as e:
|
32
51
|
raise Util.CertoraUserInputError(f"File not found: {e}")
|
33
52
|
except json.JSONDecodeError as e:
|
@@ -100,7 +100,7 @@ class AttributeDefinition:
|
|
100
100
|
self.attr_validation_func(value)
|
101
101
|
except Util.CertoraUserInputError as e:
|
102
102
|
msg = f"attribute/flag '{self.name.lower()}': {e}"
|
103
|
-
if cli_flag and isinstance(value, str) and value.strip()[0] == '-':
|
103
|
+
if cli_flag and isinstance(value, str) and value and value.strip()[0] == '-':
|
104
104
|
flag_error = f'{value}: Please remember, CLI flags should be preceded with double dashes. ' \
|
105
105
|
f'{Util.NEW_LINE}For more help run the tool with the option --help'
|
106
106
|
msg = flag_error + msg
|
@@ -152,6 +152,17 @@ def validate_non_negative_integer(string: str) -> str:
|
|
152
152
|
return string
|
153
153
|
|
154
154
|
|
155
|
+
def validate_non_empty_string(value: str) -> str:
|
156
|
+
"""
|
157
|
+
:param value: A string
|
158
|
+
:return: The same string, if the string represents a non-empty string
|
159
|
+
:raises CertoraUserInputError if the string is empty
|
160
|
+
"""
|
161
|
+
if not value:
|
162
|
+
raise Util.CertoraUserInputError('expected a non-empty string')
|
163
|
+
return value
|
164
|
+
|
165
|
+
|
155
166
|
def validate_manual_mutants(value: Any) -> Any:
|
156
167
|
return validate_mutant_attributes(value, Constants.MANUAL_MUTANTS)
|
157
168
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: certora-cli-alpha-master
|
3
|
-
Version: 20241225.
|
3
|
+
Version: 20241225.17.56.777880
|
4
4
|
Summary: Runner for the Certora Prover
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-alpha-master
|
6
6
|
Author: Certora
|
@@ -22,5 +22,6 @@ Requires-Dist: tqdm
|
|
22
22
|
Requires-Dist: StrEnum
|
23
23
|
Requires-Dist: tomli
|
24
24
|
Requires-Dist: universalmutator
|
25
|
+
Requires-Dist: jinja2
|
25
26
|
|
26
|
-
Commit
|
27
|
+
Commit b803960. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "b803960", "timestamp": "20241225.17.56.777880", "version": "20241225.17.56.777880+b803960"}
|
Binary file
|
@@ -3,16 +3,16 @@ import setuptools
|
|
3
3
|
|
4
4
|
setuptools.setup(
|
5
5
|
name="certora-cli-alpha-master",
|
6
|
-
version="20241225.
|
6
|
+
version="20241225.17.56.777880",
|
7
7
|
author="Certora",
|
8
8
|
author_email="support@certora.com",
|
9
9
|
description="Runner for the Certora Prover",
|
10
|
-
long_description="Commit
|
10
|
+
long_description="Commit b803960. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.",
|
11
11
|
long_description_content_type="text/markdown",
|
12
12
|
url="https://pypi.org/project/certora-cli-alpha-master",
|
13
13
|
packages=setuptools.find_packages(),
|
14
14
|
include_package_data=True,
|
15
|
-
install_requires=['click', 'json5', 'pycryptodome', 'requests', 'rich', 'sly', 'tabulate', 'tqdm', 'StrEnum', 'tomli', 'universalmutator'],
|
15
|
+
install_requires=['click', 'json5', 'pycryptodome', 'requests', 'rich', 'sly', 'tabulate', 'tqdm', 'StrEnum', 'tomli', 'universalmutator', 'jinja2'],
|
16
16
|
classifiers=[
|
17
17
|
"Programming Language :: Python :: 3",
|
18
18
|
"License :: OSI Approved :: MIT License",
|
@@ -1 +0,0 @@
|
|
1
|
-
Commit 2b6e11a. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
certora_cli_alpha_master-20241225.10.19.754960/certora_jars/CERTORA-CLI-VERSION-METADATA.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "2b6e11a", "timestamp": "20241225.10.19.754960", "version": "20241225.10.19.754960+2b6e11a"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|