Example #1
0
        public void QuickTestsOnKeyIdBytes()
        {
            var a  = new KeyId("93e5d305cad2588d5fb254065fe48ce446028ba3");
            var b  = new ScriptId("93e5d305cad2588d5fb254065fe48ce446028ba3");
            var b2 = new WitKeyId("93e5d305cad2588d5fb254065fe48ce446028ba3");

            Assert.Equal(a.ToString(), b.ToString());
            Assert.Equal(a.ToString(), b2.ToString());
            Assert.Equal("93e5d305cad2588d5fb254065fe48ce446028ba3", a.ToString());
            var bytes = Encoders.Hex.DecodeData("93e5d305cad2588d5fb254065fe48ce446028ba3");

            Assert.True(StructuralComparisons.StructuralComparer.Compare(a.ToBytes(), b.ToBytes()) == 0);
            Assert.True(StructuralComparisons.StructuralComparer.Compare(b2.ToBytes(), b.ToBytes()) == 0);

            var c  = new KeyId(bytes);
            var d  = new ScriptId(bytes);
            var d2 = new WitKeyId(bytes);

            Assert.Equal(a, c);
            Assert.Equal(d, b);
            Assert.Equal(b2, d2);
            Assert.Equal(c.ToString(), d.ToString());
            Assert.Equal(c.ToString(), d2.ToString());
            Assert.Equal("93e5d305cad2588d5fb254065fe48ce446028ba3", c.ToString());
            Assert.True(StructuralComparisons.StructuralComparer.Compare(c.ToBytes(), d.ToBytes()) == 0);
            Assert.True(StructuralComparisons.StructuralComparer.Compare(c.ToBytes(), d2.ToBytes()) == 0);

            var e = new WitScriptId("93e5d305cad2588d5fb254065fe48ce446028ba380e6ee663baea9cd10550089");

            Assert.Equal("93e5d305cad2588d5fb254065fe48ce446028ba380e6ee663baea9cd10550089", e.ToString());
            bytes = Encoders.Hex.DecodeData("93e5d305cad2588d5fb254065fe48ce446028ba380e6ee663baea9cd10550089");
            var e2 = new WitScriptId(bytes);

            Assert.Equal(e, e2);
        }
Example #2
0
        public static string GetCheckedRow(GridView tempGrid, string Control)
        {
            CheckBox CheckBox;

            int    KeyId;
            string Id = "";

            foreach (GridViewRow GridViewRow in tempGrid.Rows)
            {
                CheckBox = ((CheckBox)(GridViewRow.FindControl(Control)));
                if (CheckBox.Checked)
                {
                    //KeyId = ((int)(tempGrid.DataKeys.(GridViewRow.RowIndex).Value));
                    KeyId = System.Convert.ToInt32(tempGrid.DataKeys[GridViewRow.RowIndex].Value);
                    if (Id == "")
                    {
                        Id = KeyId.ToString();
                    }
                    else
                    {
                        Id = Id + "," + KeyId.ToString();
                    }
                }
            }
            return(Id);
        }
Example #3
0
        private static void ScriptPubKey()
        {
            Key   privateKey    = new Key();
            KeyId publicKeyHash = privateKey.PubKey.Hash;

            var mainNetAddress = publicKeyHash.GetAddress(Network.Main);
            var testNetAddress = publicKeyHash.GetAddress(Network.TestNet);

            publicKeyHash = new KeyId(publicKeyHash.ToString());

            testNetAddress = publicKeyHash.GetAddress(Network.TestNet);
            mainNetAddress = publicKeyHash.GetAddress(Network.Main);

            Console.WriteLine(mainNetAddress.ScriptPubKey);
            // OP_DUP OP_HASH160 18Av7Pm5knLGDu2CCAwVs6fPoy7UhyaC3Z OP_EQUALVERIFY OP_CHECKSIG
            Console.WriteLine(testNetAddress.ScriptPubKey);
            // OP_DUP OP_HASH160 18Av7Pm5knLGDu2CCAwVs6fPoy7UhyaC3Z OP_EQUALVERIFY OP_CHECKSIG

            var paymentScript = publicKeyHash.ScriptPubKey;

            Console.WriteLine(paymentScript);
            var sameMainNetAddress = paymentScript.GetDestinationAddress(Network.Main);

            Console.WriteLine(sameMainNetAddress);
            Console.WriteLine(mainNetAddress == sameMainNetAddress); // True
            var samePublicKeyHash = (KeyId)paymentScript.GetDestination();

            Console.WriteLine(publicKeyHash == samePublicKeyHash); // True
            var sameMainNetAddress2 = new BitcoinPubKeyAddress(samePublicKeyHash, Network.Main);

            Console.WriteLine(mainNetAddress == sameMainNetAddress2); // True
        }
Example #4
0
        public void GetBalance()
        {
            ssbalance = 0;
            string privateKeyStr = PrivateKey;
            //string privateKeyStr = "cUvazeu9ucqD4trygt8xMEQKZfR3SZ5BdiAWb3eEwbQ48iPwYKSB";
            BitcoinSecret  privateKey = new BitcoinSecret(privateKeyStr);
            Network        network    = privateKey.Network;
            PubKey         pubKey     = privateKey.PubKey;
            string         pubKeyStr  = pubKey.ToHex();
            KeyId          pkhash     = pubKey.Hash;
            string         pkhashStr  = pkhash.ToString();
            BitcoinAddress addres     = pkhash.GetAddress(network);
            string         address    = addres.ToString();
            string         networkStr = bsvConfiguration_class.testNetwork;
            string         uri        = bsvConfiguration_class.RestApiUri;
            //读取未消费的交易输出utxo
            Task <RestApiUtxo_class[]> utxo = Task <RestApiUtxo_class[]> .Run(() =>
            {
                RestApiUtxo_class[] untxo = RestApi_class.getUtxosByAnAddress(uri, networkStr, address);
                return(untxo);
            });

            utxo.Wait();
            int n = utxo.Result.Length;

            for (int i = 0; i < n; i++)
            {
                ssbalance += utxo.Result[i].Value;
            }
            //Console.WriteLine(ssbalance);

            label3.Text  = "账户余额:";
            label3.Text += ssbalance;
            label3.Text += " sat";
        }
Example #5
0
 private void label4_Click(object sender, EventArgs e)//查询地址
 {
     if (flagadr == 0)
     {
         string         privateKeyStr = PrivateKey;
         BitcoinSecret  privateKey    = new BitcoinSecret(privateKeyStr);
         Network        network       = privateKey.Network;
         PubKey         pubKey        = privateKey.PubKey;
         string         pubKeyStr     = pubKey.ToHex();
         KeyId          pkhash        = pubKey.Hash;
         string         pkhashStr     = pkhash.ToString();
         BitcoinAddress addres        = pkhash.GetAddress(network);
         string         address       = addres.ToString();
         textBox1.Visible = true;
         textBox1.Text    = address;
         flagadr          = 2;
     }
     else if (flagadr == 1)
     {
         textBox1.Visible = true;
         flagadr          = 2;
     }
     else
     {
         textBox1.Visible = false;
         flagadr          = 1;
     }
 }
        public static string GetCheckedRowString(GridView tempGrid, string Control)
        {
            CheckBox CheckBox;

            string KeyId;
            string Id = "";

            foreach (GridViewRow GridViewRow in tempGrid.Rows)
            {
                CheckBox = ((CheckBox)(GridViewRow.FindControl(Control)));
                if (CheckBox.Checked)
                {
                    KeyId = tempGrid.DataKeys[GridViewRow.RowIndex].Value.ToString();
                    if (Id == "")
                    {
                        Id = KeyId.ToString();
                    }
                    else
                    {
                        Id = Id + "," + KeyId.ToString();
                    }
                }
            }
            return(Id);
        }
        public IDictionary <string, string> ToDictionary()
        {
            var dictionary = new Dictionary <string, string>();

            dictionary.Add("keyid", KeyId.ToString());
            dictionary.Add("vcode", VCode);
            return(dictionary);
        }
Example #8
0
 public override void ProcessMessage(IMessage message)
 {
     if (message.opcode == Opcode.FindnodeResponse)
     {
         foreach (var peer in message.peers)
         {
             // Cosa avra' voluto fare?? (cit.)
             if (peer.Id.ToString() == KeyId.ToString())
             {
             }
         }
     }
 }
Example #9
0
        public override bool MatchesKeyIdentifierClause(SecurityKeyIdentifierClause keyIdentifierClause)
        {
            if (keyIdentifierClause == null)
            {
                throw new ArgumentNullException("keyIdentifierClause");
            }

            var clause = keyIdentifierClause as NamedKeySecurityKeyIdentifierClause;

            return(clause != null &&
                   clause.Name.Equals(OAuth2.Constants.Claims.KEY_ID, StringComparison.Ordinal) &&
                   clause.Id.Equals(KeyId.ToString(), StringComparison.OrdinalIgnoreCase));
        }
Example #10
0
    public override string ToString()
    {
        var  sb      = new StringBuilder("E2EEPublicKey(");
        bool __first = true;

        if (__isset.version)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("Version: ");
            Version.ToString(sb);
        }
        if (__isset.keyId)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("KeyId: ");
            KeyId.ToString(sb);
        }
        if (KeyData != null && __isset.keyData)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("KeyData: ");
            KeyData.ToString(sb);
        }
        if (__isset.createdTime)
        {
            if (!__first)
            {
                sb.Append(", ");
            }
            __first = false;
            sb.Append("CreatedTime: ");
            CreatedTime.ToString(sb);
        }
        sb.Append(")");
        return(sb.ToString());
    }
Example #11
0
        private void button1_Click(object sender, EventArgs e) //读取
        {
            textBox2.Text = "";
            Console.WriteLine("start get");

            string privateKeyStr = PrivateKey;
            //string privateKeyStr = "cUvazeu9ucqD4trygt8xMEQKZfR3SZ5BdiAWb3eEwbQ48iPwYKSB";
            BitcoinSecret  privateKey = new BitcoinSecret(privateKeyStr);
            Network        network    = privateKey.Network;
            PubKey         pubKey     = privateKey.PubKey;
            string         pubKeyStr  = pubKey.ToHex();
            KeyId          pkhash     = pubKey.Hash;
            string         pkhashStr  = pkhash.ToString();
            BitcoinAddress addres     = pkhash.GetAddress(network);
            string         address    = addres.ToString();
            string         networkStr = bsvConfiguration_class.testNetwork;
            string         uri        = bsvConfiguration_class.RestApiUri;

            //获取链上的交易历史
            Task <RestApiAddressHistoryTx[]> t = Task <RestApiAddressHistoryTx[]> .Run(() =>
            {
                RestApiAddressHistoryTx[] addrHistory = RestApi_class.getAddressHistory(uri, networkStr, address);
                return(addrHistory);
            });

            t.Wait();
            int num = t.Result.Length;

            Console.WriteLine("链上交易数目:" + num);
            //读取链上信息
            Task <RestApiTransaction[]> gettxs = null;

            if (num > 0)
            {
                string[] txHashs = new string[num];
                for (int i = 0; i < num; i++)
                {
                    txHashs[i] = t.Result[i].TxHash;
                }

                gettxs = Task <RestApiTransaction[]> .Run(() =>
                {
                    RestApiTransaction[] txs = RestApi_class.getTransactions(uri, networkStr, txHashs);
                    return(txs);
                });
            }

            for (int i = 0; i < num; i++)
            {
                RestApiTransaction tx = gettxs.Result[i];
                string             s  = RestApi_class.getOpReturnData(tx, bsvConfiguration_class.encoding);
                if (s != null)
                {
                    //解密
                    byte[]        encryptedBytes;
                    Base58Encoder base58Encoder = new Base58Encoder();
                    encryptedBytes = base58Encoder.DecodeData(s);
                    string data = AES_class.AesDecrypt(encryptedBytes, privateKeyStr);
                    textBox2.Text += data;
                    textBox2.Text += "\r\n";
                    textBox2.Text += System.Environment.NewLine;
                    textBox2.Text += "------------------------------------------------------------------------------------";
                    textBox2.Text += "\r\n";
                    textBox2.Text += System.Environment.NewLine;
                    Console.WriteLine("链上内容:" + s);
                }
            }
        }