Exemple #1
0
    public static Address LookupUser(String userName, String password)
    {
        Address returnValue = new Address();
        returnValue.Success = true;
        try
        {
            //  Assume this was created previously.
            Hashtable hashTable = new Hashtable();
            AdminKeys key = new AdminKeys() { Password= "******", UserName= "******" };
            Address address = new Address() { Name = "My Address", PhoneNumber = "816-555-1212", State = "MO", Street = "1221 Harrison Street", Zip = "64106" };
            hashTable.Add(key, address);

            // Now look for thekey
            AdminKeys tryKey = new AdminKeys() { UserName = userName, Password = password };
            Address foundAddress = (Address)hashTable[tryKey];
            if (foundAddress != null)
            {
                foundAddress.Success = true;
                return foundAddress;
            }
            else
            {
                returnValue.Success = false;
                returnValue.ErrorString = "Could not find the username and password you supplied";
            }

        }
        catch (Exception ex)
        {
            returnValue.Success = false;
            returnValue.ErrorString = ex.Message;
        }
        return returnValue;
    }
Exemple #2
0
        public static bool UserIsAdmin(HttpContextBase httpContext)
        {
            var adminCookie = CookieService.Get(httpContext, "admin");

            if (adminCookie == null)
            {
                return(false);
            }

            return(AdminKeys.ValidateAdminKey(adminCookie.Value));
        }
        public static IMvcBuilder AddTideEndpoint(this IServiceCollection services, AdminKeys keys)
        {
            services.AddSingleton(keys.CreateVendorConfig());

            //services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
            //{
            //    options.TokenValidationParameters = new TokenValidationParameters
            //    {
            //        ValidateIssuerSigningKey = true,
            //        IssuerSigningKey = config.GetSessionKey(),
            //        ValidateIssuer = false,
            //        ValidateAudience = false
            //    };
            //});

            var assembly = typeof(VendorController).Assembly;

            return(services.AddControllers().AddApplicationPart(assembly));
        }
        public async Task <IHttpActionResult> withdraw(txencrypted txdetails)
        {
            if (StkHelper.checkTxHash(txdetails))
            {
                thashdetails thashresp  = new thashdetails();
                var          txHash     = "";
                var          context    = new stakingapiEntities();
                var          keys       = context.stk_admin.FirstOrDefault();
                AdminKeys    keystosend = new AdminKeys {
                };
                var metamaskdetails     = context.stk_users.Where(x => x.metamask == txdetails.metamask).FirstOrDefault();
                if (metamaskdetails == null)
                {
                    return(BadRequest("Invalid Wallet address"));
                }
                var account = new Account(keys.private_key);
                var web3    = new Nethereum.Web3.Web3(account, "https://mainnet.infura.io/v3/14063be7fce843b18bfbd7beae73caca");
                try
                {
                    string apiUrl = "https://api.etherscan.io/api?module=account&action=txlist&address=0xfE276a83012Ff9C199109137BBCe864a225cefE9&startblock=" + txdetails.blockNumber.BN + "&endblock=" + txdetails.blockNumber.BN + "&sort=asc&apikey=98RSH7SEW3Z77D683QTJCU5M447IRD7S6I";
                    using (HttpClient client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(apiUrl);
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                        HttpResponseMessage response = await client.GetAsync(apiUrl);

                        if (response.IsSuccessStatusCode)
                        {
                            var data = await response.Content.ReadAsStringAsync();

                            thashresp = Newtonsoft.Json.JsonConvert.DeserializeObject <thashdetails>(data);
                        }
                    }
                    if (thashresp != null)
                    {
                        //System.DateTime txTimestamp = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
                        //txTimestamp = txTimestamp.AddSeconds(Convert.ToDouble(thashresp.result[0].timeStamp)).ToUniversalTime();
                        //if (thashresp.result[0].from == txdetails.metamask.ToLower() && thashresp.result[0].to == keys.stkcontractAddress && thashresp.result[0].value == txdetails.transactionFee.Transactionfee /*&& txTimestamp.AddMinutes(30) >= DateTime.UtcNow*/)
                        //{
                        var receiverAddress = txdetails.metamask;
                        var transferHandler = web3.Eth.GetContractTransactionHandler <TransferFunction>();
                        var transfer        = new TransferFunction()
                        {
                            To          = receiverAddress,
                            TokenAmount = Web3.Convert.ToWei((BigDecimal)metamaskdetails.total_reward),
                            GasPrice    = Nethereum.Web3.Web3.Convert.ToWei(txdetails.gasPrice.GasPrice, UnitConversion.EthUnit.Gwei),
                            Gas         = txdetails.gasLimit.GasLimit
                        };

                        var transactionReceipt = await transferHandler.SendRequestAndWaitForReceiptAsync(keys.zinTokenAddress, transfer);

                        txHash = transactionReceipt.TransactionHash;
                        using (DbContextTransaction dbTran = context.Database.BeginTransaction())
                        {
                            try
                            {
                                keystosend.rewards            = metamaskdetails.total_reward;
                                metamaskdetails.zin_in_wallet = metamaskdetails.zin_in_wallet + metamaskdetails.total_reward;
                                metamaskdetails.total_reward  = 0;
                                context.SaveChanges();
                                dbTran.Commit();
                            }
                            catch (Exception ex)
                            {
                                dbTran.Rollback();
                                return(BadRequest(ex.Message));
                            }
                        }
                        //}
                    }
                    return(Json(new { status = 200, message = "success", result = txHash }));
                }
                catch (Exception Ex)
                {
                    var message = Ex.Message;
                    return(BadRequest(Ex.InnerException.Message));
                }
                //return Json(new { status = 200, message = "success", result = "Ok" });
            }

            else
            {
                return(BadRequest("Transaction details does not match with the blockchain provider"));
            }
        }
 public override void Execute()
 {
     AdminKeys.ClearUnused();
 }