Esempio n. 1
0
        public static int Main(string[] args)
        {
            if (args.Length < 2)
            {
                ShowUsage();
                return(1);
            }

            ExternalToolsManager.EnsureAllExisted();

            string  solidityFile, entryPointContractName;
            bool    tryProofFlag, tryRefutation;
            int     recursionBound;
            ILogger logger;
            HashSet <Tuple <string, string> > ignoredMethods;
            bool            printTransactionSequence = false;
            TranslatorFlags translatorFlags          = new TranslatorFlags();

            ParseCommandLineArgs(args,
                                 out solidityFile,
                                 out entryPointContractName,
                                 out tryProofFlag,
                                 out tryRefutation,
                                 out recursionBound,
                                 out logger,
                                 out ignoredMethods,
                                 out printTransactionSequence,
                                 ref translatorFlags);

            var verisolExecuter =
                new VeriSolExecutor(
                    Path.Combine(Directory.GetCurrentDirectory(), solidityFile),
                    entryPointContractName,
                    recursionBound,
                    ignoredMethods,
                    tryRefutation,
                    tryProofFlag,
                    logger,
                    printTransactionSequence,
                    translatorFlags);

            return(verisolExecuter.Execute());
        }
Esempio n. 2
0
        public static int Main(string[] args)



        {
            if (args.Length < 2)
            {
                ShowUsage();
                return(1);
            }

            string  solidityFile, entryPointContractName, solcName;
            bool    tryProofFlag, tryRefutation;
            int     recursionBound;
            ILogger logger;
            HashSet <Tuple <string, string> > ignoredMethods;
            bool            printTransactionSequence = false;
            TranslatorFlags translatorFlags          = new TranslatorFlags();

            ParseCommandLineArgs(args,
                                 out solidityFile,
                                 out entryPointContractName,
                                 out tryProofFlag,
                                 out tryRefutation,
                                 out recursionBound,
                                 out solcName,
                                 out logger,
                                 out ignoredMethods,
                                 out printTransactionSequence,
                                 ref translatorFlags);

            var    assemblyLocation = Assembly.GetExecutingAssembly().Location;
            string solcPath         = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                solcName);

            if (!File.Exists(solcPath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find {solcName} at {solcPath}");
                return(1);
            }

            string corralPath = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                "corral.dll");

            if (!File.Exists(corralPath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find corral.dll at {corralPath}");
                return(1);
            }

            string boogiePath = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                "BoogieDriver.dll");

            if (!File.Exists(boogiePath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find BoogieDriver.dll at {boogiePath}");
                return(1);
            }

            var verisolExecuter =
                new VeriSolExecutor(
                    Path.Combine(Directory.GetCurrentDirectory(), solidityFile),
                    entryPointContractName,
                    corralPath,
                    boogiePath,
                    solcPath,
                    solcName,
                    recursionBound,
                    ignoredMethods,
                    tryRefutation,
                    tryProofFlag,
                    logger,
                    printTransactionSequence,
                    translatorFlags);

            return(verisolExecuter.Execute());
        }
Esempio n. 3
0
        public static int Main(string[] args)
        {
            if (args.Length < 2)
            {
                ShowUsage();
                return(1);
            }

            string  solidityFile, entryPointContractName, solcName;
            bool    tryProofFlag, tryRefutation;
            int     recursionBound;
            ILogger logger;
            HashSet <Tuple <string, string> > ignoredMethods;
            bool generateInlineAttribues;

            ParseCommandLineArgs(args, out solidityFile, out entryPointContractName, out tryProofFlag, out tryRefutation, out recursionBound, out solcName, out logger, out ignoredMethods, out generateInlineAttribues);

            var    assemblyLocation = Assembly.GetExecutingAssembly().Location;
            string solcPath         = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                "solc",
                solcName);

            if (!File.Exists(solcPath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find {solcName} at {solcPath}");
                return(1);
            }

            string corralPath = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                "corral",
                "corral.exe");

            if (!File.Exists(corralPath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find Corral.exe at {corralPath}");
                return(1);
            }

            string boogiePath = Path.Combine(
                Path.GetDirectoryName(assemblyLocation),
                "boogie",
                "Boogie.exe");

            if (!File.Exists(boogiePath))
            {
                ShowUsage();
                Console.WriteLine($"Cannot find Boogie.exe at {boogiePath}");
                return(1);
            }

            var verisolExecuter =
                new VeriSolExecutor(
                    Path.Combine(Directory.GetCurrentDirectory(), solidityFile),
                    entryPointContractName,
                    corralPath,
                    boogiePath,
                    solcPath,
                    solcName,
                    recursionBound,
                    ignoredMethods,
                    tryRefutation,
                    tryProofFlag,
                    generateInlineAttribues,
                    logger);

            return(verisolExecuter.Execute());
        }