moody.m.verify.solfla API documentation

# Module `moody.m.verify.solfla`

Expand source code

    from __future__ import print_function

    import argparse as ap
    import ast
    import subprocess
    import argparse
    import os
    import re
    import sys

    command = "solflatliner"

    # solflatliner --o upgrade.sol upgradable/TransparentUpgradeableProxy.sol 0.8.12
    class SolflatlinerWrapper:
        """
        This is the solidity flatliner wrapper processor
        """

        def __init__(self, root_space: str):
            self.output_file = False
            self.input_file = False
            self.proccess_result = False
            self.workspace = root_space

        def check_program(self, cmd) -> bool:
            rc = subprocess.call(['which', cmd])
            if rc == 0:
                print(f"{cmd} is installed")
                return True
            else:
                print(f"{cmd} is missing in the system")
                print(f"Try to install this via pip3 install solflatliner")
                return False

        def make_flaten_tmp_file(self, file_path_from_vault: str, version: str):
            if self.proccess_result is True:
                print(f"The subject is already success - {file_path_from_vault}")
                return

                # Split the path in head and tail pair
            head_tail = os.path.split(file_path_from_vault)
            file_name_seg = head_tail[1].split(".")

            if file_name_seg[1] != "sol":
                print("There is no sol file found in the contain")
                return

            if self.check_program(command) is False:
                return

            self.input_file = file_path_from_vault
            space_location = os.path.join(self.workspace, f"{file_name_seg[0]}_flat.sol")
            self.output_file = os.path.join("out", space_location)
            solc_args = [command]
            solc_args += ["--o"]
            solc_args += [space_location]
            solc_args += [file_path_from_vault]
            solc_args += [version]
            print(f"preprocess cmd: {solc_args}")
            solc_proc = subprocess.run(solc_args, stdout=subprocess.PIPE, universal_newlines=True)
            solc_proc.check_returncode()
            self.proccess_result = True

## Classes

`class SolflatlinerWrapper (root_space: str)`

  This is the solidity flatliner wrapper processor

  Expand source code

      class SolflatlinerWrapper:
          """
          This is the solidity flatliner wrapper processor
          """

          def __init__(self, root_space: str):
              self.output_file = False
              self.input_file = False
              self.proccess_result = False
              self.workspace = root_space

          def check_program(self, cmd) -> bool:
              rc = subprocess.call(['which', cmd])
              if rc == 0:
                  print(f"{cmd} is installed")
                  return True
              else:
                  print(f"{cmd} is missing in the system")
                  print(f"Try to install this via pip3 install solflatliner")
                  return False

          def make_flaten_tmp_file(self, file_path_from_vault: str, version: str):
              if self.proccess_result is True:
                  print(f"The subject is already success - {file_path_from_vault}")
                  return

                  # Split the path in head and tail pair
              head_tail = os.path.split(file_path_from_vault)
              file_name_seg = head_tail[1].split(".")

              if file_name_seg[1] != "sol":
                  print("There is no sol file found in the contain")
                  return

              if self.check_program(command) is False:
                  return

              self.input_file = file_path_from_vault
              space_location = os.path.join(self.workspace, f"{file_name_seg[0]}_flat.sol")
              self.output_file = os.path.join("out", space_location)
              solc_args = [command]
              solc_args += ["--o"]
              solc_args += [space_location]
              solc_args += [file_path_from_vault]
              solc_args += [version]
              print(f"preprocess cmd: {solc_args}")
              solc_proc = subprocess.run(solc_args, stdout=subprocess.PIPE, universal_newlines=True)
              solc_proc.check_returncode()
              self.proccess_result = True

  ### Methods

  `def check_program(self, cmd) ‑> bool`
    Expand source code

        def check_program(self, cmd) -> bool:
            rc = subprocess.call(['which', cmd])
            if rc == 0:
                print(f"{cmd} is installed")
                return True
            else:
                print(f"{cmd} is missing in the system")
                print(f"Try to install this via pip3 install solflatliner")
                return False

  `def make_flaten_tmp_file(self, file_path_from_vault: str, version: str)`
    Expand source code

        def make_flaten_tmp_file(self, file_path_from_vault: str, version: str):
            if self.proccess_result is True:
                print(f"The subject is already success - {file_path_from_vault}")
                return

                # Split the path in head and tail pair
            head_tail = os.path.split(file_path_from_vault)
            file_name_seg = head_tail[1].split(".")

            if file_name_seg[1] != "sol":
                print("There is no sol file found in the contain")
                return

            if self.check_program(command) is False:
                return

            self.input_file = file_path_from_vault
            space_location = os.path.join(self.workspace, f"{file_name_seg[0]}_flat.sol")
            self.output_file = os.path.join("out", space_location)
            solc_args = [command]
            solc_args += ["--o"]
            solc_args += [space_location]
            solc_args += [file_path_from_vault]
            solc_args += [version]
            print(f"preprocess cmd: {solc_args}")
            solc_proc = subprocess.run(solc_args, stdout=subprocess.PIPE, universal_newlines=True)
            solc_proc.check_returncode()
            self.proccess_result = True