Esempio n. 1
0
        private object RouteConfirmSellNFT(HTTPRequest request)
        {
            var chainName    = request.GetVariable("chain");
            var contractName = request.GetVariable("contract");
            var methodName   = request.GetVariable("method");

            var param = request.GetVariable("params");
            var id    = request.GetVariable("id");

            if (param == null)
            {
                PushError(request, "Parameters cannot be null!");
                return(null);
            }

            List <object> paramList = SendUtils.BuildParamList(param);

            var keyPair = GetLoginKey(request);

            InvalidateCache(keyPair.Address);
            string result;

            result = AccountController.ConfirmSellNFT(keyPair, chainName, contractName, methodName, paramList.ToArray(), id).Result;

            ResetSessionSendFields(request);

            if (!SendUtils.IsTxHashValid(result))
            {
                PushError(request, result);
                Log.Information("No valid result");
                return("");
            }

            return(result);
        }
Esempio n. 2
0
        private object RouteInvokeContract(HTTPRequest request)
        {
            var contract = request.GetVariable("contract");
            var method   = request.GetVariable("method");
            var context  = InitContext(request);

            // TODO check if contract exists
            if (context["holdings"] is Holding[] balance)
            {
                var soulBalance = balance.SingleOrDefault(b => b.Symbol == "SOUL");
                if (soulBalance.Amount > 0.1m)
                {
                    var keyPair    = GetLoginKey(request);
                    var contractTx = AccountController.InvokeContractGeneric(keyPair, contract, method).Result;
                    if (SendUtils.IsTxHashValid(contractTx))
                    {
                        return(contractTx);
                    }

                    PushError(request, contractTx);
                }
                else
                {
                    PushError(request, "You need a small drop of SOUL (+0.1) to call a contract.");
                }
            }
            return("");
        }
Esempio n. 3
0
        private object RouteConfig(HTTPRequest request)
        {
            var mode      = request.GetVariable("mode");
            var configStr = request.GetVariable("config");

            WalletConfigDto config = new WalletConfigDto();

            if (mode == "set")
            {
                config = JsonConvert.DeserializeObject <WalletConfigDto>(configStr);
                Utils.WriteConfig <WalletConfigDto>(config, Utils.CfgPath);

                AccountController.UpdateConfig(config);

                // very ugly needs to be changed
                Settings.SetRPCServerUrl();
                InitAccountController();
                SetupControllers();

                var keyPair = GetLoginKey(request);
                InvalidateCache(keyPair.Address);

                return(JsonConvert.SerializeObject(config));
            }
            else if (mode == "get")
            {
                config = Utils.ReadConfig(Utils.CfgPath);
            }

            return(JsonConvert.SerializeObject(config));
        }
Esempio n. 4
0
        private object HandleGet(HTTPRequest request)
        {
            var version = request.GetVariable("jsonrpc");

            if (version != "2" && version != "2.0")
            {
                return(GenerateRPCError("Invalid jsonrpc version", -32602));
            }

            var method = request.GetVariable("method");
            var id     = request.GetVariable("id");

            if (string.IsNullOrEmpty(id))
            {
                id = "0";
            }

            var encodedParams = request.GetVariable("params");

            var decodedParams = encodedParams.UrlDecode();

            DataNode paramNode;

            try
            {
                paramNode = JSONReader.ReadFromString(decodedParams);
            }
            catch
            {
                return(GenerateRPCError("Parsing error", -32700));
            }

            return(HandleRPCRequest(id, method, paramNode));
        }
Esempio n. 5
0
        private object RouteInvokeSettleTx(HTTPRequest request)
        {
            var txHash        = request.GetVariable("txHash");
            var neoKey        = request.GetVariable("neoKey");
            var neoPassphrase = request.GetVariable("neoPassphrase");
            var assetSymbol   = request.GetVariable("assetSymbol");
            var context       = InitContext(request);
            var phantasmaKeys = GetLoginKey(request);

            InvalidateCache(phantasmaKeys.Address);
            if (context["holdings"] is Holding[] balance)
            {
                Phantasma.Neo.Core.NeoKeys neoKeys;

                if (string.IsNullOrEmpty(neoPassphrase))
                {
                    neoKeys = Phantasma.Neo.Core.NeoKeys.FromWIF(neoKey);
                }
                else
                {
                    neoKeys = Phantasma.Neo.Core.NeoKeys.FromNEP2(neoKey, neoPassphrase);
                }

                var result = AccountController.InvokeSettleTx(neoKeys, phantasmaKeys, txHash, assetSymbol).Result;
                ResetSessionSendFields(request);
                return(result);
            }
            return(null);
        }
Esempio n. 6
0
        private object RouteRedeemNFT(HTTPRequest request)
        {
            var addressTo = request.GetVariable("dest");

            var chainName        = request.GetVariable("chain");
            var destinationChain = request.GetVariable("destChain");

            var symbol = request.GetVariable("token");
            var id     = request.GetVariable("id");

            var keyPair = GetLoginKey(request);

            InvalidateCache(keyPair.Address);
            string result;

            result = AccountController.TransferTokensNFTRedeem(keyPair, addressTo, chainName, symbol, id).Result;

            ResetSessionSendFields(request);

            if (!SendUtils.IsTxHashValid(result))
            {
                PushError(request, result);
                Log.Information("No valid result");
                return("");
            }

            return(result);
        }
Esempio n. 7
0
        private object RouteInvokeContract(HTTPRequest request)
        {
            var chain    = request.GetVariable("chain");
            var contract = request.GetVariable("contract");
            var method   = request.GetVariable("method");
            var param    = request.GetVariable("params");
            var context  = InitContext(request);

            if (param == null)
            {
                PushError(request, "Parameters cannot be null!");
                return(null);
            }

            List <object> paramList = SendUtils.BuildParamList(param);

            var keyPair = GetLoginKey(request);

            InvalidateCache(keyPair.Address);
            var result = AccountController.InvokeContractGeneric(keyPair, chain, contract, method, paramList.ToArray()).Result;

            if (result != null && result.GetType() == typeof(BigInteger))
            {
                return(result.ToString());
            }

            return(JsonConvert.SerializeObject(result, Formatting.Indented));
        }
Esempio n. 8
0
        private object RouteContractABI(HTTPRequest request)
        {
            var chain    = request.GetVariable("chain");
            var contract = request.GetVariable("contract");
            var result   = JsonConvert.SerializeObject(AccountController
                                                       .GetContractABI(chain, contract).Result, Formatting.Indented);

            return(result);
        }
Esempio n. 9
0
        private object RouteMarketplace(HTTPRequest request)
        {
            try
            {
                var input = request.GetVariable("page");
                if (!int.TryParse(input, out int pageNumber))
                {
                    pageNumber = 1;
                }

                var selectedChain = request.GetVariable("chain");


                var controller        = MarketplaceControllerInstance;
                var chainsWithMarkets = controller.GetChainsWithMarketsAndActiveAuctions().Result;

                if (string.IsNullOrEmpty(selectedChain) && chainsWithMarkets.Any())
                {
                    selectedChain = chainsWithMarkets[0]; //default
                }

                var pageModel = new PaginationModel
                {
                    Count       = controller.GetAuctionsCount(selectedChain).Result,
                    CurrentPage = pageNumber,
                    PageSize    = AppSettings.PageSize,
                };

                var marketVm = controller.GetAuctions(selectedChain, pageModel.CurrentPage, pageModel.PageSize).Result;
                var context  = GetSessionContext(request);

                if (marketVm.TotalAuctions >= 0)
                {
                    context[AppSettings.MenuContext]        = _menus;
                    context[AppSettings.MarketplaceContext] = marketVm;
                    context["marketChains"]  = chainsWithMarkets;
                    context["selectedChain"] = selectedChain;
                    context[AppSettings.PaginationContext] = pageModel;
                    return(RendererView(context, "layout", AppSettings.MarketplaceContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "Marketplace error";
            _errorContextInstance.ErrorDescription = "No active auctions found";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 10
0
        private object RouteCosmicCustom(HTTPRequest request)
        {
            var chain    = request.GetVariable("chain");
            var contract = request.GetVariable("contract");
            var method   = request.GetVariable("method");
            var param    = request.GetVariable("params");
            var context  = InitContext(request);

            if (param == null)
            {
                PushError(request, "Parameters cannot be null!");
                return(null);
            }

            List <object> paramList = SendUtils.BuildParamList(param);

            if (context["holdings"] is Holding[] balance)
            {
                var kcalBalance = balance.SingleOrDefault(b => b.Symbol == "KCAL" && b.Chain == chain);
                if (kcalBalance.Amount > 0.1m)
                {
                    var keyPair = GetLoginKey(request);
                    InvalidateCache(keyPair.Address);
                    var result = AccountController.CosmicCustom(
                        keyPair, chain, contract, method, paramList.ToArray()
                        ).Result;

                    if (result.GetType() == typeof(ErrorRes))
                    {
                        return(JsonConvert.SerializeObject(result, Formatting.Indented));
                    }

                    var contractTx = (string)result;

                    if (SendUtils.IsTxHashValid(contractTx))
                    {
                        request.session.SetString("confirmedHash", contractTx);
                        return(contractTx);
                    }

                    PushError(request, contractTx);
                }
                else
                {
                    PushError(request, "You need a small drop of KCAL to call a contract.");
                }
            }
            return(null);
        }
Esempio n. 11
0
        private object RouteRegisterName(HTTPRequest request)
        {
            var name    = request.GetVariable("name");
            var context = InitContext(request);

            if (context["holdings"] is Holding[] balance)
            {
                var keyPair = GetLoginKey(request);
                InvalidateCache(keyPair.Address);
                var result = AccountController.RegisterName(keyPair, name).Result;

                if (result.GetType() == typeof(ErrorRes))
                {
                    return(JsonConvert.SerializeObject(result, Formatting.Indented));
                }

                var registerTx = (string)result;

                if (SendUtils.IsTxHashValid(registerTx))
                {
                    request.session.SetString("confirmedHash", registerTx);
                    return(registerTx);
                }

                PushError(request, registerTx);
            }

            else
            {
                PushError(request, "Error while registering name.");
            }
            return("");
        }
Esempio n. 12
0
        private object RouteTransaction(HTTPRequest request)
        {
            if (!HasLogin(request))
            {
                return(HTTPResponse.Redirect("/login"));
            }

            var context = InitContext(request);
            var txHash  = request.GetVariable("txhash");

            request.session.SetStruct <ErrorContext>("error", new ErrorContext {
                ErrorCode = "", ErrorDescription = $"{txHash} is still not confirmed."
            });
            var result = AccountController.GetTxConfirmations(txHash).Result;

            if (result.GetType() == typeof(ErrorRes))
            {
                return(JsonConvert.SerializeObject(result, Formatting.Indented));
            }

            var txObject = (TransactionDto)result;

            if (txObject.Confirmations > 0)
            {
                return(JsonConvert.SerializeObject(txObject, Formatting.Indented));
            }

            PushError(request, "Error sending tx.");
            return(JsonConvert.SerializeObject(new TransactionDto()
            {
            }, Formatting.Indented));
        }
Esempio n. 13
0
        private HTTPResponse RouteLoginWithParams(HTTPRequest request)
        {
            var key = request.GetVariable("key");

            WalletConfigDto config = Utils.ReadConfig(Utils.CfgPath);

            AccountController.UpdateConfig(config);

            // very ugly needs to be changed
            Settings.SetRPCServerUrl();
            InitAccountController();
            SetupControllers();

            try
            {
                request.session.SetString("wif", key);
                request.session.SetBool("login", true);
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
                PushError(request, "Error decoding key.");
                return(HTTPResponse.Redirect("/login"));
            }

            return(HTTPResponse.Redirect("/portfolio"));
        }
Esempio n. 14
0
        private object RouteTokensNft(HTTPRequest request)
        {
            var address = request.GetVariable("input");

            try
            {
                var nftList = TokensControllerInstance.GetNftListByAddress(address);
                var context = GetSessionContext(request);
                if (nftList != null && nftList.Any())
                {
                    context[AppSettings.MenuContext]      = _menus;
                    context[AppSettings.NftTokensContext] = nftList;
                    return(RendererView(context, "layout", AppSettings.NftTokensContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "nft error";
            _errorContextInstance.ErrorDescription = $"no nfts found for this {address} address";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 15
0
        private object RouteToken(HTTPRequest request)
        {
            try
            {
                var tokenSymbol = request.GetVariable("input");
                var controller  = TokensControllerInstance;
                var token       = controller.GetToken(tokenSymbol);
                var context     = GetSessionContext(request);
                if (token != null)
                {
                    var holders   = controller.GetHolders(token.Symbol);
                    var transfers = controller.GetTransfers(token.Symbol);

                    context[AppSettings.MenuContext]           = _menus;
                    context[AppSettings.TokenContext]          = token;
                    context[AppSettings.HoldersContext]        = holders;
                    context[AppSettings.TokenTransfersContext] = transfers;
                    return(RendererView(context, "layout", AppSettings.TokenContext, AppSettings.HoldersContext, "transfers"));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "token error";
            _errorContextInstance.ErrorDescription = "Token not found";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 16
0
        private object RouteRegisterName(HTTPRequest request)
        {
            var name    = request.GetVariable("name");
            var context = InitContext(request);

            if (AccountContract.ValidateName(name))
            {
                if (context["holdings"] is Holding[] balance)
                {
                    var soulBalance = balance.SingleOrDefault(b => b.Symbol == "SOUL");
                    if (soulBalance.Amount > 0.1m) //RegistrationCost
                    {
                        var keyPair    = GetLoginKey(request);
                        var registerTx = AccountController.RegisterName(keyPair, name).Result;
                        if (SendUtils.IsTxHashValid(registerTx))
                        {
                            return(registerTx);
                        }

                        PushError(request, registerTx);
                    }
                    else
                    {
                        PushError(request, "You need a small drop of SOUL (+0.1) to register a name.");
                    }
                }
            }
            else
            {
                PushError(request, "Error while registering name.");
            }
            return("");
        }
Esempio n. 17
0
        private object RouteBlock(HTTPRequest request)
        {
            var input = request.GetVariable("input");

            try
            {
                var block   = BlocksControllerInstance.GetBlock(input);
                var context = GetSessionContext(request);
                if (block != null)
                {
                    context[AppSettings.MenuContext]  = _menus;
                    context[AppSettings.BlockContext] = block;
                    return(RendererView(context, "layout", AppSettings.BlockContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "blocks error";
            _errorContextInstance.ErrorDescription = $"No block found with this {input} input";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 18
0
        private object RouteChain(HTTPRequest request)
        {
            var addressText = request.GetVariable("input");

            try
            {
                var chain   = ChainsControllerInstance.GetChain(addressText);
                var context = GetSessionContext(request);
                if (chain != null)
                {
                    context[AppSettings.MenuContext]  = _menus;
                    context[AppSettings.ChainContext] = chain;

                    return(RendererView(context, "layout", AppSettings.ChainContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "chains error";
            _errorContextInstance.ErrorDescription = $"No chain found with this {addressText} address";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 19
0
        private object RouteApp(HTTPRequest request)
        {
            var appId = request.GetVariable("input");

            try
            {
                var controller = AppsControllerInstance;
                var app        = controller.GetApp(appId);
                var context    = GetSessionContext(request);
                if (app != null)
                {
                    context[AppSettings.MenuContext] = _menus;
                    context[AppSettings.AppContext]  = app;

                    return(RendererView(context, "layout", AppSettings.AppContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "apps error";
            _errorContextInstance.ErrorDescription = $"No app with {appId} found";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 20
0
        private object RouteTransaction(HTTPRequest request)
        {
            var txHash = request.GetVariable("input");

            try
            {
                var tx      = TransactionsControllerInstance.GetTransaction(txHash);
                var context = GetSessionContext(request);
                if (tx != null)
                {
                    ActivateMenuItem(AppSettings.UrlTransaction);

                    context[AppSettings.MenuContext] = _menus;
                    context[AppSettings.TxContext]   = tx;

                    return(RendererView(context, "layout", AppSettings.TxContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "txs error";
            _errorContextInstance.ErrorDescription = $"Transaction {txHash} not found";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 21
0
        private object RouteConfirmations(HTTPRequest request)
        {
            if (!HasLogin(request))
            {
                return(HTTPResponse.Redirect("/login"));
            }

            var context = InitContext(request);
            var txHash  = request.GetVariable("txhash");

            request.session.SetStruct <ErrorContext>("error", new ErrorContext {
                ErrorCode = "", ErrorDescription = $"{txHash} is still not confirmed."
            });
            var result = AccountController.GetTxConfirmations(txHash).Result;

            if (result.GetType() == typeof(ErrorRes))
            {
                return(JsonConvert.SerializeObject(result, Formatting.Indented));
            }

            var txObject = (TransactionDto)result;

            request.session.SetString("confirmedHash", txHash);
            if (request.session.GetBool("isCrossTransfer"))
            {
                var settle = request.session.GetStruct <SettleTx>("settleTx");

                var settleTx = AccountController.SettleBlockTransfer(
                    GetLoginKey(request),
                    settle.ChainAddress,
                    txObject.Txid, settle.DestinationChainAddress).Result;

                // clear
                request.session.SetBool("isCrossTransfer", false);

                if (SendUtils.IsTxHashValid(settleTx))
                {
                    context["confirmingTxHash"] = settleTx;
                    return("settling");
                }
                PushError(request, settleTx);
                return("unconfirmed");
            }
            else
            {
                if (request.session.GetInt("txNumber") > 2)
                {
                    return("continue");
                }

                //if it gets here, there are no more txs to process
                var keyPair = GetLoginKey(request);
                InvalidateCache(keyPair.Address);

                ResetSessionSendFields(request);
                return("confirmed");
            }
        }
Esempio n. 22
0
        private object RouteConfirmations(HTTPRequest request)
        {
            if (!HasLogin(request))
            {
                return(HTTPResponse.Redirect("/login"));
            }

            var context = InitContext(request);
            var txHash  = request.GetVariable("txhash");

            request.session.SetStruct <ErrorContext>("error", new ErrorContext {
                ErrorCode = "", ErrorDescription = $"{txHash} is still not confirmed."
            });
            var transactionDto = AccountController.GetTxConfirmations(txHash).Result;

            // hack, transactionDto.Result might contain the confirmations, but that's empty
            // so we check if the txid != null for now
            if (transactionDto.Txid != null)
            {
                request.session.SetString("confirmedHash", txHash);
                if (request.session.GetBool("isCrossTransfer"))
                {
                    var settle = request.session.GetStruct <SettleTx>("settleTx");

                    var settleTx = AccountController.SettleBlockTransfer(
                        GetLoginKey(request),
                        settle.ChainAddress,
                        transactionDto.Txid, settle.DestinationChainAddress).Result;

                    // clear
                    request.session.SetBool("isCrossTransfer", false);

                    if (SendUtils.IsTxHashValid(settleTx))
                    {
                        context["confirmingTxHash"] = settleTx;
                        return("settling");
                    }
                    PushError(request, settleTx);
                    return("unconfirmed");
                }
                else
                {
                    if (request.session.GetInt("txNumber") > 2)
                    {
                        return("continue");
                    }

                    //if it gets here, there are no more txs to process
                    var keyPair = GetLoginKey(request);
                    InvalidateCache(keyPair.Address);

                    ResetSessionSendFields(request);
                    return("confirmed");
                }
            }
            PushError(request, "Error sending tx.");
            return("unconfirmed");
        }
Esempio n. 23
0
        private string RouteMultisig(HTTPRequest request)
        {
            //var json  = "{ \"addressCount\": 3, \"signeeCount\": 2, \"addressArray\": [\" ksdlfjksadjfkljsadlkfjasdklf \"]}";
            var settingsJson = request.GetVariable("settings");

            var settings = JsonConvert.DeserializeObject <MultisigSettings>(settingsJson);
            var keyPair  = GetLoginKey(request);
            var result   = AccountController.CreateMultisigWallet(keyPair, settings);

            return(JsonConvert.SerializeObject(result, Formatting.Indented));
        }
Esempio n. 24
0
        private object RouteConvertAddress(HTTPRequest request)
        {
            var neoKey        = request.GetVariable("neoKey");
            var neoPassphrase = request.GetVariable("neoPassphrase");
            var context       = InitContext(request);

            Phantasma.Neo.Core.NeoKeys neoKeys;

            if (string.IsNullOrEmpty(neoPassphrase))
            {
                neoKeys = Phantasma.Neo.Core.NeoKeys.FromWIF(neoKey);
            }
            else
            {
                neoKeys = Phantasma.Neo.Core.NeoKeys.FromNEP2(neoKey, neoPassphrase);
            }
            var result = $"{neoKeys.ToString()}";

            return(result);
        }
Esempio n. 25
0
        private object RouteInvokeSettleTxETH(HTTPRequest request)
        {
            var txHash        = request.GetVariable("txHash");
            var ethKey        = request.GetVariable("ethKey");
            var assetSymbol   = request.GetVariable("assetSymbol");
            var context       = InitContext(request);
            var phantasmaKeys = GetLoginKey(request);

            InvalidateCache(phantasmaKeys.Address);
            if (context["holdings"] is Holding[] balance)
            {
                EthereumKey ethKeys;

                ethKeys = EthereumKey.FromWIF(ethKey);

                var result = AccountController.InvokeSettleTxETH(ethKeys, phantasmaKeys, txHash, assetSymbol).Result;
                ResetSessionSendFields(request);
                return(result);
            }
            return(null);
        }
Esempio n. 26
0
        private object RouteSendRawTxCustomNFT(HTTPRequest request)
        {
            var addressTo = request.GetVariable("dest");
            var chainName = request.GetVariable("chain");
            var symbol    = request.GetVariable("token");
            var amount    = request.GetVariable("amount");
            var payload   = request.GetVariable("payload");
            var donation  = bool.Parse(request.GetVariable("donation"));

            var    keyPair = GetLoginKey(request);
            string result;

            result = AccountController.TransferTokensCustomNFT(keyPair, addressTo, chainName, symbol, amount, payload, donation).Result;

            ResetSessionSendFields(request);

            if (!SendUtils.IsTxHashValid(result))
            {
                PushError(request, result);
                Log.Information("No valid result");
                return("");
            }

            return(result);
        }
Esempio n. 27
0
        private object RouteConvertAddressETH(HTTPRequest request)
        {
            var ethKey  = request.GetVariable("ethKey");
            var context = InitContext(request);

            EthereumKey ethKeys;

            ethKeys = EthereumKey.FromWIF(ethKey);

            var result = $"{ethKeys.ToString()}";

            return(result);
        }
Esempio n. 28
0
        private object RouteWaitingTx(HTTPRequest request)
        {
            if (!HasLogin(request))
            {
                return(HTTPResponse.Redirect("/login"));
            }

            var context = InitContext(request);

            context["confirmingTxHash"] = request.GetVariable("txhash");
            context["transferTx"]       = request.session.GetStruct <TransferTx>("transferTx");
            return(RendererView(context, "layout", "waiting"));
        }
Esempio n. 29
0
        private object RouteAddress(HTTPRequest request)
        {
            try
            {
                var addressText = request.GetVariable("input");
                var context     = GetSessionContext(request);
                if (AddressesControllerInstance.IsAddressStored(addressText))
                {
                    var input = request.GetVariable("page");
                    if (!int.TryParse(input, out int pageNumber))
                    {
                        pageNumber = 1;
                    }
                    var controller = AddressesControllerInstance;

                    var pageModel = new PaginationModel
                    {
                        Count       = controller.GetTransactionCount(addressText),
                        CurrentPage = pageNumber,
                        PageSize    = AppSettings.PageSize,
                    };
                    var addressVm = AddressesControllerInstance.GetAddress(addressText, pageModel.CurrentPage, pageModel.PageSize);
                    context[AppSettings.MenuContext]       = _menus;
                    context[AppSettings.AddressContext]    = addressVm;
                    context[AppSettings.PaginationContext] = pageModel;
                    return(RendererView(context, "layout", AppSettings.AddressContext));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            _errorContextInstance.ErrorCode        = "Address error";
            _errorContextInstance.ErrorDescription = $"Invalid address";
            request.session.SetStruct <ErrorContext>(AppSettings.ErrorContext, _errorContextInstance);

            return(HTTPResponse.Redirect(AppSettings.UrlError));
        }
Esempio n. 30
0
        private object RouteConvertAddressETHHEX(HTTPRequest request)
        {
            var ethKey  = request.GetVariable("ethKey");
            var context = InitContext(request);

            EthereumKey ethKeys;

            var bytes = Base16.Decode(ethKey);
            var temp  = new PhantasmaKeys(bytes);

            ethKeys = EthereumKey.FromWIF(temp.ToWIF());

            var result = $"{ethKeys.ToString()}";

            return(result);
        }