certora-cli-alpha-master 20250708.13.43.606302__tar.gz → 20250708.16.32.202680__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.
Files changed (83) hide show
  1. {certora_cli_alpha_master-20250708.13.43.606302/certora_cli_alpha_master.egg-info → certora_cli_alpha_master-20250708.16.32.202680}/PKG-INFO +2 -2
  2. certora_cli_alpha_master-20250708.16.32.202680/README.md +1 -0
  3. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraBuildRust.py +30 -1
  4. certora_cli_alpha_master-20250708.13.43.606302/certora_cli/Shared/rustProverCommon.py → certora_cli_alpha_master-20250708.16.32.202680/certora_cli/CertoraProver/certoraBuildSui.py +24 -18
  5. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraCloudIO.py +18 -0
  6. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraContext.py +5 -1
  7. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraContextAttributes.py +34 -0
  8. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/proverCommon.py +3 -1
  9. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraSolanaProver.py +1 -1
  10. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraSorobanProver.py +1 -1
  11. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680/certora_cli_alpha_master.egg-info}/PKG-INFO +2 -2
  12. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli_alpha_master.egg-info/SOURCES.txt +1 -1
  13. certora_cli_alpha_master-20250708.16.32.202680/certora_jars/CERTORA-CLI-VERSION-METADATA.json +1 -0
  14. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_jars/Typechecker.jar +0 -0
  15. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/setup.py +2 -2
  16. certora_cli_alpha_master-20250708.13.43.606302/README.md +0 -1
  17. certora_cli_alpha_master-20250708.13.43.606302/certora_jars/CERTORA-CLI-VERSION-METADATA.json +0 -1
  18. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/LICENSE +0 -0
  19. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/MANIFEST.in +0 -0
  20. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_bins/__init__.py +0 -0
  21. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollector.py +0 -0
  22. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollectorFactory.py +0 -0
  23. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollectorSol.py +0 -0
  24. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollectorSolBased.py +0 -0
  25. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollectorVy.py +0 -0
  26. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/CompilerCollectorYul.py +0 -0
  27. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/Compiler/__init__.py +0 -0
  28. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/__init__.py +0 -0
  29. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraBuild.py +0 -0
  30. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraBuildCacheManager.py +0 -0
  31. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraBuildDataClasses.py +0 -0
  32. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraCollectConfigurationLayout.py +0 -0
  33. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraCollectRunMetadata.py +0 -0
  34. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraCompilerParameters.py +0 -0
  35. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraConfigIO.py +0 -0
  36. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraContextClass.py +0 -0
  37. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraContextValidator.py +0 -0
  38. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraContractFuncs.py +0 -0
  39. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraExtensionInfo.py +0 -0
  40. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraJobList.py +0 -0
  41. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraMiniSpecParser.py +0 -0
  42. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraNodeFilters.py +0 -0
  43. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraParseBuildScript.py +0 -0
  44. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraProjectScanner.py +0 -0
  45. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraSourceFinders.py +0 -0
  46. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraType.py +0 -0
  47. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/certoraVerifyGenerator.py +0 -0
  48. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/erc7201.py +0 -0
  49. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/splitRules.py +0 -0
  50. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/CertoraProver/storageExtension.py +0 -0
  51. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/Eq_default.conf +0 -0
  52. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/Eq_mc_no_out_template.spec +0 -0
  53. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/Eq_mc_template.spec +0 -0
  54. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/Eq_sanity.conf +0 -0
  55. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/Eq_template.spec +0 -0
  56. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/__init__.py +0 -0
  57. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/equivCheck.py +0 -0
  58. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/EquivalenceCheck/sanity.spec +0 -0
  59. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/__init__.py +0 -0
  60. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/mutateApp.py +0 -0
  61. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/mutateAttributes.py +0 -0
  62. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/mutateConstants.py +0 -0
  63. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/mutateUtil.py +0 -0
  64. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Mutate/mutateValidate.py +0 -0
  65. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/ExpectedComparator.py +0 -0
  66. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/__init__.py +0 -0
  67. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/certoraAttrUtil.py +0 -0
  68. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/certoraLogging.py +0 -0
  69. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/certoraUtils.py +0 -0
  70. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/Shared/certoraValidateFuncs.py +0 -0
  71. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/__init__.py +0 -0
  72. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraEVMProver.py +0 -0
  73. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraEqCheck.py +0 -0
  74. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraMutate.py +0 -0
  75. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraRanger.py +0 -0
  76. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/certoraRun.py +0 -0
  77. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli/rustMutator.py +0 -0
  78. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli_alpha_master.egg-info/dependency_links.txt +0 -0
  79. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli_alpha_master.egg-info/entry_points.txt +0 -0
  80. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli_alpha_master.egg-info/requires.txt +0 -0
  81. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_cli_alpha_master.egg-info/top_level.txt +0 -0
  82. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/certora_jars/__init__.py +0 -0
  83. {certora_cli_alpha_master-20250708.13.43.606302 → certora_cli_alpha_master-20250708.16.32.202680}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-alpha-master
3
- Version: 20250708.13.43.606302
3
+ Version: 20250708.16.32.202680
4
4
  Summary: Runner for the Certora Prover
5
5
  Home-page: https://pypi.org/project/certora-cli-alpha-master
6
6
  Author: Certora
@@ -38,4 +38,4 @@ Dynamic: requires-dist
38
38
  Dynamic: requires-python
39
39
  Dynamic: summary
40
40
 
41
- Commit d87e722. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
41
+ Commit 74f300a. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -0,0 +1 @@
1
+ Commit 74f300a. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -13,10 +13,20 @@
13
13
  # You should have received a copy of the GNU General Public License
14
14
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
15
 
16
+ from __future__ import annotations
17
+
18
+ import sys
19
+ from pathlib import Path
20
+
21
+ scripts_dir_path = Path(__file__).parent.parent.resolve() # containing directory
22
+ sys.path.insert(0, str(scripts_dir_path))
23
+
16
24
  import glob
17
25
  import shutil
26
+ import time
27
+ import logging
18
28
  from pathlib import Path
19
- from typing import Set
29
+ from typing import Set, Dict
20
30
 
21
31
  from CertoraProver.certoraBuild import build_source_tree
22
32
  from CertoraProver.certoraContextClass import CertoraContext
@@ -25,6 +35,25 @@ import CertoraProver.certoraContextAttributes as Attrs
25
35
  from Shared import certoraUtils as Util
26
36
 
27
37
 
38
+ log = logging.getLogger(__name__)
39
+
40
+
41
+ def build_rust_project(context: CertoraContext, timings: Dict) -> None:
42
+ """
43
+ Compile the Rust artefact and record elapsed time in *timings*.
44
+
45
+ Args:
46
+ context: The CertoraContext object containing the configuration.
47
+ timings: A dictionary to store timing information.
48
+ """
49
+ log.debug("Build Rust target")
50
+ start = time.perf_counter()
51
+ set_rust_build_directory(context)
52
+ timings["buildTime"] = round(time.perf_counter() - start, 4)
53
+ if context.test == str(Util.TestValue.AFTER_BUILD):
54
+ raise Util.TestResultsReady(context)
55
+
56
+
28
57
  def set_rust_build_directory(context: CertoraContext) -> None:
29
58
  if not context.files:
30
59
  build_rust_app(context)
@@ -13,13 +13,6 @@
13
13
  # You should have received a copy of the GNU General Public License
14
14
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
15
 
16
- """
17
- Shared helpers for Rust-based targets (Solana & Soroban).
18
-
19
- Placing the build logic in one module removes
20
- duplication from the dedicated entry scripts.
21
- """
22
-
23
16
  from __future__ import annotations
24
17
 
25
18
  import sys
@@ -28,25 +21,21 @@ from pathlib import Path
28
21
  scripts_dir_path = Path(__file__).parent.parent.resolve() # containing directory
29
22
  sys.path.insert(0, str(scripts_dir_path))
30
23
 
24
+ import shutil
31
25
  import time
32
26
  import logging
33
- from typing import Dict
34
-
35
- from Shared import certoraUtils as Util
27
+ from pathlib import Path
28
+ from typing import Set, Dict
36
29
 
30
+ from CertoraProver.certoraBuild import build_source_tree
37
31
  from CertoraProver.certoraContextClass import CertoraContext
38
-
39
- from CertoraProver.certoraBuildRust import set_rust_build_directory
32
+ from Shared import certoraUtils as Util
40
33
 
41
34
 
42
35
  log = logging.getLogger(__name__)
43
36
 
44
37
 
45
- # --------------------------------------------------------------------------- #
46
- # Build
47
- # --------------------------------------------------------------------------- #
48
-
49
- def build_rust_project(context: CertoraContext, timings: Dict) -> None:
38
+ def build_sui_project(context: CertoraContext, timings: Dict) -> None:
50
39
  """
51
40
  Compile the Rust artefact and record elapsed time in *timings*.
52
41
 
@@ -56,7 +45,24 @@ def build_rust_project(context: CertoraContext, timings: Dict) -> None:
56
45
  """
57
46
  log.debug("Build Rust target")
58
47
  start = time.perf_counter()
59
- set_rust_build_directory(context)
48
+ set_sui_build_directory(context)
60
49
  timings["buildTime"] = round(time.perf_counter() - start, 4)
61
50
  if context.test == str(Util.TestValue.AFTER_BUILD):
62
51
  raise Util.TestResultsReady(context)
52
+
53
+
54
+ def set_sui_build_directory(context: CertoraContext) -> None:
55
+ assert context.move_path, "build_sui_project: expecting move_path to link to a build directory"
56
+
57
+ shutil.copytree(context.move_path, Util.get_build_dir() / Path(context.move_path).name)
58
+
59
+ sources: Set[Path] = set()
60
+ if getattr(context, 'conf_file', None) and Path(context.conf_file).exists():
61
+ sources.add(Path(context.conf_file).absolute())
62
+
63
+ try:
64
+ # Create generators
65
+ build_source_tree(sources, context)
66
+
67
+ except Exception as e:
68
+ raise Util.CertoraUserInputError(f"Collecting build files failed with the exception: {e}")
@@ -73,6 +73,7 @@ class EcoEnum(Util.NoValEnum):
73
73
  EVM = Util.auto()
74
74
  SOROBAN = Util.auto()
75
75
  SOLANA = Util.auto()
76
+ SUI = Util.auto()
76
77
 
77
78
  class ProductEnum(Util.NoValEnum):
78
79
  PROVER = Util.auto()
@@ -623,6 +624,11 @@ class CloudVerification:
623
624
  rust_jar_settings.append(paths_in_source_dir(self.context.solana_inlining))
624
625
 
625
626
  auth_data["jarSettings"] = rust_jar_settings + jar_settings
627
+
628
+ elif Attrs.is_sui_app():
629
+ sui_jar_settings = ['-movePath', Path(self.context.move_path).name]
630
+ auth_data["jarSettings"] = sui_jar_settings + jar_settings
631
+
626
632
  else:
627
633
  auth_data["jarSettings"] = jar_settings
628
634
 
@@ -644,6 +650,8 @@ class CloudVerification:
644
650
  auth_data["ecosystem"] = EcoEnum.SOLANA.name
645
651
  elif Attrs.is_soroban_app():
646
652
  auth_data["ecosystem"] = EcoEnum.SOROBAN.name
653
+ elif Attrs.is_sui_app():
654
+ auth_data["ecosystem"] = EcoEnum.SUI.name
647
655
  else:
648
656
  auth_data["ecosystem"] = EcoEnum.EVM.name
649
657
 
@@ -773,6 +781,16 @@ class CloudVerification:
773
781
 
774
782
  result = compress_files(self.ZipFilePath, *files_list,
775
783
  short_output=Ctx.is_minimal_cli_output(self.context))
784
+ elif Attrs.is_sui_app():
785
+ files_list = [Util.get_certora_metadata_file(),
786
+ Util.get_configuration_layout_data_file(),
787
+ Util.get_build_dir() / Path(self.context.move_path).name]
788
+
789
+ if Util.get_certora_sources_dir().exists():
790
+ files_list.append(Util.get_certora_sources_dir())
791
+
792
+ result = compress_files(self.ZipFilePath, *files_list,
793
+ short_output=Ctx.is_minimal_cli_output(self.context))
776
794
 
777
795
  else:
778
796
  # Zip the log file first separately and again with the rest of the files, so it will not be decompressed
@@ -122,7 +122,11 @@ def get_local_run_cmd(context: CertoraContext) -> List[str]:
122
122
  """
123
123
  run_args = []
124
124
 
125
- if Attrs.is_rust_app():
125
+ if Attrs.is_sui_app():
126
+ # For local runs, we want path to be relative to cwd instead of zip root.
127
+ move_rel_path = os.path.relpath(Path(context.move_path), os.getcwd())
128
+ run_args.extend(['-movePath', move_rel_path])
129
+ elif Attrs.is_rust_app():
126
130
  # For local runs, we want path to be relative to cwd instead of zip root.
127
131
  rust_rel_path = os.path.relpath(Path(context.files[0]), os.getcwd())
128
132
  run_args.append(rust_rel_path)
@@ -1672,6 +1672,36 @@ class SorobanProverAttributes(CommonAttributes, InternalUseAttributes, BackendAt
1672
1672
  )
1673
1673
 
1674
1674
 
1675
+ class SuiProverAttributes(CommonAttributes, InternalUseAttributes, BackendAttributes):
1676
+ FILES = AttrUtil.AttributeDefinition(
1677
+ attr_validation_func=Vf.validate_dir,
1678
+ arg_type=AttrUtil.AttrArgType.LIST,
1679
+ argparse_args={
1680
+ 'nargs': AttrUtil.MULTIPLE_OCCURRENCES
1681
+ },
1682
+ affects_build_cache_key=True,
1683
+ disables_build_cache=False,
1684
+ config_data=AttributeJobConfigData(
1685
+ main_section=MainSection.NEW_SECTION
1686
+ )
1687
+ )
1688
+
1689
+ MOVE_PATH = AttrUtil.AttributeDefinition(
1690
+ attr_validation_func=Vf.validate_dir,
1691
+ arg_type=AttrUtil.AttrArgType.STRING,
1692
+ help_msg="path to a directory which includes all binary .mv files for the Prover",
1693
+ default_desc="",
1694
+ argparse_args={
1695
+ 'action': AttrUtil.UniqueStore
1696
+ },
1697
+ affects_build_cache_key=True,
1698
+ disables_build_cache=False,
1699
+ config_data=AttributeJobConfigData(
1700
+ main_section=MainSection.NEW_SECTION
1701
+ )
1702
+ )
1703
+
1704
+
1675
1705
  class SolanaProverAttributes(CommonAttributes, InternalUseAttributes, BackendAttributes, RustAttributes):
1676
1706
  FILES = AttrUtil.AttributeDefinition(
1677
1707
  attr_validation_func=Vf.validate_solana_extension,
@@ -1753,3 +1783,7 @@ def is_ranger_app() -> bool:
1753
1783
 
1754
1784
  def is_sophy_app() -> bool:
1755
1785
  return False # wait for the tool to be added
1786
+
1787
+
1788
+ def is_sui_app() -> bool:
1789
+ return get_attribute_class() == SuiProverAttributes
@@ -156,11 +156,13 @@ def ensure_version_compatibility(context: CertoraContext) -> None:
156
156
  """
157
157
  validate_version_and_branch(context)
158
158
 
159
+
159
160
  # --------------------------------------------------------------------------- #
160
161
  # Verification helpers
161
162
  # --------------------------------------------------------------------------- #
162
163
 
163
- def run_local(context: CertoraContext, timings: Dict, additional_commands: Optional[List[str]] = None, compare_with_expected_file: bool = False) -> int:
164
+ def run_local(context: CertoraContext, timings: Dict, additional_commands: Optional[List[str]] = None,
165
+ compare_with_expected_file: bool = False) -> int:
164
166
  """
165
167
  Run the verifier locally and return its exit code (0 = success).
166
168
  Args:
@@ -25,7 +25,7 @@ sys.path.insert(0, str(scripts_dir_path))
25
25
 
26
26
 
27
27
  import CertoraProver.certoraContextAttributes as Attrs
28
- from Shared.rustProverCommon import build_rust_project
28
+ from CertoraProver.certoraBuildRust import build_rust_project
29
29
  from Shared.proverCommon import (
30
30
  build_context,
31
31
  collect_and_dump_metadata,
@@ -26,7 +26,7 @@ from typing import List, Optional, Dict
26
26
 
27
27
  import CertoraProver.certoraContextAttributes as Attrs
28
28
 
29
- from Shared.rustProverCommon import build_rust_project
29
+ from CertoraProver.certoraBuildRust import build_rust_project
30
30
  from Shared.proverCommon import (
31
31
  build_context,
32
32
  collect_and_dump_metadata,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-alpha-master
3
- Version: 20250708.13.43.606302
3
+ Version: 20250708.16.32.202680
4
4
  Summary: Runner for the Certora Prover
5
5
  Home-page: https://pypi.org/project/certora-cli-alpha-master
6
6
  Author: Certora
@@ -38,4 +38,4 @@ Dynamic: requires-dist
38
38
  Dynamic: requires-python
39
39
  Dynamic: summary
40
40
 
41
- Commit d87e722. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
41
+ Commit 74f300a. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -17,6 +17,7 @@ certora_cli/CertoraProver/certoraBuild.py
17
17
  certora_cli/CertoraProver/certoraBuildCacheManager.py
18
18
  certora_cli/CertoraProver/certoraBuildDataClasses.py
19
19
  certora_cli/CertoraProver/certoraBuildRust.py
20
+ certora_cli/CertoraProver/certoraBuildSui.py
20
21
  certora_cli/CertoraProver/certoraCloudIO.py
21
22
  certora_cli/CertoraProver/certoraCollectConfigurationLayout.py
22
23
  certora_cli/CertoraProver/certoraCollectRunMetadata.py
@@ -67,7 +68,6 @@ certora_cli/Shared/certoraLogging.py
67
68
  certora_cli/Shared/certoraUtils.py
68
69
  certora_cli/Shared/certoraValidateFuncs.py
69
70
  certora_cli/Shared/proverCommon.py
70
- certora_cli/Shared/rustProverCommon.py
71
71
  certora_cli_alpha_master.egg-info/PKG-INFO
72
72
  certora_cli_alpha_master.egg-info/SOURCES.txt
73
73
  certora_cli_alpha_master.egg-info/dependency_links.txt
@@ -0,0 +1 @@
1
+ {"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "74f300a", "timestamp": "20250708.16.32.202680", "version": "20250708.16.32.202680+74f300a"}
@@ -3,11 +3,11 @@ import setuptools
3
3
 
4
4
  setuptools.setup(
5
5
  name="certora-cli-alpha-master",
6
- version="20250708.13.43.606302",
6
+ version="20250708.16.32.202680",
7
7
  author="Certora",
8
8
  author_email="support@certora.com",
9
9
  description="Runner for the Certora Prover",
10
- long_description="Commit d87e722. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.",
10
+ long_description="Commit 74f300a. 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-alpha-master",
13
13
  packages=setuptools.find_packages(),
@@ -1 +0,0 @@
1
- Commit d87e722. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -1 +0,0 @@
1
- {"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "d87e722", "timestamp": "20250708.13.43.606302", "version": "20250708.13.43.606302+d87e722"}