internal void HandleStartCommand(bool startMining)
        {
            _started = DateTime.Now;
            _cts     = new CancellationTokenSource();
            var keyGen = new KeyGenerator();

            Task.Run(async() =>
            {
                Random rnd    = new Random();
                int skuAmount = 1000;//rnd.Next(100000, 250000);
                Console.WriteLine("Preparing " + skuAmount + " SKU's..");
                List <AbstractTransaction> skuTransactions      = new List <AbstractTransaction>();
                List <AbstractTransaction> transferTransactions = new List <AbstractTransaction>();
                Dictionary <string, string> keys = new Dictionary <string, string>();

                for (int i = 0; i < skuAmount; i++)
                {
                    if (_cts.IsCancellationRequested)
                    {
                        return;
                    }

                    Random rndEan      = new Random();
                    string name        = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8);
                    string eanCode     = rnd.Next(100000000, 999999999).ToString(); // Should be 13 numbers long, but ok.
                    string description = " Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.";
                    SkuData skuData    = new SkuData(name, eanCode, description);
                    keyGen.GenerateKeys(out var publicKey, out var privateKey);
                    var tx = _txCreator.CreateSkuCreationTransaction(publicKey, privateKey, (uint)rndEan.Next(10, 20000), skuData);
                    try
                    {
                        keys.Add(publicKey, privateKey);
                    }
                    catch (Exception) { }
                    skuTransactions.Add(tx);
                }

                Console.WriteLine("Prepared " + skuTransactions.Count + " new SKU's. Submitting them gradually now..");

                if (startMining)
                {
                    _miner.StartMining();
                }

                foreach (var transaction in skuTransactions)
                {
                    if (_cts.IsCancellationRequested)
                    {
                        return;
                    }
                    _miner.AddTransactionToPool(transaction, true);
                    await Task.Delay(20);
                }
            }
                     );
        }
Пример #2
0
 // Helpers
 private void TryDeserializeSkuData(string data, out SkuData skuData)
 {
     try
     {
         skuData = JsonConvert.DeserializeObject <SkuData>(data);
     }
     catch (JsonReaderException)
     {
         throw new TransactionRejectedException("Invalid data contents: Unable to deserialize to SkuData object");
     }
 }
    public void CreateCurrentDayShopInfo(ShopData.ShopsInfo shopsInfo)
    {
        DayData dayData = new DayData();

        dayData.M_Id     = LoginManager.UserID;
        dayData.day      = shopsInfo.data.shops[0].user_day;
        dayData.checkIn  = DateTime.UtcNow.ToString();
        dayData.checkOut = DateTime.UtcNow.ToString();
        dayData.shops    = new List <Shop>();
        for (int i = 0; i < shopsInfo.data.shops.Count; i++)
        {
            Shop shop = new Shop();
            shop.id             = shopsInfo.data.shops[i].id;
            shop.SS_Id          = 2; // still pending from server
            shop.shop_Name      = shopsInfo.data.shops[i].name;
            shop.pic_Name_1     = "";
            shop.pic_Name_2     = "";
            shop.pic_Name_3     = "";
            shop.pic_Name_4     = "";
            shop.contact_Number = "";
            shop.location       = "";
            shop.checkIn        = "";
            shop.checkOut       = "";
            shop.sku            = new List <SkuData>();
            for (int j = 0; j < shopsInfo.data.sku.Count; j++)
            {
                SkuData sku = new SkuData
                {
                    id    = shopsInfo.data.sku[j].id,
                    count = 0
                };

                shop.sku.Add(sku);
            }
            dayData.shops.Add(shop);
        }



        string data = JsonUtility.ToJson(dayData);

        File.WriteAllText(Application.persistentDataPath + "/Data/DayInfo.json", data);
        ShopData.ShopDataManager.CurrentDayShopInfo = "Loaded";
    }
Пример #4
0
        /// <summary>
        /// Register a new SKU with this transaction, following the current consensus rules
        /// </summary>
        /// <param name="ownerPubKey">The owner of the SKU and it's supply</param>
        /// <param name="ownerPrivKey">The owner's private key to sign the transaction</param>
        /// <param name="amount">The initial supply (amount of SKU's)</param>
        /// <param name="sku">This SKU will be generated</param>
        /// <returns>A transaction object</returns>
        public AbstractTransaction CreateSkuCreationTransaction(string ownerPubKey, string ownerPrivKey, uint amount, SkuData sku)
        {
            var skuJson = JsonConvert.SerializeObject(sku);

            var tx = new StateTransaction(
                ownerPubKey,
                ownerPubKey,
                null,
                0,
                amount,
                BlockchainConstants.TransactionVersion,
                TransactionAction.CreateSku.ToString(),
                skuJson,
                BlockchainConstants.CreateSkuFee
                );

            _txFinalizer.FinalizeTransaction(tx, ownerPrivKey);

            return(tx);
        }