public static TransactionResultResult Decode(XdrDataInputStream stream)
            {
                TransactionResultResult decodedTransactionResultResult = new TransactionResultResult();
                TransactionResultCode   discriminant = TransactionResultCode.Decode(stream);

                decodedTransactionResultResult.Discriminant = discriminant;
                switch (decodedTransactionResultResult.Discriminant.InnerValue)
                {
                case TransactionResultCode.TransactionResultCodeEnum.txFEE_BUMP_INNER_SUCCESS:
                case TransactionResultCode.TransactionResultCodeEnum.txFEE_BUMP_INNER_FAILED:
                    decodedTransactionResultResult.InnerResultPair = InnerTransactionResultPair.Decode(stream);
                    break;

                case TransactionResultCode.TransactionResultCodeEnum.txSUCCESS:
                case TransactionResultCode.TransactionResultCodeEnum.txFAILED:
                    int resultssize = stream.ReadInt();
                    decodedTransactionResultResult.Results = new OperationResult[resultssize];
                    for (int i = 0; i < resultssize; i++)
                    {
                        decodedTransactionResultResult.Results[i] = OperationResult.Decode(stream);
                    }
                    break;

                default:
                    break;
                }
                return(decodedTransactionResultResult);
            }
        public static InnerTransactionResultPair Decode(XdrDataInputStream stream)
        {
            InnerTransactionResultPair decodedInnerTransactionResultPair = new InnerTransactionResultPair();

            decodedInnerTransactionResultPair.TransactionHash = Hash.Decode(stream);
            decodedInnerTransactionResultPair.Result          = InnerTransactionResult.Decode(stream);
            return(decodedInnerTransactionResultPair);
        }
            public static void Encode(XdrDataOutputStream stream, TransactionResultResult encodedTransactionResultResult)
            {
                stream.WriteInt((int)encodedTransactionResultResult.Discriminant.InnerValue);
                switch (encodedTransactionResultResult.Discriminant.InnerValue)
                {
                case TransactionResultCode.TransactionResultCodeEnum.txFEE_BUMP_INNER_SUCCESS:
                case TransactionResultCode.TransactionResultCodeEnum.txFEE_BUMP_INNER_FAILED:
                    InnerTransactionResultPair.Encode(stream, encodedTransactionResultResult.InnerResultPair);
                    break;

                case TransactionResultCode.TransactionResultCodeEnum.txSUCCESS:
                case TransactionResultCode.TransactionResultCodeEnum.txFAILED:
                    int resultssize = encodedTransactionResultResult.Results.Length;
                    stream.WriteInt(resultssize);
                    for (int i = 0; i < resultssize; i++)
                    {
                        OperationResult.Encode(stream, encodedTransactionResultResult.Results[i]);
                    }
                    break;

                default:
                    break;
                }
            }
 public static void Encode(XdrDataOutputStream stream, InnerTransactionResultPair encodedInnerTransactionResultPair)
 {
     Hash.Encode(stream, encodedInnerTransactionResultPair.TransactionHash);
     InnerTransactionResult.Encode(stream, encodedInnerTransactionResultPair.Result);
 }