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.
@@ -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 {json_dict} does not exist")
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 _handle_via_ir(self, contract_file_path: str, settings_dict: Dict[str, Any]) -> None:
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
- match = Util.match_path_to_mapping_key(Path(contract_file_path), self.context.solc_via_ir_map)
1369
- if match:
1370
- settings_dict["viaIR"] = match
1371
- elif self.context.solc_via_ir:
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.context.solc_via_ir:
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.context.solc_via_ir:
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 match_pattern_to_source(k, path):
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: 20250616.16.37.579569
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 07395db. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
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=vEjY15A_4OWuNELys2joVxbl-k_lKC25RRfBlvQgfRI,212074
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=n99E6MzET_kYf0SK4XSh0OcT40T22UjqN4ynDGB6o-w,56477
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=Exdrs__Qrre-TumiFnPlor3UrRxEzSgUdCLw4zkcS1U,170
68
- certora_jars/Typechecker.jar,sha256=tiGB6erl6HudkOzMGz0BqQWr-qS542VU9WFZGtM_Uxo,17142588
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-20250616.16.37.579569.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
71
- certora_cli_alpha_master-20250616.16.37.579569.dist-info/METADATA,sha256=e6A70cVILVGEEnS6yCZBcgrg8qZ3e9_FwXc1VYJjDKI,1248
72
- certora_cli_alpha_master-20250616.16.37.579569.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
73
- certora_cli_alpha_master-20250616.16.37.579569.dist-info/entry_points.txt,sha256=_SQ5_uYOAJXtqEW992nIvq7blW9cWFSUVEdbMGuy--4,443
74
- certora_cli_alpha_master-20250616.16.37.579569.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
75
- certora_cli_alpha_master-20250616.16.37.579569.dist-info/RECORD,,
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": "07395db", "timestamp": "20250616.16.37.579569", "version": "20250616.16.37.579569+07395db"}
1
+ {"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "d873959", "timestamp": "20250617.7.51.266321", "version": "20250617.7.51.266321+d873959"}
Binary file