public TransactionResultCode.TransactionResultCodeEnum GetTransactionResult(TransactionResponse tx)
        {
            var xdr      = Convert.FromBase64String(tx.ResultXdr);
            var reader   = new XdrDataInputStream(xdr);
            var txResult = TransactionResult.Decode(reader);

            return(txResult.Result.Discriminant.InnerValue);
        }
        public static TransactionResultPair Decode(XdrDataInputStream stream)
        {
            TransactionResultPair decodedTransactionResultPair = new TransactionResultPair();

            decodedTransactionResultPair.TransactionHash = Hash.Decode(stream);
            decodedTransactionResultPair.Result          = TransactionResult.Decode(stream);
            return(decodedTransactionResultPair);
        }
        public long GetAccountMergeAmount(string resultXdrBase64, int operationIndex)
        {
            var xdr      = Convert.FromBase64String(resultXdrBase64);
            var txResult = TransactionResult.Decode(new XdrDataInputStream(xdr));
            var merge    = txResult.Result.Results[operationIndex];

            if (merge.Tr.AccountMergeResult != null && merge.Tr.AccountMergeResult.Discriminant.InnerValue == AccountMergeResultCode.AccountMergeResultCodeEnum.ACCOUNT_MERGE_SUCCESS)
            {
                var amount = merge.Tr.AccountMergeResult.SourceAccountBalance.InnerValue;
                return(amount);
            }

            return(0);
        }