jspurefix icon indicating copy to clipboard operation
jspurefix copied to clipboard

Logon message is broken in FIX 4.3

Open ChrisiPK opened this issue 2 years ago • 2 comments

The logon message for FIX 4.3 is missing user name and password fields. It is not possible to logon without these fields.

https://github.com/TimelordUK/jspurefix/blob/master/src/types/FIX4.3/repo/logon.ts

I will be happy to create a pull request to fix this. However, I am wondering: Is FIX 4.3 supported by this library? Or will I run into more problems when trying to use it and I should try to use 4.4 in its place?

ChrisiPK avatar Oct 12 '22 18:10 ChrisiPK

looks like a bug in XML parser for repo i will have to debug it

in interim If you pull latest from master I have added the quickfix 4.3

https://github.com/TimelordUK/jspurefix/blob/master/src/types/FIX4.3/quickfix/logon.ts

is this OK to use? this should work I added the compiled types for quickfix from this XML


import { IStandardHeader } from './set/standard_header'
import { ILogonNoMsgTypes } from './set/logon_no_msg_types'
import { IStandardTrailer } from './set/standard_trailer'

export interface ILogon {
  StandardHeader: IStandardHeader// [1] BeginString.8, BodyLength.9 .. HopRefID.630
  EncryptMethod: number// [2] 98 (Int)
  HeartBtInt: number// [3] 108 (Int)
  RawDataLength?: number// [4] 95 (Length)
  RawData?: Buffer// [5] 96 (RawData)
  ResetSeqNumFlag?: boolean// [6] 141 (Boolean)
  MaxMessageSize?: number// [7] 383 (Length)
  NoMsgTypes?: ILogonNoMsgTypes[]// [8] RefMsgType.372, MsgDirection.385
  TestMessageIndicator?: boolean// [9] 464 (Boolean)
  Username?: string// [10] 553 (String)
  Password?: string// [11] 554 (String)
  StandardTrailer: IStandardTrailer// [12] SignatureLength.93, Signature.89, CheckSum.10
}

TimelordUK avatar Oct 12 '22 23:10 TimelordUK

Thanks for the fast response! I pulled from master and changed the dictionary to qf43 and now I can log on. :) I will do some more testing and check if everything else works as well.

However, I also encountered another error:

2022-10-14T18:42:59.669Z [launcher] error: ENOENT: no such file or directory, lstat '/workspaces/jspf-demo/node_modules/jspurefix/data/FIX43.xml' : Error: ENOENT: no such file or directory, lstat '/workspaces/jspf-demo/node_modules/jspurefix/data/FIX43.xml' at Object.lstatSync (node:fs:1516:3) at DefinitionFactory.getParser (/workspaces/jspf-demo/node_modules/jspurefix/dist/util/definition-factory.js:36:16) at DefinitionFactory. (/workspaces/jspf-demo/node_modules/jspurefix/dist/util/definition-factory.js:30:33) at Generator.next () at /workspaces/jspf-demo/node_modules/jspurefix/dist/util/definition-factory.js:8:71 at new Promise () at __awaiter (/workspaces/jspf-demo/node_modules/jspurefix/dist/util/definition-factory.js:4:12) at DefinitionFactory.getDefinitions (/workspaces/jspf-demo/node_modules/jspurefix/dist/util/definition-factory.js:24:16) at /workspaces/jspf-demo/node_modules/jspurefix/dist/runtime/make-config.js:32:40 at new Promise ()

The problem is that the file extension of data/FIX43.XML is all uppercase, whereas the code is looking for lowercase. I renamed the file locally to FIX43.xml and that has fixed the problem for me. Would be great if you could also change that in the repository.

ChrisiPK avatar Oct 14 '22 18:10 ChrisiPK

this has been fixed thanks for raising issue

TimelordUK avatar Nov 05 '23 17:11 TimelordUK