package Ġcom . g apps . bit mex helper . kotlin . exchange Ċ Ċ import Ġcom . g apps . bit mex helper . kotlin . pers istance . Settings Ċ import Ġorg . know m . x change . bit mex . Bit mex Exchange Ċ Ċ object ĠExchange Holder Ġ{ ĊĊĠĠĠ Ġvar Ġexchange : ĠX Change Wrapper ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġexchange Available Listeners Ġ= ĠArrayList <( X Change Wrapper ) Ġ-> ĠUnit >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings . api Credentials Available Listener Ġ= Ġ{ Ġkey , Ġsecret Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexchange Ġ= ĠX Change Wrapper ( Bit mex Exchange :: class , Ġkey , Ġsecret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Listeners () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Listener ( listener : Ġ( X Change Wrapper ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexchange Available Listeners . add ( listener ) ĊĠĠĠĠĠĠĠ Ġinvoke Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Listener ( listener : Ġ( X Change Wrapper ) Ġ-> ĠUnit ) Ġ= Ġexchange Available Listeners . remove ( listener ) ĊĊĠĠĠ Ġprivate Ġfun Ġinvoke Listeners () Ġ= Ġexchange ?. also Ġ{ Ġx change Ġ-> ĊĠĠĠĠĠĠĠ Ġexchange Available Listeners . forEach Ġ{ Ġit . invoke ( x change ) Ġ} ĊĠĠĠ Ġ} Ċ }