示例#1
0
        protected override async Task Run()
        {
            if (!WalletApp.HasCoreAccount)
            {
                SetError("No core account availble");
                return;
            }

            if (!WalletApp.IsCoreAccountUnlocked)
            {
                await WalletApp.UnlockCoreAccount(password);
            }

            if (!WalletApp.IsCoreAccountUnlocked)
            {
                SetError("Password is invalid");
                return;
            }

            var balance = await WalletApp.UpdateCoreAccountBalance();

            if (balance != null)
            {
                SetSuccess($"Coins: {Currency.ToString(balance.Balance, false)}\nGifted: {Currency.ToString(balance.GiftedBalance, false)}");
            }
            else
            {
                SetError("Downloading balance failed");
            }
        }
        protected override bool Parse(ArgumentsParser arguments)
        {
            name             = arguments.String(nameof(name), null);
            password         = arguments.String(nameof(password), null);
            agreedatalicence = arguments.Bool(nameof(agreedatalicence), false);

            if (!agreedatalicence || string.IsNullOrEmpty(name) || !WalletApp.IsValidPassword(password))
            {
                return(false);
            }
            return(true);
        }
示例#3
0
        protected override async Task Run()
        {
            var result = await WalletApp.TransferCoins(targetaccount, amount, reason, password);

            if (result.TransactionResult == TransactionResultTypes.Ok)
            {
                SetSuccess("transfer successfull");
            }
            else
            {
                SetError(result.GetErrorMessage());
            }
        }
        protected override bool Parse(ArgumentsParser arguments)
        {
            key         = arguments.String(nameof(key), null);
            keypassword = arguments.String(nameof(keypassword), null);

            try
            {
                keyStore = KeyStore.Restore(key);
            }
            catch { }

            return(keyStore != null && WalletApp.IsValidPassword(keypassword));
        }
        protected override async Task Run()
        {
            var result = await WalletApp.RegisterCoreAccount(name, password);

            if (result.TransactionResult == TransactionResultTypes.Ok)
            {
                SetSuccess((result.Transaction as AccountOperation).AccountId.ToString());
            }
            else
            {
                SetError(result.GetErrorMessage());
            }
        }
        protected override bool Parse(ArgumentsParser arguments)
        {
            chainid          = arguments.Integer(nameof(chainid), 0);
            accountpassword  = arguments.String(nameof(accountpassword), null);
            chainkeyname     = arguments.String(nameof(chainkeyname), null);
            chainkeypassword = arguments.String(nameof(chainkeypassword), null);

            if (chainid <= Protocol.CoreChainId || !WalletApp.IsValidPassword(accountpassword) || string.IsNullOrEmpty(chainkeyname) || !WalletApp.IsValidPassword(chainkeypassword))
            {
                return(false);
            }

            return(true);
        }
        protected override async Task Run()
        {
            var key = Key.Generate(Protocol.TransactionKeyType);

            var result = await WalletApp.JoinChain(chainid, 0, key, accountpassword, chainkeyname, chainkeypassword);

            if (result.TransactionResult == TransactionResultTypes.Ok)
            {
                SetSuccess(WalletApp.Client.CurrentChainAccount?.KeyIndex.ToString());
            }
            else
            {
                SetError(result.GetErrorMessage());
            }
        }
示例#8
0
        protected override bool Parse(ArgumentsParser arguments)
        {
            targetaccount = arguments.Long(nameof(targetaccount), -1);
            reason        = arguments.String(nameof(reason), null);
            password      = arguments.String(nameof(password), null);

            var amountstr = arguments.String(nameof(amount), null);

            if (targetaccount < 0 || string.IsNullOrWhiteSpace(amountstr) || !WalletApp.IsValidPassword(password) || !AccountUpdateOperation.IsReasonValid(reason))
            {
                return(false);
            }

            var hasDot = false;

            foreach (var c in amountstr)
            {
                if (c == '.' && !hasDot)
                {
                    hasDot = true;
                    continue;
                }

                if (!(c >= '0' && c <= '9'))
                {
                    SetError("Amount invalid");
                    return(false);
                }
            }

            if (!decimal.TryParse(amountstr, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out var d))
            {
                SetError("Amount invalid");
                return(false);
            }

            amount = Currency.ToHel(d);

            return(amount > 0);
        }
示例#9
0
        protected override bool Parse(ArgumentsParser arguments)
        {
            password = arguments.String(nameof(password), null);

            return(WalletApp.IsValidPassword(password));
        }
示例#10
0
        protected override bool Parse(ArgumentsParser arguments)
        {
            keytype     = arguments.String(nameof(keytype), null);
            keypassword = arguments.String(nameof(keypassword), null);
            accountid   = arguments.Long(nameof(accountid), -1);
            chainid     = arguments.Integer(nameof(chainid), -1);
            keyindex    = arguments.Integer(nameof(keyindex), -1);

            return((keytype == "coreaccount" || keytype == "serviceaccount" || keytype == "chainkey") && WalletApp.IsValidPassword(keypassword));
        }