certora-cli-beta-mirror 8.6.0__tar.gz → 8.6.1__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.
Files changed (89) hide show
  1. {certora_cli_beta_mirror-8.6.0/certora_cli_beta_mirror.egg-info → certora_cli_beta_mirror-8.6.1}/PKG-INFO +2 -2
  2. certora_cli_beta_mirror-8.6.1/README.md +1 -0
  3. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraBuildDataClasses.py +1 -1
  4. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraContext.py +6 -0
  5. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraContextAttributes.py +11 -0
  6. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraRun.py +18 -9
  7. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1/certora_cli_beta_mirror.egg-info}/PKG-INFO +2 -2
  8. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_jars/ASTExtraction.jar +0 -0
  9. certora_cli_beta_mirror-8.6.1/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
  10. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_jars/Typechecker.jar +0 -0
  11. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/setup.py +2 -2
  12. certora_cli_beta_mirror-8.6.0/README.md +0 -1
  13. certora_cli_beta_mirror-8.6.0/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
  14. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/LICENSE +0 -0
  15. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/MANIFEST.in +0 -0
  16. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_bins/__init__.py +0 -0
  17. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +0 -0
  18. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +0 -0
  19. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
  20. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
  21. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
  22. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
  23. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
  24. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/__init__.py +0 -0
  25. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/castingInstrumenter.py +0 -0
  26. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraApp.py +0 -0
  27. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraBuild.py +0 -0
  28. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
  29. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraBuildRust.py +0 -0
  30. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraBuildSui.py +0 -0
  31. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraCloudIO.py +0 -0
  32. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
  33. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +0 -0
  34. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
  35. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
  36. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
  37. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
  38. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
  39. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
  40. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraJobList.py +0 -0
  41. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
  42. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
  43. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
  44. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
  45. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
  46. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraType.py +0 -0
  47. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
  48. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/erc7201.py +0 -0
  49. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/splitRules.py +0 -0
  50. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/CertoraProver/storageExtension.py +0 -0
  51. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
  52. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
  53. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
  54. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
  55. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
  56. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/__init__.py +0 -0
  57. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
  58. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
  59. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/__init__.py +0 -0
  60. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/mutateApp.py +0 -0
  61. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/mutateAttributes.py +0 -0
  62. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/mutateConstants.py +0 -0
  63. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/mutateUtil.py +0 -0
  64. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Mutate/mutateValidate.py +0 -0
  65. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/ExpectedComparator.py +0 -0
  66. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/__init__.py +0 -0
  67. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/certoraAttrUtil.py +0 -0
  68. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/certoraLogging.py +0 -0
  69. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/certoraUtils.py +0 -0
  70. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/certoraValidateFuncs.py +0 -0
  71. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/Shared/proverCommon.py +0 -0
  72. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/__init__.py +0 -0
  73. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraCVLFormatter.py +0 -0
  74. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraConcord.py +0 -0
  75. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraEVMProver.py +0 -0
  76. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraEqCheck.py +0 -0
  77. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraMutate.py +0 -0
  78. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraRanger.py +0 -0
  79. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraSolanaProver.py +0 -0
  80. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraSorobanProver.py +0 -0
  81. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/certoraSuiProver.py +0 -0
  82. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli/rustMutator.py +0 -0
  83. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli_beta_mirror.egg-info/SOURCES.txt +0 -0
  84. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli_beta_mirror.egg-info/dependency_links.txt +0 -0
  85. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli_beta_mirror.egg-info/entry_points.txt +0 -0
  86. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli_beta_mirror.egg-info/requires.txt +0 -0
  87. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_cli_beta_mirror.egg-info/top_level.txt +0 -0
  88. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/certora_jars/__init__.py +0 -0
  89. {certora_cli_beta_mirror-8.6.0 → certora_cli_beta_mirror-8.6.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta-mirror
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-mirror
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.
@@ -0,0 +1 @@
1
+ Commit 6c493e0. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -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",
@@ -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-mirror
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-mirror
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.
@@ -0,0 +1 @@
1
+ {"name": "certora-cli-beta-mirror", "tag": "8.6.1", "branch": "", "commit": "6c493e0", "timestamp": "20251203.9.56.869179", "version": "8.6.1"}
@@ -3,11 +3,11 @@ import setuptools
3
3
 
4
4
  setuptools.setup(
5
5
  name="certora-cli-beta-mirror",
6
- version="8.6.0",
6
+ version="8.6.1",
7
7
  author="Certora",
8
8
  author_email="support@certora.com",
9
9
  description="Runner for the Certora Prover",
10
- long_description="Commit 92412cc. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.",
10
+ long_description="Commit 6c493e0. 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 92412cc. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -1 +0,0 @@
1
- {"name": "certora-cli-beta-mirror", "tag": "8.6.0", "branch": "", "commit": "92412cc", "timestamp": "20251127.6.22.749789", "version": "8.6.0"}