Exemplo n.º 1
0
        public void Load(string _pathlog, string _pathscript, string transid)
        {
            this.pathScript = _pathscript;
            if (transid.ToLower().IndexOf("0x") == 0)
            {
                transid = transid.Substring(2);
            }
            byte[] info     = HexString2Bytes(transid);
            var    filename = "0x" + ToHexString(info);

            var tranfile = System.IO.Path.Combine(_pathlog, filename + ".llvmhex.txt");


            if (System.IO.File.Exists(tranfile) == false)
            {
                throw new Exception("load file error");
            }
            var str = System.IO.File.ReadAllText(tranfile);
            var bts = ThinNeo.Helper.HexString2Bytes(str);

            using (var ms = new System.IO.MemoryStream(bts))
            {
                var outms = llvm.QuickFile.FromFile(ms);
                var text  = System.Text.Encoding.UTF8.GetString(outms.ToArray());
                var json  = MyJson.Parse(text) as MyJson.JsonNode_Object;
                fullLog = SmartContract.Debug.FullLog.FromJson(json);
            }
            //循环所有的
            simvm.Execute(fullLog);
        }
Exemplo n.º 2
0
        public void Load(string _pathlog, string _pathscript, string transid)
        {
            this.pathScript = _pathscript;
            if (transid.ToLower().IndexOf("0x") == 0)
            {
                transid = transid.Substring(2);
            }
            byte[] info     = HexString2Bytes(transid);
            var    filename = "0x" + ToHexString(info);

            var tranfile = System.IO.Path.Combine(_pathlog, filename + ".fulllog.7z");


            if (System.IO.File.Exists(tranfile) == false)
            {
                throw new Exception("你的数据源里没有log信息,他可能还没有同步,或者这不是一个智能合约交易");
            }
            using (var ms = new System.IO.MemoryStream(System.IO.File.ReadAllBytes(tranfile)))
            {
                SevenZip.SevenZipExtractor e7z = new SevenZip.SevenZipExtractor(ms);
                var outms = new System.IO.MemoryStream();
                e7z.ExtractFile(0, outms);
                var text = System.Text.Encoding.UTF8.GetString(outms.ToArray());
                var json = MyJson.Parse(text) as MyJson.JsonNode_Object;
                fullLog = SmartContract.Debug.FullLog.FromJson(json);
            }
            //循环所有的
            simvm.Execute(fullLog);
        }
Exemplo n.º 3
0
        public void Execute(SmartContract.Debug.FullLog FullLog)
        {
            State runstate = new State();

            runstate.SetId(0);

            stateClone = new Dictionary <int, State>();
            mapState   = new Dictionary <SmartContract.Debug.LogOp, int>();
            careinfo   = new List <CareItem>();
            ExecuteScript(runstate, FullLog.script);
        }