certora-cli-beta 8.16.0__tar.gz → 8.16.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.
Files changed (91) hide show
  1. {certora_cli_beta-8.16.0/certora_cli_beta.egg-info → certora_cli_beta-8.16.2}/PKG-INFO +2 -2
  2. certora_cli_beta-8.16.2/README.md +1 -0
  3. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraBuild.py +57 -32
  4. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/certoraValidateFuncs.py +2 -0
  5. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2/certora_cli_beta.egg-info}/PKG-INFO +2 -2
  6. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_jars/ASTExtraction.jar +0 -0
  7. certora_cli_beta-8.16.2/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
  8. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_jars/Typechecker.jar +0 -0
  9. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/setup.py +2 -2
  10. certora_cli_beta-8.16.0/README.md +0 -1
  11. certora_cli_beta-8.16.0/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
  12. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/LICENSE +0 -0
  13. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/MANIFEST.in +0 -0
  14. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_bins/__init__.py +0 -0
  15. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +0 -0
  16. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +0 -0
  17. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
  18. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
  19. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
  20. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
  21. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
  22. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/__init__.py +0 -0
  23. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/castingInstrumenter.py +0 -0
  24. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraApp.py +0 -0
  25. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
  26. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraBuildDataClasses.py +0 -0
  27. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraBuildRust.py +0 -0
  28. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraBuildSui.py +0 -0
  29. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraCloudIO.py +0 -0
  30. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
  31. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +0 -0
  32. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
  33. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
  34. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraContext.py +0 -0
  35. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraContextAttributes.py +0 -0
  36. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
  37. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
  38. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
  39. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
  40. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraJobList.py +0 -0
  41. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
  42. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
  43. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraOffsetConverter.py +0 -0
  44. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
  45. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
  46. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
  47. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraType.py +0 -0
  48. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
  49. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/erc7201.py +0 -0
  50. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/splitRules.py +0 -0
  51. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/storageExtension.py +0 -0
  52. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/CertoraProver/uncheckedOverflowInstrumenter.py +0 -0
  53. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
  54. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
  55. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
  56. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
  57. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
  58. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/__init__.py +0 -0
  59. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
  60. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
  61. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/__init__.py +0 -0
  62. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/mutateApp.py +0 -0
  63. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/mutateAttributes.py +0 -0
  64. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/mutateConstants.py +0 -0
  65. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/mutateUtil.py +0 -0
  66. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Mutate/mutateValidate.py +0 -0
  67. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/ExpectedComparator.py +0 -0
  68. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/__init__.py +0 -0
  69. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/certoraAttrUtil.py +0 -0
  70. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/certoraLogging.py +0 -0
  71. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/certoraUtils.py +0 -0
  72. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/Shared/proverCommon.py +0 -0
  73. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/__init__.py +0 -0
  74. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraCVLFormatter.py +0 -0
  75. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraConcord.py +0 -0
  76. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraEVMProver.py +0 -0
  77. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraEqCheck.py +0 -0
  78. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraMutate.py +0 -0
  79. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraRanger.py +0 -0
  80. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraRun.py +0 -0
  81. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraSolanaProver.py +0 -0
  82. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraSorobanProver.py +0 -0
  83. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/certoraSuiProver.py +0 -0
  84. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli/rustMutator.py +0 -0
  85. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli_beta.egg-info/SOURCES.txt +0 -0
  86. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli_beta.egg-info/dependency_links.txt +0 -0
  87. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli_beta.egg-info/entry_points.txt +0 -0
  88. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli_beta.egg-info/requires.txt +0 -0
  89. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_cli_beta.egg-info/top_level.txt +0 -0
  90. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/certora_jars/__init__.py +0 -0
  91. {certora_cli_beta-8.16.0 → certora_cli_beta-8.16.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta
3
- Version: 8.16.0
3
+ Version: 8.16.2
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 9317e51. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
41
+ Commit 94b86f7. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -0,0 +1 @@
1
+ Commit 94b86f7. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -1839,6 +1839,42 @@ class CertoraBuildGenerator:
1839
1839
  else:
1840
1840
  raise Util.CertoraUserInputError(err_msg)
1841
1841
 
1842
+ def _resolve_data_contracts_key(self,
1843
+ contract_file: str,
1844
+ compile_wd: Path,
1845
+ data: Dict[str, Any],
1846
+ resolved_to_orig: Optional[Dict[str, str]] = None,
1847
+ ) -> str:
1848
+ """Resolve which key in data[CONTRACTS] corresponds to ``contract_file``.
1849
+
1850
+ solc's standard-json output keys files in whatever form solc saw them — relative to
1851
+ compile_wd, absolute, the raw input string, or (for symlinks) a previously seen original.
1852
+ We try each in order and return the matching key. Raises if no form matches.
1853
+
1854
+ ``resolved_to_orig`` is optional: the worklist populates it from base contracts and link
1855
+ references; the pre-worklist seed for the primary file passes ``None``.
1856
+ """
1857
+ contract_file_abs = str(Util.abs_norm_path(contract_file))
1858
+ # using os.path.relpath because Path.relative_to cannot go up the directory tree (no ..)
1859
+ contract_file_rel = os.path.relpath(Path(contract_file_abs), compile_wd)
1860
+
1861
+ build_logger.debug(f"available keys: {data[CONTRACTS].keys()}")
1862
+ if contract_file_rel in data[CONTRACTS]:
1863
+ return contract_file_rel
1864
+ if contract_file_abs in data[CONTRACTS]:
1865
+ return contract_file_abs
1866
+ if contract_file in data[CONTRACTS]:
1867
+ # when does this happen? Saw this in TrustToken on a package source file
1868
+ return contract_file
1869
+ orig = resolved_to_orig.get(contract_file) if resolved_to_orig is not None else None
1870
+ if orig is not None and orig in data[CONTRACTS]:
1871
+ return orig
1872
+ # our file may be a symlink!
1873
+ raise Exception(
1874
+ f"Worklist contains {contract_file} (relative {contract_file_rel}, "
1875
+ f"absolute {contract_file_abs}), resolved from {orig} "
1876
+ f"that does not exist in contract set {orig in data[CONTRACTS] if orig else False}")
1877
+
1842
1878
  def collect_for_file(self,
1843
1879
  build_arg_contract_file: str,
1844
1880
  file_index: int,
@@ -1986,6 +2022,12 @@ class CertoraBuildGenerator:
1986
2022
  contracts_with_libraries = {}
1987
2023
  file_compiler_path = compiler_collector.normalize_file_compiler_path_name(file_abs_path)
1988
2024
 
2025
+ # Resolve the data[CONTRACTS] key for the primary file once, before the worklist runs.
2026
+ # This is the (file, *) half of the primary contract-handle set used to scope the bytecode
2027
+ # check inside get_bytecode — see the primary_contract_handles construction just below.
2028
+ primary_file_key = self._resolve_data_contracts_key(str(Path(file_compiler_path)), compile_wd, data)
2029
+ primary_contract_handles: Set[Tuple[str, str]] = {(primary_file_key, n) for n in contracts_in_file}
2030
+
1989
2031
  # But apparently this heavily depends on the Solidity AST format anyway
1990
2032
 
1991
2033
  # Need to add all library dependencies that are in a different file:
@@ -1997,31 +2039,8 @@ class CertoraBuildGenerator:
1997
2039
  contract_file_obj = contracts_to_add_dependencies_queue.pop()
1998
2040
  contract_file = str(contract_file_obj)
1999
2041
  build_logger.debug(f"Processing dependencies from file {contract_file}")
2000
- # make sure path name is in posix format.
2001
- contract_file_abs = str(Util.abs_norm_path(contract_file))
2002
-
2003
- # using os.path.relpath because Path.relative_to cannot go up the directory tree (no ..)
2004
- contract_file_rel = os.path.relpath(Path(contract_file_abs), compile_wd)
2005
-
2006
- build_logger.debug(f"available keys: {data['contracts'].keys()}")
2007
- if contract_file_rel in data[CONTRACTS]:
2008
- contract_file = contract_file_rel
2009
- unsorted_contract_list = data[CONTRACTS][contract_file]
2010
- elif contract_file_abs in data[CONTRACTS]:
2011
- contract_file = contract_file_abs
2012
- unsorted_contract_list = data[CONTRACTS][contract_file_abs]
2013
- elif contract_file in data[CONTRACTS]:
2014
- # when does this happen? Saw this in TrustToken on a package source file
2015
- unsorted_contract_list = data[CONTRACTS][contract_file]
2016
- elif resolved_to_orig.get(contract_file) in data[CONTRACTS]:
2017
- unsorted_contract_list = data[CONTRACTS][resolved_to_orig[contract_file]]
2018
- contract_file = resolved_to_orig[contract_file]
2019
- else:
2020
- # our file may be a symlink!
2021
- raise Exception(
2022
- f"Worklist contains {contract_file} (relative {contract_file_rel}, "
2023
- f"absolute {contract_file_abs}), resolved from {resolved_to_orig.get(contract_file)} "
2024
- f"that does not exist in contract set {resolved_to_orig.get(contract_file) in data['contracts']}")
2042
+ contract_file = self._resolve_data_contracts_key(contract_file, compile_wd, data, resolved_to_orig)
2043
+ unsorted_contract_list = data[CONTRACTS][contract_file]
2025
2044
 
2026
2045
  contract_list = sorted([c for c in unsorted_contract_list])
2027
2046
  # every contract file may contain numerous primary contracts, but the dependent contracts
@@ -2125,7 +2144,7 @@ class CertoraBuildGenerator:
2125
2144
  contracts_with_chosen_addresses,
2126
2145
  data,
2127
2146
  report_source_file,
2128
- contracts_in_file,
2147
+ primary_contract_handles,
2129
2148
  build_arg_contract_file,
2130
2149
  compiler_collector,
2131
2150
  compile_wd,
@@ -2208,7 +2227,7 @@ class CertoraBuildGenerator:
2208
2227
  def get_bytecode(self,
2209
2228
  bytecode_object: Dict[str, Any],
2210
2229
  contract_name: str,
2211
- primary_contracts: List[str],
2230
+ is_primary: bool,
2212
2231
  contracts_with_chosen_addresses: List[Tuple[int, Any]],
2213
2232
  is_deployed_bytecode: bool
2214
2233
  ) -> str:
@@ -2218,7 +2237,11 @@ class CertoraBuildGenerator:
2218
2237
 
2219
2238
  @param bytecode_object - the output from the Solidity compiler
2220
2239
  @param contract_name - the contract that we are working on
2221
- @param primary_contracts - the names of the primary contracts we check to have a bytecode
2240
+ @param is_primary - whether (source_file, contract_name) is a primary handle in the current
2241
+ compilation; only primaries are required to have non-empty bytecode. The (file, name)
2242
+ scoping avoids false positives when a transitively-imported abstract contract shares a
2243
+ name with a primary (e.g. local concrete `Proxy` vs OpenZeppelin's abstract `Proxy`).
2244
+ Caller computes membership against the primary_contract_handles set.
2222
2245
  @param contracts_with_chosen_addresses - a list of tuples of addresses and the
2223
2246
  associated contract identifier
2224
2247
  @param is_deployed_bytecode - true if we deal with deployed (runtime) bytecode,
@@ -2241,7 +2264,7 @@ class CertoraBuildGenerator:
2241
2264
  f"If you need the contract, import the missing library directly and add a dummy usage:\n"
2242
2265
  orig_msg = str(e)
2243
2266
  raise Util.CertoraUserInputError(prefix_msg + orig_msg)
2244
- if contract_name in primary_contracts and len(bytecode) == 0:
2267
+ if is_primary and len(bytecode) == 0:
2245
2268
  msg = f"Contract {contract_name} has no bytecode. " \
2246
2269
  f"It may be caused because the contract is abstract, " \
2247
2270
  f"or is missing constructor code. Please check the output of the Solidity compiler."
@@ -2350,7 +2373,7 @@ class CertoraBuildGenerator:
2350
2373
  contracts_with_chosen_addresses: List[Tuple[int, Any]],
2351
2374
  data: Dict[str, Any],
2352
2375
  report_source_file: str,
2353
- primary_contracts: List[str],
2376
+ primary_contract_handles: Set[Tuple[str, str]],
2354
2377
  build_arg_contract_file: str,
2355
2378
  compiler_collector_for_contract_file: CompilerCollector,
2356
2379
  compile_wd: Path,
@@ -2422,12 +2445,14 @@ class CertoraBuildGenerator:
2422
2445
  (srcmap, constructor_srcmap) = self.collect_srcmap(contract_data)
2423
2446
 
2424
2447
  varmap = ""
2448
+ contract_is_primary = (source_code_file, contract_name) in primary_contract_handles
2425
2449
  deployed_bytecode = self.get_bytecode(contract_data["evm"]["deployedBytecode"], contract_name,
2426
- primary_contracts,
2450
+ contract_is_primary,
2427
2451
  contracts_with_chosen_addresses, True)
2428
2452
  deployed_bytecode = compiler_lang.normalize_deployed_bytecode(
2429
2453
  deployed_bytecode)
2430
- constructor_bytecode = self.get_bytecode(contract_data["evm"]["bytecode"], contract_name, primary_contracts,
2454
+ constructor_bytecode = self.get_bytecode(contract_data["evm"]["bytecode"], contract_name,
2455
+ contract_is_primary,
2431
2456
  contracts_with_chosen_addresses, False)
2432
2457
  constructor_bytecode = compiler_lang.normalize_deployed_bytecode(
2433
2458
  constructor_bytecode)
@@ -93,6 +93,8 @@ class RunSources(Util.NoValEnum):
93
93
  LIGHT_TEST = auto()
94
94
  REPORT = auto()
95
95
  TIMEOUTER = auto()
96
+ STATIC_ANALYZER = auto()
97
+ AUTO_PROVER = auto()
96
98
 
97
99
 
98
100
  class WaitForResultOptions(Util.NoValEnum):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-beta
3
- Version: 8.16.0
3
+ Version: 8.16.2
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 9317e51. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
41
+ Commit 94b86f7. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -0,0 +1 @@
1
+ {"name": "certora-cli-beta", "tag": "8.16.2", "branch": "", "commit": "94b86f7", "timestamp": "20260625.10.50.595039", "version": "8.16.2"}
@@ -3,11 +3,11 @@ import setuptools
3
3
 
4
4
  setuptools.setup(
5
5
  name="certora-cli-beta",
6
- version="8.16.0",
6
+ version="8.16.2",
7
7
  author="Certora",
8
8
  author_email="support@certora.com",
9
9
  description="Runner for the Certora Prover",
10
- long_description="Commit 9317e51. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.",
10
+ long_description="Commit 94b86f7. 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",
13
13
  packages=setuptools.find_packages(),
@@ -1 +0,0 @@
1
- Commit 9317e51. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -1 +0,0 @@
1
- {"name": "certora-cli-beta", "tag": "8.16.0", "branch": "", "commit": "9317e51", "timestamp": "20260525.8.32.660750", "version": "8.16.0"}