certora-cli-beta-mirror 8.4.2__py3-none-any.whl → 8.4.4__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/certoraCloudIO.py +4 -1
- certora_cli/CertoraProver/certoraCollectRunMetadata.py +29 -0
- certora_cli/Shared/certoraUtils.py +2 -2
- certora_cli/certoraRun.py +9 -1
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/METADATA +2 -2
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/RECORD +13 -13
- certora_jars/ASTExtraction.jar +0 -0
- certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -1
- certora_jars/Typechecker.jar +0 -0
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/LICENSE +0 -0
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/WHEEL +0 -0
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/entry_points.txt +0 -0
- {certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/top_level.txt +0 -0
|
@@ -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 =
|
|
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')}_{
|
|
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
|
certora_cli/certoraRun.py
CHANGED
|
@@ -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)
|
|
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
|
|
{certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: certora-cli-beta-mirror
|
|
3
|
-
Version: 8.4.
|
|
3
|
+
Version: 8.4.4
|
|
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
|
|
42
|
+
Commit 0d90215. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -6,7 +6,7 @@ certora_cli/certoraEVMProver.py,sha256=AH8ZeWXAs7wK6nNKFANCt6seLf9EaaFXtfpjc3xdI
|
|
|
6
6
|
certora_cli/certoraEqCheck.py,sha256=qfZq7bpU1kbAIezC66W61VfKNZz7Uywg2Ygup62qYeo,1069
|
|
7
7
|
certora_cli/certoraMutate.py,sha256=XhFHyNVP_sk-3XkY6AAV5fVliEFAVRq-JeDGsqE5IQQ,3333
|
|
8
8
|
certora_cli/certoraRanger.py,sha256=thJ4EKo-MFHklCk-7zJADZ-9SO6eCg1AFv88-QssLj0,1289
|
|
9
|
-
certora_cli/certoraRun.py,sha256=
|
|
9
|
+
certora_cli/certoraRun.py,sha256=c3ySo9attnuMdrnWxUNKLu4PgKsqgoYrUgJnL0Ej3Qs,6651
|
|
10
10
|
certora_cli/certoraSolanaProver.py,sha256=1R1YnGHCofb05GqFgpxRh3ZmHkmwMm1hPM7rfeiEu7o,3250
|
|
11
11
|
certora_cli/certoraSorobanProver.py,sha256=SYJKz5Sw-N0bJrSa1njRCE53R9_PMz7IWLhfamOjisk,2840
|
|
12
12
|
certora_cli/certoraSuiProver.py,sha256=gRs-iihB35ZSEIQ5-hJN-wLgrHZlcfmpk76Wr6vza74,2827
|
|
@@ -18,9 +18,9 @@ certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=DnVd7w92xjmg0DIrMgo
|
|
|
18
18
|
certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=hO0w3YK9V9gZsTbh4gxxlnEAaOiubUwfzNEw6uL1HaE,14841
|
|
19
19
|
certora_cli/CertoraProver/certoraBuildRust.py,sha256=ZPbNp4ttRmzcKhFsgHSiHDRExNPaLOzgxTRqu23o1D0,6061
|
|
20
20
|
certora_cli/CertoraProver/certoraBuildSui.py,sha256=zMXD2XnC4oqRDzPcBvSZmVquL3UG5paBZkfUT3JPbYY,4180
|
|
21
|
-
certora_cli/CertoraProver/certoraCloudIO.py,sha256=
|
|
21
|
+
certora_cli/CertoraProver/certoraCloudIO.py,sha256=ElRVD-c69aSURtgobuxbEfg6rPzQDSTqtTZJmeT_SYU,54430
|
|
22
22
|
certora_cli/CertoraProver/certoraCollectConfigurationLayout.py,sha256=Rln6LsqMp-u0H2fAFulTLAn7GW-j3ox2XZSz0ghdjk0,14116
|
|
23
|
-
certora_cli/CertoraProver/certoraCollectRunMetadata.py,sha256=
|
|
23
|
+
certora_cli/CertoraProver/certoraCollectRunMetadata.py,sha256=SonKgq2l6_8o6xySbinEinEd32Ufrk3VB0Roq-CmwoM,13718
|
|
24
24
|
certora_cli/CertoraProver/certoraCompilerParameters.py,sha256=r35y03IRwWIoz1GCNC7PuW3n8JPz9J1NGwhwUYKdYtI,1452
|
|
25
25
|
certora_cli/CertoraProver/certoraConfigIO.py,sha256=-1EhJYsiheYvyCgOOWrRCQBjqtqNXrpMKJYRq5cKJ0Y,8171
|
|
26
26
|
certora_cli/CertoraProver/certoraContext.py,sha256=bBbLPet5si6jFEdL1TBORN-HCiJGQK7hD6OQZ_ODmFY,28878
|
|
@@ -65,16 +65,16 @@ certora_cli/Shared/ExpectedComparator.py,sha256=eyRR-jni4WJoa6j2TK2lnZ89Tyb8U99w
|
|
|
65
65
|
certora_cli/Shared/__init__.py,sha256=s0dhvolFtsS4sRNzPVhC_rlw8mm194rCZ0WhOxInY40,1025
|
|
66
66
|
certora_cli/Shared/certoraAttrUtil.py,sha256=Nw8ban5Axp6c6dT-KJfCD9i9tKnGk1DbvRDDNH3--DU,8574
|
|
67
67
|
certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HCrP-kSR4,14013
|
|
68
|
-
certora_cli/Shared/certoraUtils.py,sha256=
|
|
68
|
+
certora_cli/Shared/certoraUtils.py,sha256=OM_dwh9-j6EbWL6bRJ7JR53aSBr8EqsTL1JeCfsx7pc,59472
|
|
69
69
|
certora_cli/Shared/certoraValidateFuncs.py,sha256=mYguICGfUwVZ9qPBFajss1xqHPDR-KRtskgERLum4AM,43225
|
|
70
70
|
certora_cli/Shared/proverCommon.py,sha256=DUB-uEKjOkZ-8qil6xukPqfTynpigXW-gcrm0_kRUZY,11383
|
|
71
|
-
certora_jars/ASTExtraction.jar,sha256=
|
|
72
|
-
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=
|
|
73
|
-
certora_jars/Typechecker.jar,sha256=
|
|
71
|
+
certora_jars/ASTExtraction.jar,sha256=DVqjHpTC4BzMHEkBfyEJ_NOTmZZybwR3t5RoVR6K1KE,20972855
|
|
72
|
+
certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=Nfq3_s2p7FhoAMxeaFTayUkZHHG283otKZRI3bKx0yg,144
|
|
73
|
+
certora_jars/Typechecker.jar,sha256=UOo_RG_gcW8QC2cFMEbkvlfuSeJS_2qjhD85yqev-x8,20935014
|
|
74
74
|
certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
-
certora_cli_beta_mirror-8.4.
|
|
76
|
-
certora_cli_beta_mirror-8.4.
|
|
77
|
-
certora_cli_beta_mirror-8.4.
|
|
78
|
-
certora_cli_beta_mirror-8.4.
|
|
79
|
-
certora_cli_beta_mirror-8.4.
|
|
80
|
-
certora_cli_beta_mirror-8.4.
|
|
75
|
+
certora_cli_beta_mirror-8.4.4.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
|
|
76
|
+
certora_cli_beta_mirror-8.4.4.dist-info/METADATA,sha256=c3f0-PgXCS-MIlLgkE_wQ8Mi1nlk3OwtZ0DhV8yz3ug,1286
|
|
77
|
+
certora_cli_beta_mirror-8.4.4.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
|
78
|
+
certora_cli_beta_mirror-8.4.4.dist-info/entry_points.txt,sha256=YXGQmR4tGdYD9lLdG_TEJkmVNrRauCtCDE88HwvO2Jo,569
|
|
79
|
+
certora_cli_beta_mirror-8.4.4.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
|
|
80
|
+
certora_cli_beta_mirror-8.4.4.dist-info/RECORD,,
|
certora_jars/ASTExtraction.jar
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "certora-cli-beta-mirror", "tag": "8.4.
|
|
1
|
+
{"name": "certora-cli-beta-mirror", "tag": "8.4.4", "branch": "", "commit": "0d90215", "timestamp": "20251030.14.56.075723", "version": "8.4.4"}
|
certora_jars/Typechecker.jar
CHANGED
|
Binary file
|
|
File without changes
|
|
File without changes
|
{certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{certora_cli_beta_mirror-8.4.2.dist-info → certora_cli_beta_mirror-8.4.4.dist-info}/top_level.txt
RENAMED
|
File without changes
|