certora-cli-beta-mirror 8.5.1__py3-none-macosx_10_9_universal2.whl → 8.6.1__py3-none-macosx_10_9_universal2.whl
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/CertoraProver/certoraBuild.py +0 -1
- certora_cli/CertoraProver/certoraBuildDataClasses.py +1 -1
- certora_cli/CertoraProver/certoraContext.py +6 -0
- certora_cli/CertoraProver/certoraContextAttributes.py +11 -0
- certora_cli/CertoraProver/certoraContextValidator.py +2 -1
- certora_cli/certoraRun.py +19 -10
- certora_cli/rustMutator.py +4 -1
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/METADATA +2 -3
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/RECORD +16 -16
- certora_jars/ASTExtraction.jar +0 -0
- certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -1
- certora_jars/Typechecker.jar +0 -0
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/LICENSE +0 -0
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/WHEEL +0 -0
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/entry_points.txt +0 -0
- {certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/top_level.txt +0 -0
|
@@ -3346,7 +3346,6 @@ class CertoraBuildGenerator:
|
|
|
3346
3346
|
instrumentation_logger.warning(
|
|
3347
3347
|
f"Computing casting instrumentation failed for {build_arg_contract_file}: {e}", exc_info=True)
|
|
3348
3348
|
casting_instrumentations, casting_types = {}, {}
|
|
3349
|
-
|
|
3350
3349
|
instr = CertoraBuildGenerator.merge_dicts_instrumentation(instr, casting_instrumentations)
|
|
3351
3350
|
|
|
3352
3351
|
abs_build_arg_contract_file = Util.abs_posix_path(build_arg_contract_file)
|
|
@@ -171,7 +171,7 @@ class ContractInSDC:
|
|
|
171
171
|
"""
|
|
172
172
|
return {
|
|
173
173
|
"name": self.name,
|
|
174
|
-
"original_file": Util.find_filename_in(Util.get_certora_sources_dir(), self.original_file),
|
|
174
|
+
"original_file": Util.find_filename_in(Util.get_certora_sources_dir(), self.original_file) or self.original_file,
|
|
175
175
|
"lang": self.lang,
|
|
176
176
|
"file": self.report_source_file,
|
|
177
177
|
"address": self.address,
|
|
@@ -582,6 +582,12 @@ def run_local_spec_check(with_typechecking: bool, context: CertoraContext, extra
|
|
|
582
582
|
"""
|
|
583
583
|
|
|
584
584
|
args = collect_jar_args(context)
|
|
585
|
+
|
|
586
|
+
# Add -printAst flag if dump_cvl_ast option is set
|
|
587
|
+
# We only want the elementary typecheck run to produce a file, not any of the auxiliary ones
|
|
588
|
+
if hasattr(context, 'dump_cvl_ast') and context.dump_cvl_ast and not extra_args and with_typechecking:
|
|
589
|
+
args.extend(['-printAst', context.dump_cvl_ast])
|
|
590
|
+
|
|
585
591
|
if Util.is_java_installed(context.java_version):
|
|
586
592
|
run_typechecker("Typechecker.jar", with_typechecking, args + extra_args, print_errors)
|
|
587
593
|
else:
|
|
@@ -1202,6 +1202,17 @@ class EvmAttributes(AttrUtil.Attributes):
|
|
|
1202
1202
|
disables_build_cache=False,
|
|
1203
1203
|
)
|
|
1204
1204
|
|
|
1205
|
+
DUMP_CVL_AST = AttrUtil.AttributeDefinition(
|
|
1206
|
+
arg_type=AttrUtil.AttrArgType.STRING,
|
|
1207
|
+
help_msg="Path to output file where the CVL AST will be printed during typechecking",
|
|
1208
|
+
default_desc="",
|
|
1209
|
+
argparse_args={
|
|
1210
|
+
'action': AttrUtil.UniqueStore
|
|
1211
|
+
},
|
|
1212
|
+
affects_build_cache_key=False,
|
|
1213
|
+
disables_build_cache=False
|
|
1214
|
+
)
|
|
1215
|
+
|
|
1205
1216
|
SAFE_CASTING_BUILTIN = AttrUtil.AttributeDefinition(
|
|
1206
1217
|
arg_type=AttrUtil.AttrArgType.BOOLEAN,
|
|
1207
1218
|
help_msg="This needs to be set to true for the safeCasting builtin to work",
|
|
@@ -238,7 +238,8 @@ class CertoraContextValidator:
|
|
|
238
238
|
check_rule(context)
|
|
239
239
|
|
|
240
240
|
if context.split_rules and (context.build_only or context.compilation_steps_only):
|
|
241
|
-
|
|
241
|
+
validation_logger.warning("When running with 'compilation_steps_only' or 'build_only', "
|
|
242
|
+
"'split_rules' attribute has no effect and will be ignored.")
|
|
242
243
|
|
|
243
244
|
if context.compilation_steps_only and context.build_only:
|
|
244
245
|
raise Util.CertoraUserInputError("cannot use both 'compilation_steps_only' and 'build_only'")
|
certora_cli/certoraRun.py
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import sys
|
|
18
18
|
import time
|
|
19
19
|
import logging
|
|
20
|
-
from typing import List, Optional, Type
|
|
20
|
+
from typing import List, Optional, Type, Any
|
|
21
21
|
from pathlib import Path
|
|
22
22
|
|
|
23
23
|
scripts_dir_path = Path(__file__).parent.resolve() # containing directory
|
|
@@ -27,6 +27,7 @@ from Shared import certoraUtils as Util
|
|
|
27
27
|
from CertoraProver.certoraCloudIO import CloudVerification
|
|
28
28
|
|
|
29
29
|
from CertoraProver.certoraBuild import build
|
|
30
|
+
from CertoraProver.certoraContextClass import CertoraContext
|
|
30
31
|
import CertoraProver.certoraContext as Ctx
|
|
31
32
|
import CertoraProver.certoraApp as App
|
|
32
33
|
|
|
@@ -74,7 +75,7 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
|
|
|
74
75
|
# Collect and dump configuration layout
|
|
75
76
|
collect_and_dump_config_layout(context)
|
|
76
77
|
|
|
77
|
-
if context.split_rules:
|
|
78
|
+
if context.split_rules and not (context.build_only or context.compilation_steps_only):
|
|
78
79
|
context.build_only = True
|
|
79
80
|
build(context)
|
|
80
81
|
context.build_only = False
|
|
@@ -110,7 +111,11 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
|
|
|
110
111
|
if context.test == str(Util.TestValue.AFTER_BUILD):
|
|
111
112
|
raise Util.TestResultsReady(context)
|
|
112
113
|
|
|
113
|
-
if context.build_only:
|
|
114
|
+
if context.build_only or context.compilation_steps_only:
|
|
115
|
+
# build_only does not perform CVL typechecking, just Solidity/Vyper building.
|
|
116
|
+
# compilation_steps_only includes the CVL typechecking
|
|
117
|
+
if context.compilation_steps_only:
|
|
118
|
+
run_syntax_and_typechecking_with_timings(context, timings)
|
|
114
119
|
return return_value
|
|
115
120
|
|
|
116
121
|
# either we skipped building (TAC MODE) or build succeeded
|
|
@@ -133,13 +138,7 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
|
|
|
133
138
|
if not result:
|
|
134
139
|
exit_code = 1
|
|
135
140
|
else: # Remote run
|
|
136
|
-
|
|
137
|
-
if Cv.mode_has_spec_file(context):
|
|
138
|
-
if Ctx.should_run_local_speck_check(context):
|
|
139
|
-
typechecking_start = time.perf_counter()
|
|
140
|
-
Ctx.run_local_spec_check(True, context)
|
|
141
|
-
typechecking_end = time.perf_counter()
|
|
142
|
-
timings['typecheckingTime'] = round(typechecking_end - typechecking_start, 4)
|
|
141
|
+
run_syntax_and_typechecking_with_timings(context, timings)
|
|
143
142
|
|
|
144
143
|
# Remove debug logger and run remote verification
|
|
145
144
|
logging_manager.remove_debug_logger()
|
|
@@ -149,6 +148,16 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
|
|
|
149
148
|
return handle_exit(exit_code, return_value)
|
|
150
149
|
|
|
151
150
|
|
|
151
|
+
def run_syntax_and_typechecking_with_timings(context: CertoraContext, timings: dict[Any, Any]) -> None:
|
|
152
|
+
# Syntax checking and typechecking
|
|
153
|
+
if Cv.mode_has_spec_file(context):
|
|
154
|
+
if Ctx.should_run_local_speck_check(context):
|
|
155
|
+
typechecking_start = time.perf_counter()
|
|
156
|
+
Ctx.run_local_spec_check(True, context)
|
|
157
|
+
typechecking_end = time.perf_counter()
|
|
158
|
+
timings['typecheckingTime'] = round(typechecking_end - typechecking_start, 4)
|
|
159
|
+
|
|
160
|
+
|
|
152
161
|
def latest_emv_dir() -> Optional[Path]:
|
|
153
162
|
"""
|
|
154
163
|
Returns the latest emv-... directory.
|
certora_cli/rustMutator.py
CHANGED
|
@@ -249,7 +249,10 @@ def validate_mutate_command() -> None:
|
|
|
249
249
|
Util.CertoraUserInputError: If validation fails.
|
|
250
250
|
"""
|
|
251
251
|
if shutil.which("mutate") is None:
|
|
252
|
-
raise Util.CertoraUserInputError("universalmutator
|
|
252
|
+
raise Util.CertoraUserInputError("Currently for Rust projects, universalmutator is required to generate mutants. "
|
|
253
|
+
"The universalmutator command 'mutate' not found in PATH. "
|
|
254
|
+
"To install universalmutator, please follow the instructions at"
|
|
255
|
+
" https://github.com/agroce/universalmutator")
|
|
253
256
|
|
|
254
257
|
|
|
255
258
|
def run_mutate(file_to_mutate: Path, mutants_location: Path, build_command: str) -> None:
|
{certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli-beta-mirror
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.6.1
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-beta-mirror
|
|
6
6
|
Author: Certora
|
|
@@ -23,7 +23,6 @@ Requires-Dist: sly
|
|
|
23
23
|
Requires-Dist: tabulate
|
|
24
24
|
Requires-Dist: tqdm
|
|
25
25
|
Requires-Dist: StrEnum
|
|
26
|
-
Requires-Dist: universalmutator
|
|
27
26
|
Requires-Dist: jinja2
|
|
28
27
|
Requires-Dist: wcmatch
|
|
29
28
|
Requires-Dist: typing_extensions
|
|
@@ -39,4 +38,4 @@ Dynamic: requires-dist
|
|
|
39
38
|
Dynamic: requires-python
|
|
40
39
|
Dynamic: summary
|
|
41
40
|
|
|
42
|
-
Commit
|
|
41
|
+
Commit 6c493e0. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -7,17 +7,17 @@ certora_cli/certoraEVMProver.py,sha256=AH8ZeWXAs7wK6nNKFANCt6seLf9EaaFXtfpjc3xdI
|
|
|
7
7
|
certora_cli/certoraEqCheck.py,sha256=qfZq7bpU1kbAIezC66W61VfKNZz7Uywg2Ygup62qYeo,1069
|
|
8
8
|
certora_cli/certoraMutate.py,sha256=XhFHyNVP_sk-3XkY6AAV5fVliEFAVRq-JeDGsqE5IQQ,3333
|
|
9
9
|
certora_cli/certoraRanger.py,sha256=thJ4EKo-MFHklCk-7zJADZ-9SO6eCg1AFv88-QssLj0,1289
|
|
10
|
-
certora_cli/certoraRun.py,sha256=
|
|
10
|
+
certora_cli/certoraRun.py,sha256=_XKrqTCjOZ1XFPp6xNJ-boqGVd8SM0t6PooblMGdZJo,7222
|
|
11
11
|
certora_cli/certoraSolanaProver.py,sha256=1R1YnGHCofb05GqFgpxRh3ZmHkmwMm1hPM7rfeiEu7o,3250
|
|
12
12
|
certora_cli/certoraSorobanProver.py,sha256=SYJKz5Sw-N0bJrSa1njRCE53R9_PMz7IWLhfamOjisk,2840
|
|
13
13
|
certora_cli/certoraSuiProver.py,sha256=gRs-iihB35ZSEIQ5-hJN-wLgrHZlcfmpk76Wr6vza74,2827
|
|
14
|
-
certora_cli/rustMutator.py,sha256=
|
|
14
|
+
certora_cli/rustMutator.py,sha256=j1YdY5HOWQcRNbz7TOxp5c79J0YaaYHtWZ6m2mSTeGc,14865
|
|
15
15
|
certora_cli/CertoraProver/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
|
16
16
|
certora_cli/CertoraProver/castingInstrumenter.py,sha256=4FDjQjnN9s8I3B9J-_G9rug9Jf3LnWnAuRngr50oTH4,7898
|
|
17
17
|
certora_cli/CertoraProver/certoraApp.py,sha256=RKJ2Krb_CzbRUvczbdE6FhUDrFcvrR8j0JS8MNWXX7s,1469
|
|
18
|
-
certora_cli/CertoraProver/certoraBuild.py,sha256=
|
|
18
|
+
certora_cli/CertoraProver/certoraBuild.py,sha256=h6lGjUyTcC0EnRCK1DXD26Qez4DEphpFjx_IoQRiuO8,231608
|
|
19
19
|
certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=DnVd7w92xjmg0DIrMgoJnCvaU0yCz7ySy0M4RiHEXEM,13648
|
|
20
|
-
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=
|
|
20
|
+
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=RGeoZCS4OztfbEUak0Oq02wIPgrmAOwLBad6-_XvX8c,14936
|
|
21
21
|
certora_cli/CertoraProver/certoraBuildRust.py,sha256=ZPbNp4ttRmzcKhFsgHSiHDRExNPaLOzgxTRqu23o1D0,6061
|
|
22
22
|
certora_cli/CertoraProver/certoraBuildSui.py,sha256=zMXD2XnC4oqRDzPcBvSZmVquL3UG5paBZkfUT3JPbYY,4180
|
|
23
23
|
certora_cli/CertoraProver/certoraCloudIO.py,sha256=ElRVD-c69aSURtgobuxbEfg6rPzQDSTqtTZJmeT_SYU,54430
|
|
@@ -25,10 +25,10 @@ certora_cli/CertoraProver/certoraCollectConfigurationLayout.py,sha256=Rln6LsqMp-
|
|
|
25
25
|
certora_cli/CertoraProver/certoraCollectRunMetadata.py,sha256=SonKgq2l6_8o6xySbinEinEd32Ufrk3VB0Roq-CmwoM,13718
|
|
26
26
|
certora_cli/CertoraProver/certoraCompilerParameters.py,sha256=v-MIt4sDJSQ7vpEFmCt9XBkKBhdBbZuZA4PWNErJwcU,1807
|
|
27
27
|
certora_cli/CertoraProver/certoraConfigIO.py,sha256=-1EhJYsiheYvyCgOOWrRCQBjqtqNXrpMKJYRq5cKJ0Y,8171
|
|
28
|
-
certora_cli/CertoraProver/certoraContext.py,sha256=
|
|
29
|
-
certora_cli/CertoraProver/certoraContextAttributes.py,sha256=
|
|
28
|
+
certora_cli/CertoraProver/certoraContext.py,sha256=ezdLmR-tSDLTtokhTyS9DacnB3W64Ke_6e714Vuug3c,29196
|
|
29
|
+
certora_cli/CertoraProver/certoraContextAttributes.py,sha256=BOa6L2kuTN_s2KPhHgCE4Wly2kSs_JGVXgTxXPSVpgk,73123
|
|
30
30
|
certora_cli/CertoraProver/certoraContextClass.py,sha256=d7HDqM72K7YnswR7kEcAHGwkFNrTqRz5-_0m7cl2Mso,900
|
|
31
|
-
certora_cli/CertoraProver/certoraContextValidator.py,sha256=
|
|
31
|
+
certora_cli/CertoraProver/certoraContextValidator.py,sha256=KEsxk6D_s_piucib5VeuCNJhKUZUsuCcOyoZRywjKz8,46448
|
|
32
32
|
certora_cli/CertoraProver/certoraContractFuncs.py,sha256=IKe4xbDh0yFoYVCuLeAxnGg9h59rQCla3Qpy0GwS3HE,8236
|
|
33
33
|
certora_cli/CertoraProver/certoraExtensionInfo.py,sha256=YlShzdoqJQgXXj3r0TJ3fir1KntIR99Rk8JN5qii2lk,2026
|
|
34
34
|
certora_cli/CertoraProver/certoraJobList.py,sha256=FBIYgJ60I0Ok7vchfTbcuJJbiXgnfAhrONoVeZoHti4,11464
|
|
@@ -70,13 +70,13 @@ certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HC
|
|
|
70
70
|
certora_cli/Shared/certoraUtils.py,sha256=lHd7Da2BmpFAMUoVpdmg5IICsCEIX9qCuD7Ts5QaLpQ,59556
|
|
71
71
|
certora_cli/Shared/certoraValidateFuncs.py,sha256=gCM-YP0Tpngpasd2AWxhu90UNz1wtls3WqJYp18n_Q8,43503
|
|
72
72
|
certora_cli/Shared/proverCommon.py,sha256=DUB-uEKjOkZ-8qil6xukPqfTynpigXW-gcrm0_kRUZY,11383
|
|
73
|
-
certora_jars/ASTExtraction.jar,sha256=
|
|
74
|
-
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=
|
|
75
|
-
certora_jars/Typechecker.jar,sha256=
|
|
73
|
+
certora_jars/ASTExtraction.jar,sha256=P3haha7dkTPBjnKf0QTbDIRVlPUG-baHBKOtJOfzItI,22000249
|
|
74
|
+
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=U29RiJdpNGNdkCJUlqBVOgap5evGzsDWdwjXY7YXLu8,143
|
|
75
|
+
certora_jars/Typechecker.jar,sha256=z8_ITj9uYbsMh8sGLdKPmZUgwamIMAznBs0JAFeMpog,21962361
|
|
76
76
|
certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
-
certora_cli_beta_mirror-8.
|
|
78
|
-
certora_cli_beta_mirror-8.
|
|
79
|
-
certora_cli_beta_mirror-8.
|
|
80
|
-
certora_cli_beta_mirror-8.
|
|
81
|
-
certora_cli_beta_mirror-8.
|
|
82
|
-
certora_cli_beta_mirror-8.
|
|
77
|
+
certora_cli_beta_mirror-8.6.1.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
|
|
78
|
+
certora_cli_beta_mirror-8.6.1.dist-info/METADATA,sha256=DNa86WK5KGiqVrDohHqNWoMcLhaZOowS-JhWrjlu4iE,1254
|
|
79
|
+
certora_cli_beta_mirror-8.6.1.dist-info/WHEEL,sha256=9Ig2YBzm5cpS_YWKLeuYxVAxcKv_uDQsCzy9XJbRZ_g,110
|
|
80
|
+
certora_cli_beta_mirror-8.6.1.dist-info/entry_points.txt,sha256=YXGQmR4tGdYD9lLdG_TEJkmVNrRauCtCDE88HwvO2Jo,569
|
|
81
|
+
certora_cli_beta_mirror-8.6.1.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
|
|
82
|
+
certora_cli_beta_mirror-8.6.1.dist-info/RECORD,,
|
certora_jars/ASTExtraction.jar
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "certora-cli-beta-mirror", "tag": "8.
|
|
1
|
+
{"name": "certora-cli-beta-mirror", "tag": "8.6.1", "branch": "", "commit": "6c493e0", "timestamp": "20251203.9.56.869179", "version": "8.6.1"}
|
certora_jars/Typechecker.jar
CHANGED
|
Binary file
|
|
File without changes
|
|
File without changes
|
{certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{certora_cli_beta_mirror-8.5.1.dist-info → certora_cli_beta_mirror-8.6.1.dist-info}/top_level.txt
RENAMED
|
File without changes
|