certora-cli-alpha-master 20250616.16.37.579569__py3-none-any.whl → 20250617.7.51.266321__py3-none-any.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.
- certora_cli/CertoraProver/certoraBuild.py +14 -9
- certora_cli/Shared/certoraUtils.py +2 -18
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/METADATA +3 -2
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/RECORD +10 -10
- certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -1
- certora_jars/Typechecker.jar +0 -0
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/LICENSE +0 -0
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/WHEEL +0 -0
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/entry_points.txt +0 -0
- {certora_cli_alpha_master-20250616.16.37.579569.dist-info → certora_cli_alpha_master-20250617.7.51.266321.dist-info}/top_level.txt +0 -0
@@ -450,8 +450,12 @@ def convert_pathname_to_posix(json_dict: Dict[str, Any], entry: str, smart_contr
|
|
450
450
|
if path_obj.is_file():
|
451
451
|
json_dict_posix_paths[path_obj.as_posix()] = json_dict[entry][file_path]
|
452
452
|
else:
|
453
|
+
json_dict_str = str(json_dict)
|
454
|
+
# protecting against long strings
|
455
|
+
if len(json_dict_str) > 200:
|
456
|
+
json_dict_str = json_dict_str[:200] + '...'
|
453
457
|
fatal_error(compiler_logger, f"The path of the source file {file_path}"
|
454
|
-
f"in the standard json file {
|
458
|
+
f"in the standard json file {json_dict_str} does not exist")
|
455
459
|
json_dict[entry] = json_dict_posix_paths
|
456
460
|
|
457
461
|
|
@@ -1361,14 +1365,15 @@ class CertoraBuildGenerator:
|
|
1361
1365
|
|
1362
1366
|
return bytecode
|
1363
1367
|
|
1364
|
-
def
|
1368
|
+
def get_via_ir_value(self, contract_file_path: str) -> bool:
|
1365
1369
|
if not self.context.solc_via_ir_map and not self.context.solc_via_ir:
|
1366
|
-
return
|
1370
|
+
return False
|
1367
1371
|
if self.context.solc_via_ir_map:
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
+
return bool(Util.match_path_to_mapping_key(Path(contract_file_path), self.context.solc_via_ir_map))
|
1373
|
+
return self.context.solc_via_ir
|
1374
|
+
|
1375
|
+
def _handle_via_ir(self, contract_file_path: str, settings_dict: Dict[str, Any]) -> None:
|
1376
|
+
if self.get_via_ir_value(contract_file_path):
|
1372
1377
|
settings_dict["viaIR"] = True
|
1373
1378
|
|
1374
1379
|
def _handle_evm_version(self, contract_file_path: str, settings_dict: Dict[str, Any]) -> None:
|
@@ -1400,7 +1405,7 @@ class CertoraBuildGenerator:
|
|
1400
1405
|
optimizer = settings_dict.get("optimizer")
|
1401
1406
|
if optimizer and isinstance(optimizer, dict) and optimizer.get('enabled'):
|
1402
1407
|
# if we are not disabling finder friendly optimizer specifically, enable it whenever viaIR is also enabled
|
1403
|
-
if not self.context.strict_solc_optimizer and self.
|
1408
|
+
if not self.context.strict_solc_optimizer and self.get_via_ir_value(contract_file_path):
|
1404
1409
|
# The default optimizer steps (taken from libsolidity/interface/OptimiserSettings.h) but with the
|
1405
1410
|
# full inliner step removed
|
1406
1411
|
solc0_8_26_to_0_8_30 = ("dhfoDgvulfnTUtnIfxa[r]EscLMVcul[j]Trpeulxa[r]cLCTUca[r]LSsTFOtfDnca[r]" +
|
@@ -2416,7 +2421,7 @@ class CertoraBuildGenerator:
|
|
2416
2421
|
# if no function finder mode set, determine based on viaIR enabled or not:
|
2417
2422
|
if self.context.function_finder_mode is None:
|
2418
2423
|
# in via-ir, should not compress
|
2419
|
-
if self.
|
2424
|
+
if self.get_via_ir_value(contract_file):
|
2420
2425
|
should_compress = False
|
2421
2426
|
else:
|
2422
2427
|
should_compress = True
|
@@ -44,6 +44,7 @@ import tempfile
|
|
44
44
|
from datetime import datetime
|
45
45
|
from rich.console import Console
|
46
46
|
from rich.text import Text
|
47
|
+
from wcmatch import glob
|
47
48
|
|
48
49
|
CONSOLE = Console()
|
49
50
|
|
@@ -1197,7 +1198,7 @@ def match_path_to_mapping_key(path: Path, m: OrderedDict[str, str]) -> Optional[
|
|
1197
1198
|
@return: the value from the map that best matches the path, None if not found.
|
1198
1199
|
"""
|
1199
1200
|
for k, v in m.items():
|
1200
|
-
if
|
1201
|
+
if glob.globmatch(str(path), k, flags=glob.GLOBSTAR):
|
1201
1202
|
return v
|
1202
1203
|
return None # No match
|
1203
1204
|
|
@@ -1481,20 +1482,3 @@ def file_in_source_tree(file_path: Path) -> bool:
|
|
1481
1482
|
return True
|
1482
1483
|
except ValueError:
|
1483
1484
|
return False
|
1484
|
-
|
1485
|
-
def match_pattern_to_source(pattern: str, file_path: Path) -> bool:
|
1486
|
-
|
1487
|
-
if file_in_source_tree(file_path):
|
1488
|
-
base_dir = get_certora_sources_dir()
|
1489
|
-
else:
|
1490
|
-
base_dir = Path.cwd()
|
1491
|
-
|
1492
|
-
# Search for matches under base_dir
|
1493
|
-
for candidate in base_dir.rglob(pattern):
|
1494
|
-
try:
|
1495
|
-
if os.path.samefile(candidate, file_path):
|
1496
|
-
return True
|
1497
|
-
except FileNotFoundError:
|
1498
|
-
# candidate or file_path may not exist; skip safely
|
1499
|
-
continue
|
1500
|
-
return False
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: certora-cli-alpha-master
|
3
|
-
Version:
|
3
|
+
Version: 20250617.7.51.266321
|
4
4
|
Summary: Runner for the Certora Prover
|
5
5
|
Home-page: https://pypi.org/project/certora-cli-alpha-master
|
6
6
|
Author: Certora
|
@@ -25,6 +25,7 @@ Requires-Dist: tqdm
|
|
25
25
|
Requires-Dist: StrEnum
|
26
26
|
Requires-Dist: universalmutator
|
27
27
|
Requires-Dist: jinja2
|
28
|
+
Requires-Dist: wcmatch
|
28
29
|
Dynamic: author
|
29
30
|
Dynamic: author-email
|
30
31
|
Dynamic: classifier
|
@@ -37,4 +38,4 @@ Dynamic: requires-dist
|
|
37
38
|
Dynamic: requires-python
|
38
39
|
Dynamic: summary
|
39
40
|
|
40
|
-
Commit
|
41
|
+
Commit d873959. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
@@ -9,7 +9,7 @@ certora_cli/certoraSolanaProver.py,sha256=7hu-YJJNA_P5eAJq_jYh6IGjiUf0PegGUBRCJ5
|
|
9
9
|
certora_cli/certoraSorobanProver.py,sha256=qE6b_vicC8KgOvUz7UTOaDuXT3UW0MMhq3keQgUVvzs,2865
|
10
10
|
certora_cli/rustMutator.py,sha256=6AvOGU8Ijz89zW_ZJCWlfXkeobJsk7EsqZhK7Eqwn-Y,14544
|
11
11
|
certora_cli/CertoraProver/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
|
12
|
-
certora_cli/CertoraProver/certoraBuild.py,sha256=
|
12
|
+
certora_cli/CertoraProver/certoraBuild.py,sha256=OOIRWyCZE7QVduKCmW0ZTwhV-xBQqXLWBIqCzv0Lf4I,212376
|
13
13
|
certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=dzXC8A-V9gr1GGsPYglQLlFLoR2Tk4dTJuMHaxXBfgw,13257
|
14
14
|
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=8tPny9-pasC7CCRKQclaVQ3qcEDNa6EdOUu1ZWh0MZY,14704
|
15
15
|
certora_cli/CertoraProver/certoraBuildRust.py,sha256=ofKvmtqzUGTrgVm5crcybV7gbElbjiUc6Z4FphPEjz0,6016
|
@@ -60,16 +60,16 @@ certora_cli/Shared/ExpectedComparator.py,sha256=eyRR-jni4WJoa6j2TK2lnZ89Tyb8U99w
|
|
60
60
|
certora_cli/Shared/__init__.py,sha256=s0dhvolFtsS4sRNzPVhC_rlw8mm194rCZ0WhOxInY40,1025
|
61
61
|
certora_cli/Shared/certoraAttrUtil.py,sha256=ZsoS6xbSZnAjEoPEcfiJi6CvHU-1ySBKubvVKh78ohs,8373
|
62
62
|
certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HCrP-kSR4,14013
|
63
|
-
certora_cli/Shared/certoraUtils.py,sha256=
|
63
|
+
certora_cli/Shared/certoraUtils.py,sha256=xTVCh7bWdMDQR37SA6jLUHSelxsk3mbSYi26XKb4MZQ,56006
|
64
64
|
certora_cli/Shared/certoraValidateFuncs.py,sha256=EGoCGTtGMRzWdN-T5GducwkYbyqZBcSjQZHpau0fWnQ,41922
|
65
65
|
certora_cli/Shared/proverCommon.py,sha256=PqkjycZ3TdZr0RNWoPuA_VZ5b7EAAsu9ewymNH6kIm4,11291
|
66
66
|
certora_cli/Shared/rustProverCommon.py,sha256=NIZ5ECbhuiMegyRAl07CV3r68MFG2tBNKgUAQoV4uLI,2049
|
67
|
-
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=
|
68
|
-
certora_jars/Typechecker.jar,sha256=
|
67
|
+
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=CXoZ3bgkNJppO6dyV0Nyv4fa8oVJiKXQKyjzxvSV1fM,168
|
68
|
+
certora_jars/Typechecker.jar,sha256=GXraI_DFe3QVgHTxTReUogubr7849675zfomTIgfja8,17142623
|
69
69
|
certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
70
|
-
certora_cli_alpha_master-
|
71
|
-
certora_cli_alpha_master-
|
72
|
-
certora_cli_alpha_master-
|
73
|
-
certora_cli_alpha_master-
|
74
|
-
certora_cli_alpha_master-
|
75
|
-
certora_cli_alpha_master-
|
70
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
|
71
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/METADATA,sha256=XRxYX-73vgDGajkDsJZoPhiviae4NG7suZjlhuAqIfQ,1270
|
72
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
73
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/entry_points.txt,sha256=_SQ5_uYOAJXtqEW992nIvq7blW9cWFSUVEdbMGuy--4,443
|
74
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
|
75
|
+
certora_cli_alpha_master-20250617.7.51.266321.dist-info/RECORD,,
|
@@ -1 +1 @@
|
|
1
|
-
{"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "
|
1
|
+
{"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "d873959", "timestamp": "20250617.7.51.266321", "version": "20250617.7.51.266321+d873959"}
|
certora_jars/Typechecker.jar
CHANGED
Binary file
|
File without changes
|
File without changes
|
File without changes
|