certora-cli 7.3.0__tar.gz → 7.10.1__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-7.3.0/certora_cli.egg-info → certora_cli-7.10.1}/PKG-INFO +2 -2
- certora_cli-7.10.1/README.md +1 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollector.py +4 -1
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorFactory.py +2 -1
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorSol.py +2 -1
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorVy.py +9 -2
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorYul.py +24 -6
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraBuild.py +525 -505
- certora_cli-7.10.1/certora_cli/EVMVerifier/certoraBuildCacheManager.py +241 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraCloudIO.py +51 -14
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraCollectRunMetadata.py +102 -42
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraConfigIO.py +8 -19
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraContext.py +78 -43
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraContextAttribute.py +587 -215
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraContextValidator.py +58 -26
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraContractFuncs.py +43 -3
- certora_cli-7.10.1/certora_cli/EVMVerifier/certoraMiniSpecParser.py +189 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraType.py +3 -1
- certora_cli-7.10.1/certora_cli/EVMVerifier/certoraVerifyGenerator.py +170 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/equivCheck.py +7 -6
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Mutate/mutateApp.py +310 -182
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Mutate/mutateAttribute.py +41 -58
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Mutate/mutateConstants.py +4 -3
- certora_cli-7.10.1/certora_cli/Mutate/mutateUtil.py +47 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Mutate/mutateValidate.py +29 -6
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/certoraAttrUtil.py +36 -2
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/certoraLogging.py +1 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/certoraUtils.py +143 -65
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/certoraValidateFuncs.py +17 -3
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/certoraMutate.py +40 -42
- certora_cli-7.10.1/certora_cli/certoraRun.py +254 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1/certora_cli.egg-info}/PKG-INFO +2 -2
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli.egg-info/SOURCES.txt +4 -0
- certora_cli-7.10.1/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_jars/Typechecker.jar +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/setup.py +2 -2
- certora-cli-7.3.0/README.md +0 -1
- certora-cli-7.3.0/certora_cli/certoraRun.py +0 -258
- certora-cli-7.3.0/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
- {certora-cli-7.3.0 → certora_cli-7.10.1}/LICENSE +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/MANIFEST.in +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_bins/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorSolBased.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraCompilerParameters.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraContextClass.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraExtensionInfo.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraJobList.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/certoraNodeFilters.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Mutate/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/ExpectedComparator.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/Shared/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/certoraEqCheck.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli.egg-info/dependency_links.txt +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli.egg-info/entry_points.txt +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli.egg-info/requires.txt +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli.egg-info/top_level.txt +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/certora_jars/__init__.py +0 -0
- {certora-cli-7.3.0 → certora_cli-7.10.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: certora-cli
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.10.1
|
|
4
4
|
Summary: Runner for the Certora Prover
|
|
5
5
|
Home-page: https://pypi.org/project/certora-cli
|
|
6
6
|
Author: Certora
|
|
@@ -21,4 +21,4 @@ Requires-Dist: tabulate
|
|
|
21
21
|
Requires-Dist: tqdm
|
|
22
22
|
Requires-Dist: StrEnum
|
|
23
23
|
|
|
24
|
-
Commit
|
|
24
|
+
Commit 3dd11d6. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Commit 3dd11d6. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
|
{certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollector.py
RENAMED
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Any, Dict, List, Optional, Tuple, Set
|
|
5
5
|
from Shared.certoraUtils import AbstractAndSingleton, CompilerVersion
|
|
6
|
+
from EVMVerifier.certoraContractFuncs import SourceBytes
|
|
6
7
|
import EVMVerifier.certoraType as CT
|
|
7
8
|
|
|
8
9
|
|
|
@@ -22,8 +23,10 @@ class CompilerLangFunc:
|
|
|
22
23
|
implemented: bool # does this function have a body? (false for interface functions)
|
|
23
24
|
overrides: bool # does this function override an interface declaration or super-contract definition?
|
|
24
25
|
contractName: str
|
|
26
|
+
source_bytes: Optional[SourceBytes]
|
|
25
27
|
ast_id: Optional[int] = None
|
|
26
|
-
|
|
28
|
+
original_file: Optional[str] = None
|
|
29
|
+
body_location: Optional[str] = None
|
|
27
30
|
|
|
28
31
|
|
|
29
32
|
class CompilerLang(metaclass=AbstractAndSingleton):
|
|
@@ -72,7 +72,8 @@ class CompilerCollectorFactory:
|
|
|
72
72
|
return CompilerCollectorVy(version)
|
|
73
73
|
elif str(path).endswith(".sol"):
|
|
74
74
|
version = self.__get_solc_version(path)
|
|
75
|
-
|
|
75
|
+
|
|
76
|
+
return CompilerCollectorSol(version, CompilerLangSol(), not self.context.no_memory_safe_autofinders)
|
|
76
77
|
elif str(path).endswith(".yul"):
|
|
77
78
|
version = self.__get_solc_version(path)
|
|
78
79
|
return CompilerCollectorYul(version, CompilerLangYul())
|
{certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorSol.py
RENAMED
|
@@ -35,7 +35,7 @@ class CompilerLangSol(CompilerLang, metaclass=Singleton):
|
|
|
35
35
|
|
|
36
36
|
@staticmethod
|
|
37
37
|
def compilation_output_path(sdc_name: str) -> Path:
|
|
38
|
-
return get_certora_config_dir() / f"{sdc_name}.standard.json
|
|
38
|
+
return get_certora_config_dir() / f"{sdc_name}.standard.stdout.json"
|
|
39
39
|
|
|
40
40
|
@staticmethod
|
|
41
41
|
def get_supports_imports() -> bool:
|
|
@@ -81,6 +81,7 @@ class CompilerCollectorSol(CompilerCollectorSolBased):
|
|
|
81
81
|
|
|
82
82
|
def __init__(self, version: CompilerVersion, lang: CompilerLang, use_memory_safe_autofinders: bool):
|
|
83
83
|
super().__init__(version, lang)
|
|
84
|
+
# will only be applied for supporting solc versions
|
|
84
85
|
self.__use_memory_safe_autofinders = use_memory_safe_autofinders
|
|
85
86
|
|
|
86
87
|
def normalize_storage(self, is_storage: bool, arg_name: str) -> str:
|
{certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorVy.py
RENAMED
|
@@ -688,8 +688,11 @@ class CompilerLangVy(CompilerLang, metaclass=Singleton):
|
|
|
688
688
|
implemented = True,
|
|
689
689
|
overrides = False,
|
|
690
690
|
visibility = first_of(decorators, ["internal", "external"]),
|
|
691
|
+
source_bytes = None,
|
|
691
692
|
ast_id = function_def['node_id'],
|
|
692
|
-
contractName = contract_name
|
|
693
|
+
contractName = contract_name,
|
|
694
|
+
original_file = None,
|
|
695
|
+
body_location = None,
|
|
693
696
|
))
|
|
694
697
|
return result
|
|
695
698
|
|
|
@@ -714,8 +717,11 @@ class CompilerLangVy(CompilerLang, metaclass=Singleton):
|
|
|
714
717
|
implemented = True,
|
|
715
718
|
overrides = False,
|
|
716
719
|
visibility = "external",
|
|
720
|
+
source_bytes = None,
|
|
717
721
|
ast_id = None,
|
|
718
|
-
contractName = contract_name
|
|
722
|
+
contractName = contract_name,
|
|
723
|
+
original_file = None,
|
|
724
|
+
body_location = None,
|
|
719
725
|
)
|
|
720
726
|
|
|
721
727
|
@staticmethod
|
|
@@ -1044,6 +1050,7 @@ class CompilerLangVy(CompilerLang, metaclass=Singleton):
|
|
|
1044
1050
|
overrides=False,
|
|
1045
1051
|
# according to Solidity docs, getter functions have external visibility
|
|
1046
1052
|
visibility="external",
|
|
1053
|
+
source_bytes=None,
|
|
1047
1054
|
ast_id=None,
|
|
1048
1055
|
contractName=contract_name
|
|
1049
1056
|
)
|
{certora-cli-7.3.0 → certora_cli-7.10.1}/certora_cli/EVMVerifier/Compiler/CompilerCollectorYul.py
RENAMED
|
@@ -57,10 +57,10 @@ class CompilerLangYul(CompilerLangSol, metaclass=Singleton):
|
|
|
57
57
|
base = type_name[:-2]
|
|
58
58
|
base_type = CT.Type.from_primitive_name(base)
|
|
59
59
|
out_type: CT.Type = CT.ArrayType(type_name, base_type, None, contract_name, 0)
|
|
60
|
-
elif type_name == "bytes":
|
|
60
|
+
elif type_name == "bytes" or type_name == "string":
|
|
61
61
|
out_type = CT.PackedBytes()
|
|
62
62
|
else:
|
|
63
|
-
out_type = CT.Type.from_primitive_name(
|
|
63
|
+
out_type = CT.Type.from_primitive_name(type_name)
|
|
64
64
|
full_args.append(CT.TypeInstance(out_type))
|
|
65
65
|
param_names.append(input["name"])
|
|
66
66
|
returns = []
|
|
@@ -71,17 +71,35 @@ class CompilerLangYul(CompilerLangSol, metaclass=Singleton):
|
|
|
71
71
|
base = type_name[:-2]
|
|
72
72
|
base_type = CT.Type.from_primitive_name(base)
|
|
73
73
|
out_type = CT.ArrayType(type_name, base_type, None, contract_name, 0)
|
|
74
|
-
elif type_name == "bytes":
|
|
74
|
+
elif type_name == "bytes" or type_name == "string":
|
|
75
75
|
out_type = CT.PackedBytes()
|
|
76
76
|
else:
|
|
77
|
-
out_type = CT.Type.from_primitive_name(
|
|
77
|
+
out_type = CT.Type.from_primitive_name(type_name)
|
|
78
78
|
returns.append(CT.TypeInstance(out_type))
|
|
79
79
|
visibility = "external"
|
|
80
80
|
sighash = self.get_sighash(name, full_args)
|
|
81
81
|
notpayable = state_mutability in ["nonpayable", "view", "pure"]
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
func = Func(
|
|
84
|
+
name=name,
|
|
85
|
+
fullArgs=full_args,
|
|
86
|
+
paramNames=param_names,
|
|
87
|
+
returns=returns,
|
|
88
|
+
sighash=sighash,
|
|
89
|
+
notpayable=notpayable,
|
|
90
|
+
fromLib=False,
|
|
91
|
+
isConstructor=False,
|
|
92
|
+
stateMutability=state_mutability,
|
|
93
|
+
visibility=visibility,
|
|
94
|
+
implemented=True,
|
|
95
|
+
overrides=False,
|
|
96
|
+
contractName=contract_name,
|
|
97
|
+
source_bytes=None,
|
|
98
|
+
ast_id=None,
|
|
99
|
+
original_file=None,
|
|
100
|
+
body_location=None,
|
|
101
|
+
)
|
|
102
|
+
funcs.append(func)
|
|
85
103
|
return funcs
|
|
86
104
|
|
|
87
105
|
|