public void Scripts() { var tv2s = new List <TV2>(); var json = JArray.Parse(File.ReadAllText(@"..\..\..\data\script_tests.json")); foreach (var r in json.Children <JToken>().Where(c => c.Count() >= 4)) { if (r[0].Type == JTokenType.String) { var sig = r[0].Value <string>(); var pub = r[1].Value <string>(); var flags = r[2].Value <string>(); var error = r[3].Value <string>(); tv2s.Add(new TV2(sig, pub, flags, error)); } } var tv2sSorted = tv2s.OrderBy(tv => tv.opcodes.Length + (int)tv.opcodes.LastOrDefault() / 256.0).ToList(); var opcodes = tv2sSorted.Select(tv => tv.keyopcode).Distinct().OrderBy(o => o).ToArray(); var noOpcode = new List <TV2>(); var byOpcode = new Dictionary <KzOpcode, List <TV2> >(); foreach (var tv in tv2sSorted) { var o = tv.keyopcode; var list = o.HasValue ? null : noOpcode; if (list == null && !byOpcode.TryGetValue(o.Value, out list)) { list = new List <TV2>(); byOpcode.Add(o.Value, list); } list.Add(tv); } var i = 0; foreach (var opcode in opcodes) { var list = opcode.HasValue ? byOpcode[opcode.Value] : noOpcode; foreach (var tv in list) { i++; var tv2 = new TV2(tv.sig, tv.pub, tv.flags, tv.error); Console.WriteLine($"{opcode} {i}"); Console.WriteLine($"Sig: {tv.scriptSig.ToHexString()} => {tv.scriptSig}"); Console.WriteLine($"Pub: {tv.scriptPub.ToHexString()} => {tv.scriptPub}"); var ok = KzScriptInterpreter.VerifyScript(tv.scriptSig, tv.scriptPub, tv.scriptFlags, null, out KzScriptError error); var correct = (ok && tv.scriptError == KzScriptError.OK) || tv.scriptError == error; // All test cases do not pass yet. This condition is here to make sure things don't get worse :-) if (i < 900) { Assert.True(correct); } } } }
private void frmTvAccesos_Load(object sender, EventArgs e) { vSQL = "SELECT Nombres+' '+Ape_Paterno+' '+Ape_Materno Descripcion,Id_Us+'*'+DBO.Cryptgr(Type,0,2) IdUbigeo " + "FROM sysaccusers S INNER JOIN Personal P " + "ON S.Id_Per = P.Id_Personal " + "INNER JOIN ( SELECT Id_Tipo, Descripcion " + " FROM TablaTipo "+ " WHERE Id_Tabla In (SELECT Id_Tipo "+ " FROM TablaTipo "+ " WHERE Descripcion = 'ESTADO_REGISTRO')) E "+ " ON S.State = E.Id_Tipo " + "WHERE E.Descripcion = 'ACTIVADO' " + "ORDER BY 1"; General.LlenaComboBox(cmbUsuario, "SQL", vSQL); vSQL = "SELECT Pad_Prompt Descripcion, Pad_Popup IdUbigeo FROM Padmenu ORDER BY Pad_Prompt"; General.LlenaComboBox(cmbPadMenu, "SQL", vSQL); TV1.CollapseAll(); TV1.Enabled = false; selectedNodeU = null; TV2.CollapseAll(); TV2.Enabled = false; selectedNodeG = null; }
private void CargaMenuGeneral(string optMenu) { TV2.Nodes.Clear(); //selecciona los menus principales vSQL = "SELECT Pad_Popup,Pad_Prompt,Pad_Name,Pad_Order "; vSQL = vSQL + " FROM Padmenu "; vSQL = vSQL + " WHERE Pad_Popup = '" + optMenu.Trim() + "' "; vSQL = vSQL + " ORDER BY Pad_Popup"; SqlDataAdapter dNodos = new SqlDataAdapter(vSQL, Conexion.CNN); //selecciona los items de cada menu principal vSQL = "SELECT B.Bar_Popup,B.Bar_Prompt,B.Bar_Number,B.Bar_Order,DBO.Cryptgr(B.PTU,0,1) PTU, " + "(SELECT DBO.Cryptgr(S.Key_Pass, 0, 1) " + " FROM sysaccusers S " + " WHERE B.Us_Up = S.Id_Us " + " AND B.Bar_Popup = '" + optMenu.Trim() + "') Us_Up " + " FROM Barmenu B " + "WHERE EXISTS " + "(SELECT 1 " + " FROM sysaccusers S " + " WHERE B.Us_Up = S.Id_Us " + " AND B.Bar_Popup = '" + optMenu.Trim() + "') " + "ORDER BY B.Bar_Order"; SqlDataAdapter dHijos = new SqlDataAdapter(vSQL, Conexion.CNN); //metodo que relaciona tabla cabecera con tabla detalle DataSet ds = new DataSet(); dNodos.Fill(ds, "Padmenu"); dHijos.Fill(ds, "Barmenu"); ds.Relations.Add("PadBarMenu", ds.Tables["Padmenu"].Columns["Pad_Popup"], ds.Tables["Barmenu"].Columns["Bar_Popup"]); TV2.ImageIndex = 1; foreach (DataRow dr in ds.Tables["Padmenu"].Rows) { //llena nodos principales con tabla cabecera TreeNode tnPadre = new TreeNode(); tnPadre.Name = dr["Pad_Name"].ToString(); tnPadre.Text = dr["Pad_Prompt"].ToString(); tnPadre.Tag = dr["Pad_Popup"].ToString() + "*" + dr["Pad_Name"].ToString() + "*" + dr["Pad_Order"].ToString(); tnPadre.ImageIndex = 0; tnPadre.SelectedImageIndex = 0; foreach (DataRow drChild in dr.GetChildRows("PadBarMenu")) { //llena nodos secundarios con tabla detalle TreeNode tnHijo = new TreeNode(); tnHijo.Name = drChild["Bar_Number"].ToString(); tnHijo.Text = drChild["Bar_Prompt"].ToString(); tnHijo.Tag = drChild["Bar_Popup"].ToString() + "*" + drChild["Bar_Number"].ToString() + "*" + drChild["Bar_Order"].ToString() + "*" + drChild["PTU"].ToString() + "*" + drChild["Us_Up"].ToString(); tnHijo.ImageIndex = 1; tnHijo.SelectedImageIndex = 1; tnPadre.Nodes.Add(tnHijo); } TV2.Nodes.Add(tnPadre); } TV2.ExpandAll(); TV2.SelectedNode = TV2.Nodes[0]; selectedNodeG = TV2.Nodes[0]; }