Beispiel #1
0
        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);
                    }
                }
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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];
        }