示例#1
0
        //public bool AskRemoteSignature()
        //{
        //    throw new NotImplementedException();
        //}

        //public void SendMultisignArk()
        //{
        //    throw new NotImplementedException();
        //}

        public ArkTransactionPostResponse SendArk(long satoshiAmount, string recipientAddress,
                                                  string vendorField)
        {
            var tx = TransactionApi.CreateTransaction(recipientAddress,
                                                      satoshiAmount,
                                                      vendorField,
                                                      _passPhrase,
                                                      _secondPassPhrase);

            return(TransactionService.PostTransaction(tx));
        }
示例#2
0
        public async Task <List <ArkTransactionPostResponse> > SendArkUsingMultiBroadCastAsync(long satoshiAmount, string recipientAddress,
                                                                                               string vendorField)
        {
            var tx = TransactionApi.CreateTransaction(recipientAddress,
                                                      satoshiAmount,
                                                      vendorField,
                                                      _passPhrase,
                                                      _secondPassPhrase);

            return(await TransactionService.MultipleBroadCastAsync(tx));
        }
示例#3
0
        public static List <SmartHoldemTransactionPostResponse> MultipleBroadCast(TransactionApi transaction)
        {
            var res = new List <SmartHoldemTransactionPostResponse>();

            for (var i = 0; i < SmartHoldemNetApi.Instance.NetworkSettings.MaxNumOfBroadcasts; i++)
            {
                res.Add(PostTransaction(transaction, NetworkApi.Instance.GetRandomPeer()));
            }

            return(res);
        }
示例#4
0
        public void MultiplePostTransactionSuccessTest()
        {
            var tx = TransactionApi.CreateTransaction("ASJBHz4JfWVUGDyN61hMMnW1Y4ZCTBHL1K",
                                                      1000,
                                                      "This is first Multi transaction from ARK-NET",
                                                      "ski rose knock live elder parade dose device fetch betray loan holiday");

            var res = TransactionService.MultipleBroadCast(tx);

            Assert.IsTrue(res > 0);
        }
示例#5
0
        public void PostTransactionTransferTest()
        {
            var tx = TransactionApi.CreateTransaction("ASJBHz4JfWVUGDyN61hMMnW1Y4ZCTBHL1K",
                                                      1000,
                                                      "This is first transaction from ARK-NET 22",
                                                      "ski rose knock live elder parade dose device fetch betray loan holiday");

            var result = TransactionService.PostTransaction(tx);

            Assert.IsTrue(result.status);
        }
示例#6
0
        public (bool status, string data, string error) SendArk(long satosshiAmount, string recepientAddres,
                                                                string vendorFiend, string passPhrase, string secondPassPhrase = null)
        {
            var tx = TransactionApi.CreateTransaction(recepientAddres,
                                                      satosshiAmount,
                                                      vendorFiend,
                                                      passPhrase,
                                                      secondPassPhrase);

            return(TransactionService.PostTransaction(tx));
        }
示例#7
0
        public void PostTransactionNoBalanceTest()
        {
            var tx = TransactionApi.CreateTransaction(_noBalanceAddress,
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      _noBalanceAddressPassPhrase);

            var result = TransactionService.PostTransaction(tx);

            Assert.AreEqual(result.Error, string.Format("Account does not have enough ARK: {0} balance: 0", _noBalanceAddress));
        }
示例#8
0
        public void MultiplePostTransactionSuccessTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first Multi transaction from ARK-NET",
                                                      _passPhrase);

            var res = TransactionService.MultipleBroadCast(tx);

            Assert.IsTrue(res > 0);
        }
示例#9
0
        /// <summary>
        /// Creates a request to multiple peers to create the transaction.
        /// </summary>
        ///
        /// <param name="transaction">A reference to a <see cref="TransactionApi"/> type.</param>
        ///
        /// <returns>Returns a <see cref="List{ArkTransactionResponse}"/> type.</returns>
        ///
        public List <ArkTransactionPostResponse> MultipleBroadCast(TransactionApi transaction)
        {
            var res = new List <ArkTransactionPostResponse>();

            for (var i = 0; i < _networkApi.NetworkSettings.MaxNumOfBroadcasts; i++)
            {
                res.Add(PostTransaction(transaction, _networkApi.GetRandomPeer()));
            }

            return(res);
        }
        public async Task TestEstimateTxFeeForSendToAddress()
        {
            string      address   = "fiiitCPyohiEPn9q11AXCdvVDouoVvgojXBcVj";
            long        amount    = 100000000000;
            string      commentTo = "Join";
            ApiResponse response  = await TransactionApi.EstimateTxFeeForSendToAddress(address, amount, "", commentTo, false);

            Assert.IsFalse(response.HasError);
            TxFeeForSend result = response.GetResult <TxFeeForSend>();

            Assert.IsNotNull(result);
        }
示例#11
0
        public void CreateTransactionRecepientChangeTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from ARK-NET",
                                                      _passPhrase);
            var json = tx.ToJson();

            tx.RecipientId = "AavdJLxqBnWqaFXWm2xNirNArJNUmyUpup";

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
        public void CreateTransactionRecepientChangeTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from SMARTHOLDEM-NET",
                                                      _passPhrase);
            var json = tx.ToJson();

            tx.RecipientId = "SbNu1nZevSh1Qx9zL4VjqatcE7DQSnLn37";

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
        public void CreateTransactionFeeChangeTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from SMARTHOLDEM-NET",
                                                      _passPhrase);
            var json = tx.ToJson();

            tx.Fee = 11;

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
        public void CreateTransactionRecepientChangeTest()
        {
            var tx = TransactionApi.CreateTransaction("AXoXnFi4z1Z6aFvjEYkDVCtBGW2PaRiM25",
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      "this is a top secret passphrase");
            var json = tx.ToJson();

            tx.RecipientId = "AavdJLxqBnWqaFXWm2xNirNArJNUmyUpup";

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
        public void CreateTransactionFeeChangeTest()
        {
            var tx = TransactionApi.CreateTransaction("AXoXnFi4z1Z6aFvjEYkDVCtBGW2PaRiM25",
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      "this is a top secret passphrase");
            var json = tx.ToJson();

            tx.Fee = 11;

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
示例#16
0
        public void PostTransactionTransferTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from ARK-NET 22",
                                                      _passPhrase);

            var result = TransactionService.PostTransaction(tx);

            Assert.IsTrue(result.Success);
            Assert.IsNotNull(result.TransactionIds);
            Assert.IsTrue(result.TransactionIds.Count > 0);
        }
示例#17
0
        public void CreateTransactionAmountChangeTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from ARK-NET",
                                                      _passPhrase);
            var json = tx.ToJson();

            tx.Amount = 10100000000000000;

            Assert.IsFalse(Crypto.Verify(tx));
            Assert.AreNotEqual(json, tx.ToJson());
        }
示例#18
0
        public void TransactionSerializeTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from ARK-NET 22",
                                                      _passPhrase);

            tx.Timestamp = 100;
            File.WriteAllText(@"C:\temp\txNew.json", tx.SerializeObject2JSon());
            File.WriteAllText(@"C:\temp\txNew.xml", tx.SerializeObject2Xml());

            Assert.IsTrue(1 == 1);
        }
        public void JSONSerDeSerTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from SMARTHOLDEM-NET",
                                                      _passPhrase);
            var json = tx.ToJson();

            Console.WriteLine(json);

            var tx2 = TransactionApi.FromJson(json);

            Assert.AreEqual(json, tx2.ToJson());
        }
示例#20
0
        public void TransactionSerializeTest()
        {
            var tx = TransactionApi.CreateTransaction("ASJBHz4JfWVUGDyN61hMMnW1Y4ZCTBHL1K",
                                                      1000,
                                                      "This is first transaction from ARK-NET 22",
                                                      "ski rose knock live elder parade dose device fetch betray loan holiday");

            tx.Timestamp = 100;
            File.WriteAllText(@"C:\temp\txNew.json", tx.SerializeObject2JSon());
            File.WriteAllText(@"C:\temp\txNew.xml", tx.SerializeObject2Xml());


            Assert.IsTrue(1 == 1);
        }
示例#21
0
        public void CreateVoteSignTest()
        {
            List <string> votes = new List <string> {
                "+034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192"
            };


            var tx = TransactionApi.CreateVote(votes, _passPhrase);

            var json = tx.ToObject(true);

            Assert.IsTrue(Crypto.Verify(tx));
            Assert.AreEqual(json, tx.ToObject(true));
        }
        public void CreateVoteSignTest()
        {
            List <string> votes = new List <string> {
                "+034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192"
            };


            var tx = TransactionApi.CreateVote(votes, "ski rose knock live elder parade dose device fetch betray loan holiday");

            var json = tx.ToObject(true);

            Assert.IsTrue(Crypto.Verify(tx));
            Assert.AreEqual(json, tx.ToObject(true));
        }
示例#23
0
        public void PostTransactionNoBalanceTest()
        {
            var tx = TransactionApi.CreateTransaction("AXoXnFi4z1Z6aFvjEYkDVCtBGW2PaRiM25",
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      "this is a top secret passphrase");

            //var peer = NetworkApi.Instance.GetRandomPeer();


            var result = TransactionService.PostTransaction(tx);

            Assert.AreEqual(result.error, "Account does not have enough ARK: AGeYmgbg2LgGxRW2vNNJvQ88PknEJsYizC balance: 0");
        }
        public void CreateVoteSignTest()
        {
            List <string> votes = new List <string> {
                "+020664026362dce27637b8f77039b5158ec0e53dac9ad0cca7a15b55d9a6556ba0"
            };


            var tx = TransactionApi.CreateVote(votes, _passPhrase);

            var json = tx.ToObject(true);

            Assert.IsTrue(Crypto.Verify(tx));
            Assert.AreEqual(json, tx.ToObject(true));
        }
        public static (bool status, string data, string error) PostTransaction(TransactionApi transaction)
        {
            string body = "{transactions: [" + transaction.ToObject(true) + "]} ";

            var response = NetworkApi.Instance.ActivePeer.MakeRequest("POST", "/peer/transactions", body);

            var parsed = JObject.Parse(response);
            var status = Convert.ToBoolean(parsed["success"]);


            return(new ValueTuple <bool, string, string>(status,
                                                         parsed["message"]?.ToString() ?? parsed["transactionIds"]?.ToString() ?? "",
                                                         parsed["error"]?.ToString() ?? ""));
        }
示例#26
0
        public Result <string> SendMany(string fromAccount, IEnumerable <SendItemInfo> sendManyModels)
        {
            var subtractFeeFromAmounts = new List <string>();

            sendManyModels.ToList().ForEach(x =>
            {
                if (x.IsContainFee)
                {
                    subtractFeeFromAmounts.Add(x.Address);
                }
            });
            ApiResponse response = TransactionApi.SendMany(fromAccount, sendManyModels.ToArray(), subtractFeeFromAmounts.ToArray()).Result;

            return(base.GetResult <string>(response));;
        }
        public void JSONSerDeSerTest()
        {
            var tx = TransactionApi.CreateTransaction("AXoXnFi4z1Z6aFvjEYkDVCtBGW2PaRiM25",
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      "this is a top secret passphrase",
                                                      "this is a top secret second passphrase");
            var json = tx.ToJson();

            Console.WriteLine(json);

            var tx2 = TransactionApi.FromJson(json);

            Assert.AreEqual(json, tx2.ToJson());
        }
        public void CreateTransaction2ndPassPhraseandVerifyTest()
        {
            var tx = TransactionApi.CreateTransaction("AXoXnFi4z1Z6aFvjEYkDVCtBGW2PaRiM25",
                                                      133380000000,
                                                      "This is first transaction from ARK-NET",
                                                      "this is a top secret passphrase",
                                                      "this is a top secret second passphrase");

            var secondPublicKeyHex = Crypto.GetKeys("this is a top secret second passphrase").PubKey.ToBytes();

            var secondPublicKeyHexStr = Encoders.Hex.EncodeData(secondPublicKeyHex);

            Assert.IsTrue(Crypto.Verify(tx));
            Assert.IsTrue(Crypto.SecondVerify(tx, secondPublicKeyHexStr));
        }
        public static int MultipleBroadCast(TransactionApi transaction)
        {
            var res = 0;

            for (var i = 0; i < ArkNetApi.Instance.NetworkSettings.MaxNumOfBroadcasts; i++)
            {
                var response = PostTransaction(transaction);

                if (response.status)
                {
                    res++;
                }
            }
            return(res);
        }
        public void CreateTransaction2ndPassPhraseandVerifyTest()
        {
            var tx = TransactionApi.CreateTransaction(_address,
                                                      1,
                                                      "This is first transaction from SMARTHOLDEM-NET",
                                                      _passPhrase,
                                                      "this is a top secret second passphrase");

            var secondPublicKeyHex = Crypto.GetKeys("this is a top secret second passphrase").PubKey.ToBytes();

            var secondPublicKeyHexStr = Encoders.Hex.EncodeData(secondPublicKeyHex);

            Assert.IsTrue(Crypto.Verify(tx));
            Assert.IsTrue(Crypto.SecondVerify(tx, secondPublicKeyHexStr));
        }
示例#31
0
 protected void Page_Load(object sender, EventArgs e)
 {
     _transactionApi = new TransactionApi();
 }