certora-cli-beta-mirror 8.2.0__tar.gz → 8.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {certora_cli_beta_mirror-8.2.0/certora_cli_beta_mirror.egg-info → certora_cli_beta_mirror-8.2.2}/PKG-INFO +2 -2
- certora_cli_beta_mirror-8.2.2/README.md +1 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraBuild.py +36 -15
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraContext.py +13 -10
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateValidate.py +12 -4
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraRun.py +0 -4
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2/certora_cli_beta_mirror.egg-info}/PKG-INFO +2 -2
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli_beta_mirror.egg-info/SOURCES.txt +0 -1
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_jars/ASTExtraction.jar +0 -0
- certora_cli_beta_mirror-8.2.2/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_jars/Typechecker.jar +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/setup.py +2 -2
- certora_cli_beta_mirror-8.2.0/README.md +0 -1
- certora_cli_beta_mirror-8.2.0/certora_cli/CertoraProver/concordance.py +0 -939
- certora_cli_beta_mirror-8.2.0/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/LICENSE +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/MANIFEST.in +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_bins/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraApp.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraBuildDataClasses.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraBuildRust.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraBuildSui.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraCloudIO.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraContextAttributes.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraJobList.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraType.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/erc7201.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/splitRules.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/CertoraProver/storageExtension.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateApp.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateAttributes.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateConstants.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateUtil.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/ExpectedComparator.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/certoraAttrUtil.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/certoraLogging.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/certoraUtils.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/certoraValidateFuncs.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Shared/proverCommon.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraCVLFormatter.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraConcord.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraEVMProver.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraEqCheck.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraMutate.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraRanger.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraSolanaProver.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/certoraSorobanProver.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/rustMutator.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli_beta_mirror.egg-info/dependency_links.txt +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli_beta_mirror.egg-info/entry_points.txt +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli_beta_mirror.egg-info/requires.txt +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli_beta_mirror.egg-info/top_level.txt +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_jars/__init__.py +0 -0
- {certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli-beta-mirror
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.2
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-beta-mirror
|
|
6
6
|
Author: Certora
|
|
@@ -39,4 +39,4 @@ Dynamic: requires-dist
|
|
|
39
39
|
Dynamic: requires-python
|
|
40
40
|
Dynamic: summary
|
|
41
41
|
|
|
42
|
-
Commit
|
|
42
|
+
Commit 04cd39e. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Commit 04cd39e. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -203,11 +203,18 @@ class PresetImmutableReference(ImmutableReference):
|
|
|
203
203
|
# this function is Solidity specific.
|
|
204
204
|
# todo: create certoraBuildUtilsSol.py file, where such solidity specific functions will be.
|
|
205
205
|
def generate_finder_body(f: Func, internal_id: int, sym: int, compiler_collector: CompilerCollectorSol,
|
|
206
|
-
compressed: bool = False
|
|
206
|
+
compressed: bool = False,
|
|
207
|
+
should_generate_inlining: bool = True) -> Optional[Tuple[List[int], str]]:
|
|
207
208
|
if compressed:
|
|
208
209
|
return generate_compressed_finder(
|
|
209
210
|
f, internal_id, sym, compiler_collector
|
|
210
211
|
)
|
|
212
|
+
elif not should_generate_inlining:
|
|
213
|
+
# We should not generate inlining as reported in CERT-9399, only when compressed=False.
|
|
214
|
+
# used_symbols is being generated the exact same way as in generate_full_finder
|
|
215
|
+
used_symbols = [i for i in range(len(f.fullArgs))]
|
|
216
|
+
return used_symbols, ''
|
|
217
|
+
|
|
211
218
|
else:
|
|
212
219
|
return generate_full_finder(
|
|
213
220
|
f, internal_id, sym, compiler_collector
|
|
@@ -403,8 +410,9 @@ def get_modifier_param_type_name(ind: int, def_node: Dict[str, Any], f: Func) ->
|
|
|
403
410
|
|
|
404
411
|
def generate_modifier_finder(f: Func, internal_id: int, sym: int,
|
|
405
412
|
compiler_collector: CompilerCollectorSol, def_node: Dict[str, Any],
|
|
406
|
-
compress: bool) -> Optional[Tuple[str, str]]:
|
|
407
|
-
compressed = generate_finder_body(f, internal_id, sym, compiler_collector, compressed=compress
|
|
413
|
+
compress: bool, should_generate_inlining: bool) -> Optional[Tuple[str, str]]:
|
|
414
|
+
compressed = generate_finder_body(f, internal_id, sym, compiler_collector, compressed=compress,
|
|
415
|
+
should_generate_inlining=should_generate_inlining)
|
|
408
416
|
if compressed is None:
|
|
409
417
|
return None
|
|
410
418
|
modifier_name = f"logInternal{internal_id}"
|
|
@@ -427,9 +435,10 @@ def generate_modifier_finder(f: Func, internal_id: int, sym: int,
|
|
|
427
435
|
return f'{modifier_name}({",".join(arg_strings)})', modifier_body
|
|
428
436
|
|
|
429
437
|
|
|
430
|
-
def generate_inline_finder(f: Func, internal_id: int, sym: int,
|
|
431
|
-
|
|
432
|
-
finder = generate_finder_body(f, internal_id, sym, compiler_collector, compressed=should_compress
|
|
438
|
+
def generate_inline_finder(f: Func, internal_id: int, sym: int, compiler_collector: CompilerCollectorSol,
|
|
439
|
+
should_compress: bool, should_generate_inlining: bool) -> Optional[str]:
|
|
440
|
+
finder = generate_finder_body(f, internal_id, sym, compiler_collector, compressed=should_compress,
|
|
441
|
+
should_generate_inlining=should_generate_inlining)
|
|
433
442
|
if finder is None:
|
|
434
443
|
return None
|
|
435
444
|
return finder[1]
|
|
@@ -2448,6 +2457,19 @@ class CertoraBuildGenerator:
|
|
|
2448
2457
|
# (deprecate this option later)
|
|
2449
2458
|
should_compress = self.context.function_finder_mode == Vf.FunctionFinderMode.DEFAULT.name
|
|
2450
2459
|
|
|
2460
|
+
if self.context.solc_optimize and self.get_solc_via_ir_value(Path(contract_file)) and \
|
|
2461
|
+
any(param_name == "" for param_name in f.paramNames):
|
|
2462
|
+
# As reported in CERT-9399, we should not generate function finder for this edge case
|
|
2463
|
+
|
|
2464
|
+
instrumentation_logger.warning(f"Failed to generate auto finder for {f.name} @ {f.where()}.")
|
|
2465
|
+
instrumentation_logger.warning(
|
|
2466
|
+
"Cannot apply summaries for internal functions with unnamed argument when compiling "
|
|
2467
|
+
"using solc_optimize and solc_via_ir"
|
|
2468
|
+
)
|
|
2469
|
+
should_generate_inlining = False
|
|
2470
|
+
else:
|
|
2471
|
+
should_generate_inlining = True
|
|
2472
|
+
|
|
2451
2473
|
if len(mods) > 0:
|
|
2452
2474
|
# we need to add the instrumentation in a modifer because solidity modifiers will (potentially)
|
|
2453
2475
|
# appear before any instrumentation we add to the literal source body, which will tank the detection
|
|
@@ -2459,8 +2481,10 @@ class CertoraBuildGenerator:
|
|
|
2459
2481
|
# where in the source such modifiers will go. In order to insert a modifier, we have to have at
|
|
2460
2482
|
# least one modifier already present, and then insert before the first modifier's location in the
|
|
2461
2483
|
# source code
|
|
2462
|
-
mod_inst = generate_modifier_finder(
|
|
2463
|
-
|
|
2484
|
+
mod_inst = generate_modifier_finder(
|
|
2485
|
+
f, internal_id, function_symbol, sdc.compiler_collector, def_node,
|
|
2486
|
+
compress=should_compress, should_generate_inlining=should_generate_inlining
|
|
2487
|
+
)
|
|
2464
2488
|
if mod_inst is None:
|
|
2465
2489
|
instrumentation_logger.debug(f"Modifier generation for {f.name} @ {f.where()} failed")
|
|
2466
2490
|
return None
|
|
@@ -2494,8 +2518,8 @@ class CertoraBuildGenerator:
|
|
|
2494
2518
|
per_file_inst[first_mod_offset] = Instrumentation(expected=bytes(modifier_name[0:1], "utf-8"),
|
|
2495
2519
|
to_ins=modifier_invocation, mut=InsertBefore())
|
|
2496
2520
|
else:
|
|
2497
|
-
finder_res = generate_inline_finder(f, internal_id, function_symbol,
|
|
2498
|
-
|
|
2521
|
+
finder_res = generate_inline_finder(f, internal_id, function_symbol, sdc.compiler_collector,
|
|
2522
|
+
should_compress, should_generate_inlining)
|
|
2499
2523
|
if finder_res is None:
|
|
2500
2524
|
instrumentation_logger.debug(f"Generating auto finder for {f.name} @ {f.where()}"
|
|
2501
2525
|
f" failed, giving up generation")
|
|
@@ -2676,7 +2700,7 @@ class CertoraBuildGenerator:
|
|
|
2676
2700
|
Ctx.run_local_spec_check(False, context, ["-listCalls", tmp_file.name], print_errors=False)
|
|
2677
2701
|
spec_calls = tmp_file.read().split("\n")
|
|
2678
2702
|
except Exception as e:
|
|
2679
|
-
instrumentation_logger.
|
|
2703
|
+
instrumentation_logger.debug(f"Failed to get calls from spec\n{e}")
|
|
2680
2704
|
|
|
2681
2705
|
self.context.remappings = []
|
|
2682
2706
|
for i, build_arg_contract_file in enumerate(sorted(self.input_config.sorted_files)):
|
|
@@ -3938,7 +3962,7 @@ def build_from_cache_or_scratch(context: CertoraContext,
|
|
|
3938
3962
|
if output:
|
|
3939
3963
|
internal_calls = output.split("\n")
|
|
3940
3964
|
except Exception as e:
|
|
3941
|
-
instrumentation_logger.
|
|
3965
|
+
instrumentation_logger.debug(f"Failed to get calls from spec\n{e}")
|
|
3942
3966
|
|
|
3943
3967
|
if internal_calls:
|
|
3944
3968
|
build_logger.info("Found new internal calls in the spec file, need to recompile anyway")
|
|
@@ -3989,9 +4013,6 @@ def build(context: CertoraContext, ignore_spec_syntax_check: bool = False) -> No
|
|
|
3989
4013
|
if Cv.mode_has_spec_file(context) and not context.build_only and not ignore_spec_syntax_check:
|
|
3990
4014
|
if Ctx.should_run_local_speck_check(context):
|
|
3991
4015
|
Ctx.run_local_spec_check(False, context)
|
|
3992
|
-
else:
|
|
3993
|
-
build_logger.warning(
|
|
3994
|
-
"Local checks of CVL specification files disabled. It is recommended to enable the checks.")
|
|
3995
4016
|
|
|
3996
4017
|
should_save_cache, cached_files = build_from_cache_or_scratch(context,
|
|
3997
4018
|
certora_build_generator,
|
|
@@ -523,7 +523,15 @@ def __rename_key(context: CertoraContext, old_key: str, new_key: str) -> None:
|
|
|
523
523
|
|
|
524
524
|
|
|
525
525
|
def should_run_local_speck_check(context: CertoraContext) -> bool:
|
|
526
|
-
|
|
526
|
+
output = context.compilation_steps_only or not (context.disable_local_typechecking or Util.is_ci_or_git_action())
|
|
527
|
+
if not output:
|
|
528
|
+
if context.disable_local_typechecking:
|
|
529
|
+
context_logger.warning(
|
|
530
|
+
"Local checks of CVL specification files disabled. It is recommended to enable the checks."
|
|
531
|
+
)
|
|
532
|
+
else:
|
|
533
|
+
context_logger.info("Local checks of CVL specification files skipped in CI and will run remotely.")
|
|
534
|
+
return output
|
|
527
535
|
|
|
528
536
|
|
|
529
537
|
def run_typechecker(typechecker_name: str, with_typechecking: bool, args: List[str], print_errors: bool) -> None:
|
|
@@ -550,18 +558,13 @@ def run_typechecker(typechecker_name: str, with_typechecking: bool, args: List[s
|
|
|
550
558
|
context_logger.debug(f"typechecking cmd: {' '.join(cmd_str_list)}")
|
|
551
559
|
|
|
552
560
|
exit_code = Util.run_jar_cmd(cmd_str_list, False,
|
|
553
|
-
custom_error_message="Failed to run Certora Prover locally
|
|
554
|
-
"below for problems in the specifications
|
|
555
|
-
"prover_args defined in the .conf file.",
|
|
561
|
+
custom_error_message="Failed to run Certora Prover typechecker locally.\n"
|
|
562
|
+
"Please check the errors below for problems in the specifications"
|
|
563
|
+
" (.spec files) or the prover_args defined in the .conf file.",
|
|
556
564
|
logger_topic="type_check",
|
|
557
565
|
print_err=print_errors)
|
|
558
566
|
if exit_code != 0:
|
|
559
|
-
raise Util.CertoraUserInputError(
|
|
560
|
-
"CVL syntax or type check failed.\n Please fix the issue. "
|
|
561
|
-
"Using --disable_local_typechecking to skip this check is strongly discouraged, "
|
|
562
|
-
"as simple syntax errors will only be detected during the cloud run."
|
|
563
|
-
"with --disable_local_typechecking is not recommended is not recommended as "
|
|
564
|
-
"simple syntax failures will be visible only on the cloud run.")
|
|
567
|
+
raise Util.CertoraUserInputError("CVL syntax or type check failed, please fix the issue.")
|
|
565
568
|
|
|
566
569
|
|
|
567
570
|
def run_local_spec_check(with_typechecking: bool, context: CertoraContext, extra_args: List[str] = list(), print_errors: bool = True) -> None:
|
{certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_cli/Mutate/mutateValidate.py
RENAMED
|
@@ -69,10 +69,18 @@ class MutateValidator:
|
|
|
69
69
|
except Exception as e:
|
|
70
70
|
raise Util.CertoraUserInputError(f"Invalid file_to_mutate in manual mutant: {mutant[Constants.FILE_TO_MUTATE]}", e)
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
mutants_location = mutant[Constants.MUTANTS_LOCATION]
|
|
73
|
+
if Path(mutants_location).is_dir():
|
|
74
|
+
try:
|
|
75
|
+
Vf.validate_dir(mutants_location)
|
|
76
|
+
except Exception as e:
|
|
77
|
+
raise Util.CertoraUserInputError(f"Invalid directory for mutants location {mutants_location}",
|
|
78
|
+
e)
|
|
79
|
+
else:
|
|
80
|
+
try:
|
|
81
|
+
Vf.validate_readable_file(mutants_location, Util.SOL_EXT)
|
|
82
|
+
except Exception as e:
|
|
83
|
+
raise Util.CertoraUserInputError(f"Invalid file for mutants location {mutants_location}", e)
|
|
76
84
|
|
|
77
85
|
def mutation_attribute_in_prover(self) -> None:
|
|
78
86
|
gambit_attrs = ['filename', 'contract', 'functions', 'seed', 'num_mutants']
|
|
@@ -132,10 +132,6 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
|
|
|
132
132
|
Ctx.run_local_spec_check(True, context)
|
|
133
133
|
typechecking_end = time.perf_counter()
|
|
134
134
|
timings['typecheckingTime'] = round(typechecking_end - typechecking_start, 4)
|
|
135
|
-
else:
|
|
136
|
-
run_logger.warning(
|
|
137
|
-
"Local checks of CVL specification files disabled. It is recommended to enable "
|
|
138
|
-
"the checks.")
|
|
139
135
|
|
|
140
136
|
# Remove debug logger and run remote verification
|
|
141
137
|
logging_manager.remove_debug_logger()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli-beta-mirror
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.2
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-beta-mirror
|
|
6
6
|
Author: Certora
|
|
@@ -39,4 +39,4 @@ Dynamic: requires-dist
|
|
|
39
39
|
Dynamic: requires-python
|
|
40
40
|
Dynamic: summary
|
|
41
41
|
|
|
42
|
-
Commit
|
|
42
|
+
Commit 04cd39e. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -40,7 +40,6 @@ certora_cli/CertoraProver/certoraProjectScanner.py
|
|
|
40
40
|
certora_cli/CertoraProver/certoraSourceFinders.py
|
|
41
41
|
certora_cli/CertoraProver/certoraType.py
|
|
42
42
|
certora_cli/CertoraProver/certoraVerifyGenerator.py
|
|
43
|
-
certora_cli/CertoraProver/concordance.py
|
|
44
43
|
certora_cli/CertoraProver/erc7201.py
|
|
45
44
|
certora_cli/CertoraProver/splitRules.py
|
|
46
45
|
certora_cli/CertoraProver/storageExtension.py
|
{certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_jars/ASTExtraction.jar
RENAMED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "certora-cli-beta-mirror", "tag": "8.2.2", "branch": "", "commit": "04cd39e", "timestamp": "20250904.12.49.982490", "version": "8.2.2"}
|
{certora_cli_beta_mirror-8.2.0 → certora_cli_beta_mirror-8.2.2}/certora_jars/Typechecker.jar
RENAMED
|
Binary file
|
|
@@ -3,11 +3,11 @@ import setuptools
|
|
|
3
3
|
|
|
4
4
|
setuptools.setup(
|
|
5
5
|
name="certora-cli-beta-mirror",
|
|
6
|
-
version="8.2.
|
|
6
|
+
version="8.2.2",
|
|
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 04cd39e. 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-beta-mirror",
|
|
13
13
|
packages=setuptools.find_packages(),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Commit 03cec31. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|