certora-cli-beta-mirror 8.4.2__tar.gz → 8.4.3__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 (88) hide show
  1. {certora_cli_beta_mirror-8.4.2/certora_cli_beta_mirror.egg-info → certora_cli_beta_mirror-8.4.3}/PKG-INFO +2 -2
  2. certora_cli_beta_mirror-8.4.3/README.md +1 -0
  3. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraCloudIO.py +4 -1
  4. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +29 -0
  5. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/certoraUtils.py +2 -2
  6. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraRun.py +9 -1
  7. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3/certora_cli_beta_mirror.egg-info}/PKG-INFO +2 -2
  8. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_jars/ASTExtraction.jar +0 -0
  9. certora_cli_beta_mirror-8.4.3/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
  10. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_jars/Typechecker.jar +0 -0
  11. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/setup.py +2 -2
  12. certora_cli_beta_mirror-8.4.2/README.md +0 -1
  13. certora_cli_beta_mirror-8.4.2/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
  14. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/LICENSE +0 -0
  15. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/MANIFEST.in +0 -0
  16. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_bins/__init__.py +0 -0
  17. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +0 -0
  18. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +0 -0
  19. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
  20. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
  21. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
  22. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
  23. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
  24. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/__init__.py +0 -0
  25. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraApp.py +0 -0
  26. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraBuild.py +0 -0
  27. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
  28. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraBuildDataClasses.py +0 -0
  29. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraBuildRust.py +0 -0
  30. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraBuildSui.py +0 -0
  31. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
  32. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
  33. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
  34. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraContext.py +0 -0
  35. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraContextAttributes.py +0 -0
  36. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
  37. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
  38. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
  39. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
  40. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraJobList.py +0 -0
  41. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
  42. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
  43. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
  44. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
  45. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
  46. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraType.py +0 -0
  47. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
  48. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/erc7201.py +0 -0
  49. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/splitRules.py +0 -0
  50. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/CertoraProver/storageExtension.py +0 -0
  51. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
  52. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
  53. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
  54. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
  55. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
  56. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/__init__.py +0 -0
  57. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
  58. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
  59. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/__init__.py +0 -0
  60. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/mutateApp.py +0 -0
  61. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/mutateAttributes.py +0 -0
  62. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/mutateConstants.py +0 -0
  63. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/mutateUtil.py +0 -0
  64. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Mutate/mutateValidate.py +0 -0
  65. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/ExpectedComparator.py +0 -0
  66. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/__init__.py +0 -0
  67. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/certoraAttrUtil.py +0 -0
  68. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/certoraLogging.py +0 -0
  69. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/certoraValidateFuncs.py +0 -0
  70. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/Shared/proverCommon.py +0 -0
  71. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/__init__.py +0 -0
  72. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraCVLFormatter.py +0 -0
  73. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraConcord.py +0 -0
  74. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraEVMProver.py +0 -0
  75. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraEqCheck.py +0 -0
  76. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraMutate.py +0 -0
  77. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraRanger.py +0 -0
  78. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraSolanaProver.py +0 -0
  79. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraSorobanProver.py +0 -0
  80. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/certoraSuiProver.py +0 -0
  81. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli/rustMutator.py +0 -0
  82. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli_beta_mirror.egg-info/SOURCES.txt +0 -0
  83. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli_beta_mirror.egg-info/dependency_links.txt +0 -0
  84. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli_beta_mirror.egg-info/entry_points.txt +0 -0
  85. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli_beta_mirror.egg-info/requires.txt +0 -0
  86. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_cli_beta_mirror.egg-info/top_level.txt +0 -0
  87. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/certora_jars/__init__.py +0 -0
  88. {certora_cli_beta_mirror-8.4.2 → certora_cli_beta_mirror-8.4.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta-mirror
3
- Version: 8.4.2
3
+ Version: 8.4.3
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 b945191. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
42
+ Commit 0d90215. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -0,0 +1 @@
1
+ Commit 0d90215. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -689,8 +689,11 @@ class CloudVerification:
689
689
  auth_data["mutationTestId"] = self.context.mutation_test_id
690
690
  return auth_data
691
691
 
692
+ def get_group_id_url(self) -> str:
693
+ return f"{self.get_domain()}/?groupIds={self.context.group_id}"
694
+
692
695
  def print_group_id_url(self) -> None:
693
- group_id_url = f"{self.get_domain()}/?groupIds={self.context.group_id}"
696
+ group_id_url = self.get_group_id_url()
694
697
  print(f"See all jobs generated from splitting the rules at {group_id_url}", flush=True)
695
698
 
696
699
  def print_output_links(self) -> None:
@@ -14,6 +14,7 @@
14
14
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
15
  import dataclasses
16
16
  import json
17
+ import re
17
18
  from typing import Any, Dict, List, Optional
18
19
  import subprocess
19
20
  from datetime import datetime, timezone
@@ -73,6 +74,7 @@ class RunMetaData:
73
74
  conf_path -- the relative path form the cwd_relative to the configuration file
74
75
  group_id -- optional identifier for grouping this run
75
76
  java_version -- version of Java used during the run, if available
77
+ default_solc_version -- version of default solc version on current machine, if available
76
78
  python_version -- version of Python running the process
77
79
  certora_ci_client -- name of the CI client if available, derived from environment
78
80
  timestamp -- UTC timestamp when the run metadata was generated
@@ -95,6 +97,7 @@ class RunMetaData:
95
97
  self.group_id = group_id
96
98
  self.python_version = ".".join(str(x) for x in sys.version_info[:3])
97
99
  self.java_version = java_version
100
+ self.default_solc_version = get_solc_version(self.conf)
98
101
  self.certora_ci_client = Utils.get_certora_ci_name()
99
102
  self.timestamp = str(datetime.now(timezone.utc).timestamp())
100
103
  _, self.CLI_package_name, self.CLI_version = Utils.get_package_and_version()
@@ -116,6 +119,7 @@ class RunMetaData:
116
119
  f" group_id: {self.group_id}\n"
117
120
  f" python_version: {self.python_version}\n"
118
121
  f" java_version: {self.java_version}\n"
122
+ f" default_solc_version: {self.default_solc_version}\n"
119
123
  f" CertoraCI client: {self.certora_ci_client}\n"
120
124
  f" jar_flag_info: {self.jar_flag_info}\n"
121
125
  )
@@ -279,3 +283,28 @@ def collect_run_metadata(wd: Path, raw_args: List[str], context: CertoraContext)
279
283
  conf_path=conf_path,
280
284
  group_id=context.group_id,
281
285
  java_version=context.java_version)
286
+
287
+
288
+ def get_solc_version(conf: Dict[str, Any]) -> Optional[str]:
289
+ if conf.get('solc') or conf.get('solc_map') or conf.get('compiler_map'):
290
+ return None
291
+
292
+ try:
293
+ result = subprocess.run(
294
+ ["solc", "--version"],
295
+ capture_output=True,
296
+ text=True,
297
+ check=True
298
+ )
299
+ for line in result.stdout.splitlines():
300
+ if line.startswith("Version:"):
301
+ version_matches = re.findall(r'^Version: (\d+)\.(\d+)\.(\d+)', line, re.MULTILINE)
302
+ if len(version_matches) != 1:
303
+ return None
304
+ match = version_matches[0]
305
+ return f'solc{int(match[1])}.{int(match[2])}'
306
+
307
+ except Exception as e:
308
+ metadata_logger.debug(f'Error while trying to fetch default solc version: {e}')
309
+ return None
310
+ return None
@@ -17,6 +17,7 @@ import csv
17
17
  import json
18
18
  import os
19
19
  import io
20
+ import secrets
20
21
  import subprocess
21
22
  from abc import ABCMeta
22
23
  from enum import Enum, unique, auto
@@ -40,7 +41,6 @@ sys.path.insert(0, str(scripts_dir_path))
40
41
  from contextlib import contextmanager
41
42
  from Shared.ExpectedComparator import ExpectedComparator
42
43
  import logging
43
- import random
44
44
  import time
45
45
  import tempfile
46
46
  from datetime import datetime
@@ -157,7 +157,7 @@ def get_build_dir() -> Path:
157
157
 
158
158
  def get_random_build_dir() -> Path:
159
159
  for tries in range(3):
160
- build_uuid = f"{datetime.now().strftime('%y_%m_%d_%H_%M_%S')}_{random.randint(0, 999):03d}"
160
+ build_uuid = f"{datetime.now().strftime('%y_%m_%d_%H_%M_%S')}_{secrets.randbelow(1_000_000):06d}{secrets.token_hex(2)}"
161
161
  build_dir = CERTORA_INTERNAL_ROOT / Path(build_uuid)
162
162
  if not build_dir.exists():
163
163
  return build_dir
@@ -80,9 +80,17 @@ def run_certora(args: List[str], app: Type[App.CertoraApp] = App.EvmApp,
80
80
  context.build_only = False
81
81
  rule_handler = splitRules.SplitRulesHandler(context)
82
82
  exit_code = rule_handler.generate_runs()
83
- CloudVerification(context).print_group_id_url()
83
+ cv = CloudVerification(context)
84
+ cv.print_group_id_url()
84
85
  if exit_code == 0:
85
86
  print("Split rules succeeded")
87
+ return_value = CertoraRunResult(
88
+ cv.get_group_id_url(),
89
+ False,
90
+ Util.get_certora_sources_dir(),
91
+ cv.get_group_id_url(),
92
+ )
93
+ return handle_exit(exit_code, return_value)
86
94
  else:
87
95
  raise Util.ExitException("Split rules failed", exit_code)
88
96
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta-mirror
3
- Version: 8.4.2
3
+ Version: 8.4.3
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 b945191. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
42
+ Commit 0d90215. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -0,0 +1 @@
1
+ {"name": "certora-cli-beta-mirror", "tag": "8.4.3", "branch": "", "commit": "0d90215", "timestamp": "20251030.12.0.379579", "version": "8.4.3"}
@@ -3,11 +3,11 @@ import setuptools
3
3
 
4
4
  setuptools.setup(
5
5
  name="certora-cli-beta-mirror",
6
- version="8.4.2",
6
+ version="8.4.3",
7
7
  author="Certora",
8
8
  author_email="support@certora.com",
9
9
  description="Runner for the Certora Prover",
10
- long_description="Commit b945191. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.",
10
+ long_description="Commit 0d90215. 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 b945191. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -1 +0,0 @@
1
- {"name": "certora-cli-beta-mirror", "tag": "8.4.2", "branch": "", "commit": "b945191", "timestamp": "20251024.12.37.646479", "version": "8.4.2"}