public override string CreateSignedTransaction(string aToAddress, decimal aAmount, decimal aTxFee, params object[] aExtParams)
        {
            string lNonce = null;

            if (aExtParams != null && aExtParams.Any())
            {
                var lCustomTxFee = aExtParams.FirstOrDefault() as decimal?;
                if (lCustomTxFee.HasValue && lCustomTxFee.Value != aTxFee && lCustomTxFee.Value > 0)
                {
                    aTxFee = lCustomTxFee.Value;
                }
                if (aExtParams.Length >= 2)
                {
                    lNonce = aExtParams[1] as string;
                }
            }
            var lParentCurrency         = FServerConnection.GetCurrency(FToken.ParentCurrencyID);
            var lParentCurrencyAdvocacy = FKeyManager.GetCurrencyAdvocacy(lParentCurrency.Id, lParentCurrency.ChainParamaters);
            var lFromAddress            = lParentCurrencyAdvocacy.GetAddress(1);
            var lTransaction            = PrepareNewTransaction(lFromAddress, aToAddress, aAmount, aTxFee);

            if (string.IsNullOrEmpty(lNonce))
            {
                lNonce = FServerConnection.DirectCreateTransaction(lTransaction);
            }
            return(SignTransactionData(lNonce, lTransaction, lParentCurrencyAdvocacy));
        }
        public override string CreateSignedTransaction(string aToAddress, decimal aAmount, decimal aTxFee, params object[] aExtParams)
        {
            var lUnspents = FServerConnection.GetUnspentOutputs(FCurrencyItem.Id);

            if (aExtParams != null && aExtParams.Any())
            {
                var lCustomTxFee = aExtParams.FirstOrDefault() as decimal?;
                if (lCustomTxFee.HasValue && lCustomTxFee.Value != aTxFee && lCustomTxFee.Value > 0)
                {
                    aTxFee = lCustomTxFee.Value;
                }
            }
            string lData = PrepareNewTransaction(aToAddress, aAmount, aTxFee, FCurrencyItem, lUnspents, out CurrencyTransaction lCurrencyTransaction);

            return(SignTransactionData(lData, lCurrencyTransaction, FKeyManager.GetCurrencyAdvocacy(FCurrencyItem.Id, FCurrencyItem.ChainParamaters)));
        }