Exemple #1
0
        public void TestAddCreateTransaction()
        {
            using (var lServerAccess = new ServerAccess.PandoraWalletServiceAccess("localhost", 20159, false))
                if (lServerAccess.Logon("*****@*****.**", "davinci", "test"))
                {
                    var lControl  = CurrencyControl.GetCurrencyControl();
                    var lRootSeed = lControl.GenerateRootSeed("*****@*****.**", "davinci", "test");
                    var lAdvocacy = lControl.GetCryptoCurrency(1, "");
                    lAdvocacy.RootSeed = lRootSeed;
                    lServerAccess.AddMonitoredAccount(1, lAdvocacy.GetAddress(10));
                    var lTransaction = new CurrencyTransaction();
                    var s            = lServerAccess.GetTransactionRecords(1, 0);
                    var lTxList      = Newtonsoft.Json.JsonConvert.DeserializeObject <TransactionRecord[]>(s, new Pandora.Client.ClientLib.PandoraJsonConverter());
                    var lTx          = lTxList[0];
                    lTransaction.AddInput(lTx.Outputs[0]);
                    lTransaction.AddOutput(lTx.Outputs[0].Amount - 1000, "mzqD8sEGXfRMvcnNnkoGn6wyMN9AGUxaAB");
                    lTransaction.CurrencyId = 1;
                    lTransaction.TxFee      = 1000;
                    var lTxData = lServerAccess.CreateTransaction(lTransaction);

                    lTxData = lAdvocacy.SignTransaction(lTxData, lTransaction);

                    //lServerAccess.SendTransaction(1, lTxData);
                    lServerAccess.Logoff();
                }
                else
                {
                    throw new Exception("Basic Logon and log off failed.");
                }
        }
Exemple #2
0
 public void TestAddGetRemoveCurrencyAccount()
 {
     using (var lServerAccess = new ServerAccess.PandoraWalletServiceAccess("localhost", 20159, false))
         if (lServerAccess.Logon("*****@*****.**", "davinci", "test"))
         {
             var lControl  = CurrencyControl.GetCurrencyControl();
             var lRootSeed = lControl.GenerateRootSeed("*****@*****.**", "davinci", "test");
             var lAdvocacy = lControl.GetCryptoCurrency(1, "");
             lAdvocacy.RootSeed = lRootSeed;
             lServerAccess.AddMonitoredAccount(1, lAdvocacy.GetAddress(10));
             lServerAccess.AddMonitoredAccount(1, lAdvocacy.GetAddress(11));
             var lList = Newtonsoft.Json.JsonConvert.DeserializeObject <CurrencyAccount[]>(lServerAccess.GetMonitoredAcccounts(1, 0));
             foreach (var lItem in lList)
             {
                 Assert.IsTrue(lServerAccess.RemoveMonitoredAcccounts(lItem.Id));
             }
             lList = Newtonsoft.Json.JsonConvert.DeserializeObject <CurrencyAccount[]>(lServerAccess.GetMonitoredAcccounts(1, 0));
             Assert.IsTrue(lList.Length == 0, "Not all accounts were removed.");
             lServerAccess.Logoff();
         }
         else
         {
             throw new Exception("Basic Logon and log off failed.");
         }
 }
        private IClientCurrencyAdvocacy GetAdvocacy(uint aCurrencyId)
        {
            if (string.IsNullOrEmpty(FSeed))
            {
                throw new InvalidOperationException("A seed must be assign before asking for an advocacy");
            }

            IClientCurrencyAdvocacy lAdvocacy;

            lock (FCurrencyAdvocacies)
            {
                if (!FCurrencyAdvocacies.ContainsKey(aCurrencyId))
                {
                    CurrencyItem lCurrency = FWalletPandoraServer.GetCurrency(aCurrencyId);
                    FCurrencyAdvocacies.Add(aCurrencyId, CurrencyControl.GetCurrencyControl().GetClientCurrencyAdvocacy(aCurrencyId, lCurrency.ChainParamaters));

                    FCurrencyAdvocacies[aCurrencyId].RootSeed = FSeed;
                }

                lAdvocacy = FCurrencyAdvocacies[aCurrencyId];
            }

            if (!FAddresses.ContainsKey(aCurrencyId))
            {
                while (!FAddresses.TryAdd(aCurrencyId, new List <string>()))
                {
                    ;
                }
            }

            if (FAddresses[aCurrencyId].Count < AddressNumberSetting)
            {
                FAddresses[aCurrencyId].Clear();

                for (uint it = 1; it <= AddressNumberSetting; it++)
                {
                    FAddresses[aCurrencyId].Add(lAdvocacy.GetAddress(it));
#if DEBUG
                    System.Diagnostics.Debug.WriteLine(string.Format("Currency: {0}, Address: {1}, PrivateKey: {2}", aCurrencyId, lAdvocacy.GetAddress(it), lAdvocacy.GetPrivateKey(it)));
#endif
                }
            }

            return(lAdvocacy);
        }
        public void InitializeRootSeed(bool aForceSeed = false)
        {
            UserStatus lUserStatus = FWalletPandoraServer.GetUserStatus();
            DateTime   lLockDate   = new DateTime(2019, 4, 8, 23, 59, 59);
            string     lEmail      = FWalletPandoraServer.Email;
            string     lUsername   = FWalletPandoraServer.Username;

            if (FSeed == null || aForceSeed)
            {
                FSeed = FKeyManager.GetSecretRootSeed(lEmail.ToLower(), lUsername.ToLower());
                if (lUserStatus.StatusDate <= lLockDate)
                {
                    string lStatusMessage = lUserStatus.ExtendedInfo;

                    if (lUserStatus.ExtendedInfo.Contains("Actual Case is:"))
                    {
                        int      lStart     = lStatusMessage.IndexOf(":", StringComparison.Ordinal) + 1;
                        string[] lSubstring = lStatusMessage.Substring(lStart, lStatusMessage.Length - lStart).Split(new string[] { "***" }, StringSplitOptions.RemoveEmptyEntries);
                        lEmail    = lSubstring[0].Trim();
                        lUsername = lSubstring[1].Trim();
                        FSeed     = FKeyManager.GetSecretRootSeed(lEmail, lUsername);
                    }
                    else
                    {
                        FSeed = FKeyManager.GetSecretRootSeed(lEmail, lUsername);
                        CurrencyItem            lCurrency = FWalletPandoraServer.GetCurrency(1);
                        IClientCurrencyAdvocacy lAdvocacy = CurrencyControl.GetCurrencyControl().GetClientCurrencyAdvocacy((uint)lCurrency.Id, lCurrency.ChainParamaters);
                        lAdvocacy.RootSeed = FSeed;
                        string lComparationAddress = lAdvocacy.GetAddress(1);
                        string lAddress            = GetCoinAddress(1);

                        if (lComparationAddress != lAddress)
                        {
                            string lMessage = string.Format("Please contact support at [email protected] about Ontime Issue #1344");
                            throw new Exception(lMessage);
                        }
                        FWalletPandoraServer.MarkOldUser(lEmail, lUsername);
                    }
                }
            }
        }
Exemple #5
0
        public void TestSendTransaction()
        {
            using (var lServerAccess = new ServerAccess.PandoraWalletServiceAccess("localhost", 20159, false))
                if (lServerAccess.Logon("*****@*****.**", "davinci", "test"))
                {
                    var lTransaction = new CurrencyTransaction();
                    lTransaction.CurrencyId = 3;
                    var lControl  = CurrencyControl.GetCurrencyControl();
                    var lRootSeed = lControl.GenerateRootSeed("*****@*****.**", "davinci", "test");
                    var lAdvocacy = lControl.GetCryptoCurrency(lTransaction.CurrencyId, "");
                    lAdvocacy.RootSeed = lRootSeed;
                    var lAddress = lAdvocacy.GetAddress(10);
                    lServerAccess.AddMonitoredAccount(lTransaction.CurrencyId, lAddress);

                    var s       = lServerAccess.GetTransactionRecords(lTransaction.CurrencyId, 0);
                    var lTxList = Newtonsoft.Json.JsonConvert.DeserializeObject <TransactionRecord[]>(s, new Pandora.Client.ClientLib.PandoraJsonConverter());
                    var lTx     = lTxList[0];
                    lTransaction.AddInput(lTx.Outputs[0]);
                    lTransaction.AddOutput(lTx.Outputs[0].Amount - 1000, "yPueC9mAxBj7yrPxj4M2vNY3rn4Yz3thrY");
                    lTransaction.TxFee = 1000;
                    var lTxData = lServerAccess.CreateTransaction(lTransaction);

                    lTxData = lAdvocacy.SignTransaction(lTxData, lTransaction);

                    var lHandle = lServerAccess.SendTransaction(lTransaction.CurrencyId, lTxData);
                    System.Threading.Thread.Sleep(5000);
                    if (lServerAccess.IsTransactionSent(lHandle))
                    {
                        var lTxId = lServerAccess.GetTransactionId(lHandle);
                    }
                    lServerAccess.Logoff();
                }
                else
                {
                    throw new Exception("Basic Logon and log off failed.");
                }
        }
Exemple #6
0
 public static void Register()
 {
     CurrencyControl.GetCurrencyControl().AddCurrencyAdvocacy(EthGetCurrencyAdvocacy);
 }