public static void Encode(XdrDataOutputStream stream, RevokeSponsorshipOp encodedRevokeSponsorshipOp)
        {
            stream.WriteInt((int)encodedRevokeSponsorshipOp.Discriminant.InnerValue);
            switch (encodedRevokeSponsorshipOp.Discriminant.InnerValue)
            {
            case RevokeSponsorshipType.RevokeSponsorshipTypeEnum.REVOKE_SPONSORSHIP_LEDGER_ENTRY:
                LedgerKey.Encode(stream, encodedRevokeSponsorshipOp.LedgerKey);
                break;

            case RevokeSponsorshipType.RevokeSponsorshipTypeEnum.REVOKE_SPONSORSHIP_SIGNER:
                RevokeSponsorshipOpSigner.Encode(stream, encodedRevokeSponsorshipOp.Signer);
                break;
            }
        }
        public static RevokeSponsorshipOp Decode(XdrDataInputStream stream)
        {
            RevokeSponsorshipOp   decodedRevokeSponsorshipOp = new RevokeSponsorshipOp();
            RevokeSponsorshipType discriminant = RevokeSponsorshipType.Decode(stream);

            decodedRevokeSponsorshipOp.Discriminant = discriminant;
            switch (decodedRevokeSponsorshipOp.Discriminant.InnerValue)
            {
            case RevokeSponsorshipType.RevokeSponsorshipTypeEnum.REVOKE_SPONSORSHIP_LEDGER_ENTRY:
                decodedRevokeSponsorshipOp.LedgerKey = LedgerKey.Decode(stream);
                break;

            case RevokeSponsorshipType.RevokeSponsorshipTypeEnum.REVOKE_SPONSORSHIP_SIGNER:
                decodedRevokeSponsorshipOp.Signer = RevokeSponsorshipOpSigner.Decode(stream);
                break;
            }
            return(decodedRevokeSponsorshipOp);
        }