certora-cli-beta 8.6.0__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.
@@ -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",
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
 
@@ -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
- # Syntax checking and typechecking
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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta
3
- Version: 8.6.0
3
+ Version: 8.6.1
4
4
  Summary: Runner for the Certora Prover
5
5
  Home-page: https://pypi.org/project/certora-cli-beta
6
6
  Author: Certora
@@ -38,4 +38,4 @@ Dynamic: requires-dist
38
38
  Dynamic: requires-python
39
39
  Dynamic: summary
40
40
 
41
- Commit 92412cc. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
41
+ Commit 6c493e0. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -7,7 +7,7 @@ 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=TLKtAATiw3bOW-arkOu91CezIAks-cJFeSRWAEyR0yI,6714
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
@@ -17,7 +17,7 @@ certora_cli/CertoraProver/castingInstrumenter.py,sha256=4FDjQjnN9s8I3B9J-_G9rug9
17
17
  certora_cli/CertoraProver/certoraApp.py,sha256=RKJ2Krb_CzbRUvczbdE6FhUDrFcvrR8j0JS8MNWXX7s,1469
18
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=BKOjO0yBUWA26cK_VO_lczXrOD7VWC8egQiXY4jGpmk,14914
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,8 +25,8 @@ 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=bBbLPet5si6jFEdL1TBORN-HCiJGQK7hD6OQZ_ODmFY,28878
29
- certora_cli/CertoraProver/certoraContextAttributes.py,sha256=e1rtRyF3L_PftUBaQ8XzCutlduSuE1vcS9MyxGwcuqk,72750
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
31
  certora_cli/CertoraProver/certoraContextValidator.py,sha256=KEsxk6D_s_piucib5VeuCNJhKUZUsuCcOyoZRywjKz8,46448
32
32
  certora_cli/CertoraProver/certoraContractFuncs.py,sha256=IKe4xbDh0yFoYVCuLeAxnGg9h59rQCla3Qpy0GwS3HE,8236
@@ -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=fUqpeRjQNtboB5KbXOsf0SvH_ZHvm73-S7uU3eZ9xE8,21987525
74
- certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=8nuKLJO8FBhn6UE0m6-MNdnYWC9evGJzByOBhzLDDv8,136
75
- certora_jars/Typechecker.jar,sha256=e4D5-ooY-PGOKwztxfJ-JmIYMY_qfl1V96Acm1-aZfg,21949637
73
+ certora_jars/ASTExtraction.jar,sha256=P3haha7dkTPBjnKf0QTbDIRVlPUG-baHBKOtJOfzItI,22000249
74
+ certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=BFq02z4HGp3jqxvymfoikoQeh2Vydg7B9AQiN-WjUNY,136
75
+ certora_jars/Typechecker.jar,sha256=z8_ITj9uYbsMh8sGLdKPmZUgwamIMAznBs0JAFeMpog,21962361
76
76
  certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- certora_cli_beta-8.6.0.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
78
- certora_cli_beta-8.6.0.dist-info/METADATA,sha256=jjjAmtWOPV6r5ARJChfuprcMOcnHUa280ApnSxRIbVQ,1240
79
- certora_cli_beta-8.6.0.dist-info/WHEEL,sha256=9Ig2YBzm5cpS_YWKLeuYxVAxcKv_uDQsCzy9XJbRZ_g,110
80
- certora_cli_beta-8.6.0.dist-info/entry_points.txt,sha256=YXGQmR4tGdYD9lLdG_TEJkmVNrRauCtCDE88HwvO2Jo,569
81
- certora_cli_beta-8.6.0.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
82
- certora_cli_beta-8.6.0.dist-info/RECORD,,
77
+ certora_cli_beta-8.6.1.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
78
+ certora_cli_beta-8.6.1.dist-info/METADATA,sha256=EPfv3u9q5ftKbynY8fx6Rta5uLZIis5PMGShldDZeBs,1240
79
+ certora_cli_beta-8.6.1.dist-info/WHEEL,sha256=9Ig2YBzm5cpS_YWKLeuYxVAxcKv_uDQsCzy9XJbRZ_g,110
80
+ certora_cli_beta-8.6.1.dist-info/entry_points.txt,sha256=YXGQmR4tGdYD9lLdG_TEJkmVNrRauCtCDE88HwvO2Jo,569
81
+ certora_cli_beta-8.6.1.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
82
+ certora_cli_beta-8.6.1.dist-info/RECORD,,
Binary file
@@ -1 +1 @@
1
- {"name": "certora-cli-beta", "tag": "8.6.0", "branch": "", "commit": "92412cc", "timestamp": "20251127.6.22.653881", "version": "8.6.0"}
1
+ {"name": "certora-cli-beta", "tag": "8.6.1", "branch": "", "commit": "6c493e0", "timestamp": "20251203.9.56.923428", "version": "8.6.1"}
Binary file