public static TransactionMeta Decode(XdrDataInputStream stream) { TransactionMeta decodedTransactionMeta = new TransactionMeta(); int discriminant = stream.ReadInt(); decodedTransactionMeta.Discriminant = discriminant; switch (decodedTransactionMeta.Discriminant) { case 0: int operationssize = stream.ReadInt(); decodedTransactionMeta.Operations = new OperationMeta[operationssize]; for (int i = 0; i < operationssize; i++) { decodedTransactionMeta.Operations[i] = OperationMeta.Decode(stream); } break; case 1: decodedTransactionMeta.V1 = TransactionMetaV1.Decode(stream); break; case 2: decodedTransactionMeta.V2 = TransactionMetaV2.Decode(stream); break; } return(decodedTransactionMeta); }