public static OperationResultTr Decode(XdrDataInputStream stream)
            {
                OperationResultTr decodedOperationResultTr = new OperationResultTr();
                OperationType     discriminant             = OperationType.Decode(stream);

                decodedOperationResultTr.Discriminant = discriminant;
                switch (decodedOperationResultTr.Discriminant.InnerValue)
                {
                case OperationType.OperationTypeEnum.CREATE_ACCOUNT:
                    decodedOperationResultTr.CreateAccountResult = CreateAccountResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.PAYMENT:
                    decodedOperationResultTr.PaymentResult = PaymentResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.PATH_PAYMENT:
                    decodedOperationResultTr.PathPaymentResult = PathPaymentResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.MANAGE_OFFER:
                    decodedOperationResultTr.ManageOfferResult = ManageOfferResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.CREATE_PASSIVE_OFFER:
                    decodedOperationResultTr.CreatePassiveOfferResult = ManageOfferResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.SET_OPTIONS:
                    decodedOperationResultTr.SetOptionsResult = SetOptionsResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.CHANGE_TRUST:
                    decodedOperationResultTr.ChangeTrustResult = ChangeTrustResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.ALLOW_TRUST:
                    decodedOperationResultTr.AllowTrustResult = AllowTrustResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.ACCOUNT_MERGE:
                    decodedOperationResultTr.AccountMergeResult = AccountMergeResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.INFLATION:
                    decodedOperationResultTr.InflationResult = InflationResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.MANAGE_DATA:
                    decodedOperationResultTr.ManageDataResult = ManageDataResult.Decode(stream);
                    break;

                case OperationType.OperationTypeEnum.BUMP_SEQUENCE:
                    decodedOperationResultTr.BumpSeqResult = BumpSequenceResult.Decode(stream);
                    break;
                }
                return(decodedOperationResultTr);
            }
            public static void Encode(XdrDataOutputStream stream, OperationResultTr encodedOperationResultTr)
            {
                stream.WriteInt((int)encodedOperationResultTr.Discriminant.InnerValue);
                switch (encodedOperationResultTr.Discriminant.InnerValue)
                {
                case OperationType.OperationTypeEnum.CREATE_ACCOUNT:
                    CreateAccountResult.Encode(stream, encodedOperationResultTr.CreateAccountResult);
                    break;

                case OperationType.OperationTypeEnum.PAYMENT:
                    PaymentResult.Encode(stream, encodedOperationResultTr.PaymentResult);
                    break;

                case OperationType.OperationTypeEnum.PATH_PAYMENT:
                    PathPaymentResult.Encode(stream, encodedOperationResultTr.PathPaymentResult);
                    break;

                case OperationType.OperationTypeEnum.MANAGE_OFFER:
                    ManageOfferResult.Encode(stream, encodedOperationResultTr.ManageOfferResult);
                    break;

                case OperationType.OperationTypeEnum.CREATE_PASSIVE_OFFER:
                    ManageOfferResult.Encode(stream, encodedOperationResultTr.CreatePassiveOfferResult);
                    break;

                case OperationType.OperationTypeEnum.SET_OPTIONS:
                    SetOptionsResult.Encode(stream, encodedOperationResultTr.SetOptionsResult);
                    break;

                case OperationType.OperationTypeEnum.CHANGE_TRUST:
                    ChangeTrustResult.Encode(stream, encodedOperationResultTr.ChangeTrustResult);
                    break;

                case OperationType.OperationTypeEnum.ALLOW_TRUST:
                    AllowTrustResult.Encode(stream, encodedOperationResultTr.AllowTrustResult);
                    break;

                case OperationType.OperationTypeEnum.ACCOUNT_MERGE:
                    AccountMergeResult.Encode(stream, encodedOperationResultTr.AccountMergeResult);
                    break;

                case OperationType.OperationTypeEnum.INFLATION:
                    InflationResult.Encode(stream, encodedOperationResultTr.InflationResult);
                    break;

                case OperationType.OperationTypeEnum.MANAGE_DATA:
                    ManageDataResult.Encode(stream, encodedOperationResultTr.ManageDataResult);
                    break;

                case OperationType.OperationTypeEnum.BUMP_SEQUENCE:
                    BumpSequenceResult.Encode(stream, encodedOperationResultTr.BumpSeqResult);
                    break;
                }
            }
        public static void Encode(XdrDataOutputStream stream, ManageOfferResult encodedManageOfferResult)
        {
            stream.WriteInt((int)encodedManageOfferResult.Discriminant.InnerValue);
            switch (encodedManageOfferResult.Discriminant.InnerValue)
            {
            case ManageOfferResultCode.ManageOfferResultCodeEnum.MANAGE_OFFER_SUCCESS:
                ManageOfferSuccessResult.Encode(stream, encodedManageOfferResult.Success);
                break;

            default:
                break;
            }
        }
        public static ManageOfferResult Decode(XdrDataInputStream stream)
        {
            ManageOfferResult     decodedManageOfferResult = new ManageOfferResult();
            ManageOfferResultCode discriminant             = ManageOfferResultCode.Decode(stream);

            decodedManageOfferResult.Discriminant = discriminant;
            switch (decodedManageOfferResult.Discriminant.InnerValue)
            {
            case ManageOfferResultCode.ManageOfferResultCodeEnum.MANAGE_OFFER_SUCCESS:
                decodedManageOfferResult.Success = ManageOfferSuccessResult.Decode(stream);
                break;

            default:
                break;
            }
            return(decodedManageOfferResult);
        }