certora-cli 8.20.0__tar.gz → 8.20.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.
- {certora_cli-8.20.0/certora_cli.egg-info → certora_cli-8.20.2}/PKG-INFO +2 -2
- certora_cli-8.20.2/README.md +1 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +14 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +39 -19
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuild.py +21 -2
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildDataClasses.py +4 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2/certora_cli.egg-info}/PKG-INFO +2 -2
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_jars/ASTExtraction.jar +0 -0
- certora_cli-8.20.2/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_jars/Typechecker.jar +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/setup.py +2 -2
- certora_cli-8.20.0/README.md +0 -1
- certora_cli-8.20.0/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
- {certora_cli-8.20.0 → certora_cli-8.20.2}/LICENSE +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/MANIFEST.in +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_bins/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/castingInstrumenter.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraApp.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildRust.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildSui.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCloudIO.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContext.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContextAttributes.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraJobList.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraOffsetConverter.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraType.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/erc7201.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/splitRules.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/storageExtension.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/test_certoraCloudIO.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/uncheckedOverflowInstrumenter.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/mutateApp.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/mutateAttributes.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/mutateConstants.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/mutateUtil.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/mutateValidate.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Mutate/test_mutateApp.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/ExpectedComparator.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/certoraAttrUtil.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/certoraLogging.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/certoraUtils.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/certoraValidateFuncs.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/proverCommon.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/Shared/test_proverCommon.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraCVLFormatter.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraConcord.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraEVMProver.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraEqCheck.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraMutate.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraRanger.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraRun.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraSolanaProver.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraSorobanProver.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/certoraSuiProver.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/rustMutator.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli.egg-info/SOURCES.txt +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli.egg-info/dependency_links.txt +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli.egg-info/entry_points.txt +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli.egg-info/requires.txt +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli.egg-info/top_level.txt +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/certora_jars/__init__.py +0 -0
- {certora_cli-8.20.0 → certora_cli-8.20.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli
|
|
3
|
-
Version: 8.20.
|
|
3
|
+
Version: 8.20.2
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli
|
|
6
6
|
Author: Certora
|
|
@@ -38,4 +38,4 @@ Dynamic: requires-dist
|
|
|
38
38
|
Dynamic: requires-python
|
|
39
39
|
Dynamic: summary
|
|
40
40
|
|
|
41
|
-
Commit
|
|
41
|
+
Commit f5f7778. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Commit f5f7778. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollector.py
RENAMED
|
@@ -190,6 +190,20 @@ class CompilerCollector(ABC):
|
|
|
190
190
|
def compiler_version(self) -> CompilerVersion:
|
|
191
191
|
pass
|
|
192
192
|
|
|
193
|
+
# Full version identifier from the compiler's `--version` output
|
|
194
|
+
# (e.g. solc '0.8.34+commit.80d5c536.Darwin.appleclang'), recording the exact
|
|
195
|
+
# compiler build. None when it could not be extracted. Set by the factory after
|
|
196
|
+
# construction so subclass constructors need not change.
|
|
197
|
+
_compiler_version_full: Optional[str] = None
|
|
198
|
+
|
|
199
|
+
@property
|
|
200
|
+
def compiler_version_full(self) -> Optional[str]:
|
|
201
|
+
return self._compiler_version_full
|
|
202
|
+
|
|
203
|
+
@compiler_version_full.setter
|
|
204
|
+
def compiler_version_full(self, value: Optional[str]) -> None:
|
|
205
|
+
self._compiler_version_full = value
|
|
206
|
+
|
|
193
207
|
def normalize_file_compiler_path_name(self, file_abs_path: str) -> str:
|
|
194
208
|
"""
|
|
195
209
|
Normalizes the absolute path name [file_abs_path] of a file, given to the compiler.
|
|
@@ -18,7 +18,7 @@ import os
|
|
|
18
18
|
from Shared import certoraUtils as Util
|
|
19
19
|
from pathlib import Path
|
|
20
20
|
from functools import lru_cache
|
|
21
|
-
from typing import Set, Callable
|
|
21
|
+
from typing import Set, Callable, Tuple, Optional
|
|
22
22
|
import re
|
|
23
23
|
import logging
|
|
24
24
|
from CertoraProver.Compiler.CompilerCollector import CompilerLang, CompilerCollector
|
|
@@ -94,44 +94,48 @@ class CompilerCollectorFactory:
|
|
|
94
94
|
@param path: path of the file to create [CompilerCollector] for
|
|
95
95
|
"""
|
|
96
96
|
if str(path).endswith(".vy"):
|
|
97
|
-
version = self.__get_vyper_version(path)
|
|
98
|
-
|
|
97
|
+
version, full_version = self.__get_vyper_version(path)
|
|
98
|
+
collector: CompilerCollector = CompilerCollectorVy(version)
|
|
99
99
|
elif str(path).endswith(".sol"):
|
|
100
|
-
version = self.__get_solc_version(path)
|
|
101
|
-
|
|
102
|
-
return CompilerCollectorSol(version, CompilerLangSol(), not self.context.no_memory_safe_autofinders)
|
|
100
|
+
version, full_version = self.__get_solc_version(path)
|
|
101
|
+
collector = CompilerCollectorSol(version, CompilerLangSol(), not self.context.no_memory_safe_autofinders)
|
|
103
102
|
elif str(path).endswith(".yul"):
|
|
104
|
-
version = self.__get_solc_version(path)
|
|
105
|
-
|
|
103
|
+
version, full_version = self.__get_solc_version(path)
|
|
104
|
+
collector = CompilerCollectorYul(version, CompilerLangYul())
|
|
106
105
|
else:
|
|
107
106
|
raise RuntimeError(f'expected {path} to represent a Solidity, Yul, or Vyper file')
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
collector.compiler_version_full = full_version
|
|
109
|
+
return collector
|
|
110
|
+
|
|
111
|
+
def __get_vyper_version(self, contract_file_path: Path) -> Tuple[Util.CompilerVersion, Optional[str]]:
|
|
110
112
|
"""
|
|
111
113
|
@param contract_file_path: the contract that we are working on
|
|
112
|
-
@return: the running Vyper version
|
|
114
|
+
@return: the running Vyper version (triplet, full identifier)
|
|
113
115
|
"""
|
|
114
116
|
vyper_exec_to_run = get_relevant_compiler(contract_file_path, self.context)
|
|
115
|
-
|
|
116
|
-
return version
|
|
117
|
+
return self.__get_compiler_exe_version(vyper_exec_to_run, self.__version_string_handler_vyper)
|
|
117
118
|
|
|
118
|
-
def __get_solc_version(self, contract_file_path: Path) -> Util.CompilerVersion:
|
|
119
|
+
def __get_solc_version(self, contract_file_path: Path) -> Tuple[Util.CompilerVersion, Optional[str]]:
|
|
119
120
|
"""
|
|
120
121
|
@param contract_file_path: the contract that we are working on
|
|
121
|
-
@return: the running solc version
|
|
122
|
+
@return: the running solc version (triplet, full identifier)
|
|
122
123
|
"""
|
|
123
124
|
compiler_logger.debug(f"visiting contract file {contract_file_path}")
|
|
124
125
|
solc_path = get_relevant_compiler(contract_file_path, self.context)
|
|
125
|
-
|
|
126
|
-
return version
|
|
126
|
+
return self.__get_compiler_exe_version(solc_path, self.__version_string_handler_solc)
|
|
127
127
|
|
|
128
128
|
@lru_cache(maxsize=32)
|
|
129
129
|
def __get_compiler_exe_version(self, compiler_name: str,
|
|
130
130
|
version_string_handler:
|
|
131
|
-
Callable[[str], Util.CompilerVersion]) -> Util.CompilerVersion:
|
|
131
|
+
Callable[[str], Util.CompilerVersion]) -> Tuple[Util.CompilerVersion, Optional[str]]:
|
|
132
132
|
"""
|
|
133
133
|
@param compiler_name: name of the solc we want to run on this contract
|
|
134
|
-
@return: the running compiler version
|
|
134
|
+
@return: a tuple of (the running compiler version triplet, the full version
|
|
135
|
+
identifier string from `--version` such as
|
|
136
|
+
'0.8.34+commit.80d5c536.Darwin.appleclang', or None if it could not
|
|
137
|
+
be extracted). The triplet is used for behavioural checks; the full
|
|
138
|
+
identifier records the exact compiler build for reproducibility.
|
|
135
139
|
"""
|
|
136
140
|
out_name = f"version_check_{Path(compiler_name).name}"
|
|
137
141
|
stdout_path = get_certora_config_dir() / f'{out_name}.stdout'
|
|
@@ -146,7 +150,23 @@ class CompilerCollectorFactory:
|
|
|
146
150
|
|
|
147
151
|
with stdout_path.open() as r:
|
|
148
152
|
version_string = r.read(-1)
|
|
149
|
-
return version_string_handler(version_string)
|
|
153
|
+
return version_string_handler(version_string), self.__extract_full_version(version_string)
|
|
154
|
+
|
|
155
|
+
@staticmethod
|
|
156
|
+
def __extract_full_version(version_string: str) -> Optional[str]:
|
|
157
|
+
"""
|
|
158
|
+
Extracts the full version identifier from a compiler's `--version` output.
|
|
159
|
+
solc prints a `Version: <id>` line (e.g. 'Version: 0.8.34+commit.80d5c536.Darwin.appleclang');
|
|
160
|
+
vyper prints the bare identifier. Returns the identifier token, or None if not found.
|
|
161
|
+
"""
|
|
162
|
+
version_matches = re.findall(r'^Version:\s*(\S+)', version_string, re.MULTILINE)
|
|
163
|
+
if version_matches:
|
|
164
|
+
return version_matches[0]
|
|
165
|
+
for line in version_string.splitlines():
|
|
166
|
+
line = line.strip()
|
|
167
|
+
if line:
|
|
168
|
+
return line
|
|
169
|
+
return None
|
|
150
170
|
|
|
151
171
|
@staticmethod
|
|
152
172
|
def __version_string_handler_vyper(version_string: str) -> Util.CompilerVersion:
|
|
@@ -468,6 +468,25 @@ def convert_pathname_to_posix(json_dict: Dict[str, Any], entry: str, compiler_co
|
|
|
468
468
|
json_dict[entry] = json_dict_posix_paths
|
|
469
469
|
|
|
470
470
|
|
|
471
|
+
def relative_import_path(importer_dir: Path, target: str) -> str:
|
|
472
|
+
"""
|
|
473
|
+
The path under which a Solidity file in [importer_dir] imports [target].
|
|
474
|
+
solc resolves an import starting with `./` or `../` against the importing file's directory.
|
|
475
|
+
"""
|
|
476
|
+
rel = Util.as_posix(os.path.relpath(Util.abs_posix_path(target), Util.abs_posix_path(importer_dir)))
|
|
477
|
+
return rel if rel.startswith("../") else f"./{rel}"
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
def harness_import_path(importer_dir: Path, target: str) -> str:
|
|
481
|
+
"""
|
|
482
|
+
The path under which a harness in [importer_dir] imports [target], a solc source unit name from the main build.
|
|
483
|
+
A name that does not start with `./` or `../` is imported as is, so solc gives the file the same name as in the
|
|
484
|
+
main build and loads it once even if the harness also reaches it through other imports. A name that does would be
|
|
485
|
+
resolved against the harness's directory, so it is rewritten relative to it.
|
|
486
|
+
"""
|
|
487
|
+
return relative_import_path(importer_dir, target) if target.startswith(("./", "../")) else target
|
|
488
|
+
|
|
489
|
+
|
|
471
490
|
class CertoraBuildGenerator:
|
|
472
491
|
# 12,14,04,06,00,04,10 is 0xce4604a aka certora.
|
|
473
492
|
CONSTRUCTOR_STRING = "constructor"
|
|
@@ -3115,7 +3134,7 @@ class CertoraBuildGenerator:
|
|
|
3115
3134
|
# Note we import and don't inline the file's contents since that's how the
|
|
3116
3135
|
# original file is accessed also in the actual code, and compiling it
|
|
3117
3136
|
# directly can cause issues.
|
|
3118
|
-
tmp_file.write(f"import \"{original_file}\";\n\n")
|
|
3137
|
+
tmp_file.write(f"import \"{harness_import_path(file_dir, original_file)}\";\n\n")
|
|
3119
3138
|
rel_path = os.path.relpath(tmp_file.name, Path.cwd())
|
|
3120
3139
|
tmp_abs_path = Util.abs_posix_path(tmp_file.name)
|
|
3121
3140
|
# Add the temp file to all map attributes so that map lookups
|
|
@@ -3179,7 +3198,7 @@ class CertoraBuildGenerator:
|
|
|
3179
3198
|
current_content = tmp_file.read()
|
|
3180
3199
|
|
|
3181
3200
|
# Prepare modified content with target import at the beginning
|
|
3182
|
-
rel_target_path =
|
|
3201
|
+
rel_target_path = harness_import_path(file_dir, target_file)
|
|
3183
3202
|
modified_content = f'import "{rel_target_path}";\n{current_content}'
|
|
3184
3203
|
|
|
3185
3204
|
# Write modified content
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildDataClasses.py
RENAMED
|
@@ -194,6 +194,10 @@ class ContractInSDC:
|
|
|
194
194
|
"solidityTypes": [x.as_dict() for x in self.types],
|
|
195
195
|
"compilerName": "" if not self.compiler_collector else self.compiler_collector.compiler_name,
|
|
196
196
|
"compilerVersion": self.compiler_version,
|
|
197
|
+
# Full compiler build identifier from `--version` (e.g.
|
|
198
|
+
# '0.8.34+commit.80d5c536.Darwin.appleclang'); additive alongside the
|
|
199
|
+
# triplet-only compilerVersion above. None if unavailable.
|
|
200
|
+
"compilerVersionFull": None if not self.compiler_collector else self.compiler_collector.compiler_version_full,
|
|
197
201
|
"compilerParameters": None if not self.compiler_parameters else self.compiler_parameters.as_dict(),
|
|
198
202
|
"sourceBytes": None if self.source_bytes is None else self.source_bytes.as_dict(),
|
|
199
203
|
"extensionContracts": [e.as_dict() for e in self.extension_contracts],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli
|
|
3
|
-
Version: 8.20.
|
|
3
|
+
Version: 8.20.2
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli
|
|
6
6
|
Author: Certora
|
|
@@ -38,4 +38,4 @@ Dynamic: requires-dist
|
|
|
38
38
|
Dynamic: requires-python
|
|
39
39
|
Dynamic: summary
|
|
40
40
|
|
|
41
|
-
Commit
|
|
41
|
+
Commit f5f7778. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "certora-cli", "tag": "8.20.2", "branch": "", "commit": "f5f7778", "timestamp": "20261016.20.56.176000", "version": "8.20.2"}
|
|
Binary file
|
|
@@ -3,11 +3,11 @@ import setuptools
|
|
|
3
3
|
|
|
4
4
|
setuptools.setup(
|
|
5
5
|
name="certora-cli",
|
|
6
|
-
version="8.20.
|
|
6
|
+
version="8.20.2",
|
|
7
7
|
author="Certora",
|
|
8
8
|
author_email="support@certora.com",
|
|
9
9
|
description="Runner for the Certora Prover",
|
|
10
|
-
long_description="Commit
|
|
10
|
+
long_description="Commit f5f7778. 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",
|
|
13
13
|
packages=setuptools.find_packages(),
|
certora_cli-8.20.0/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Commit f567630. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"name": "certora-cli", "tag": "8.20.0", "branch": "", "commit": "f567630", "timestamp": "20261015.12.30.517651", "version": "8.20.0"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py
RENAMED
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py
RENAMED
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraBuildCacheManager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCollectRunMetadata.py
RENAMED
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraCompilerParameters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContextAttributes.py
RENAMED
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraContextValidator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraMiniSpecParser.py
RENAMED
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraOffsetConverter.py
RENAMED
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraParseBuildScript.py
RENAMED
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraProjectScanner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/certoraVerifyGenerator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/CertoraProver/uncheckedOverflowInstrumenter.py
RENAMED
|
File without changes
|
|
File without changes
|
{certora_cli-8.20.0 → certora_cli-8.20.2}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|