@orderly.network/hooks 1.4.0-alpha.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm/configProvider.d.ts.map +1 -1
  2. package/esm/configProvider.js +3 -2
  3. package/esm/configProvider.js.map +1 -1
  4. package/esm/dev/proxyConfigStore.d.ts +15 -0
  5. package/esm/dev/proxyConfigStore.d.ts.map +1 -0
  6. package/esm/dev/proxyConfigStore.js +41 -0
  7. package/esm/dev/proxyConfigStore.js.map +1 -0
  8. package/esm/orderly/orderlyHooks.d.ts +1 -1
  9. package/esm/orderly/orderlyHooks.js +1 -1
  10. package/esm/orderly/orderlyHooks.js.map +1 -1
  11. package/esm/orderly/useOrderStream/useOrderStream.d.ts +2 -1
  12. package/esm/orderly/useOrderStream/useOrderStream.d.ts.map +1 -1
  13. package/esm/orderly/useOrderStream/useOrderStream.js +21 -10
  14. package/esm/orderly/useOrderStream/useOrderStream.js.map +1 -1
  15. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +3 -5
  16. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -1
  17. package/esm/orderly/useTakeProfitAndStopLoss/index.js +1 -1
  18. package/esm/orderly/useTakeProfitAndStopLoss/index.js.map +1 -1
  19. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +3 -5
  20. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  21. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +9 -10
  22. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  23. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -1
  24. package/esm/orderly/useTakeProfitAndStopLoss/utils.js +24 -11
  25. package/esm/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -1
  26. package/esm/services/orderCreator/tpslOrderCreator.js +1 -1
  27. package/esm/services/orderCreator/tpslOrderCreator.js.map +1 -1
  28. package/esm/version.d.ts +1 -1
  29. package/esm/version.d.ts.map +1 -1
  30. package/esm/version.js +2 -2
  31. package/esm/version.js.map +1 -1
  32. package/lib/configProvider.d.ts.map +1 -1
  33. package/lib/configProvider.js +3 -2
  34. package/lib/configProvider.js.map +1 -1
  35. package/lib/dev/proxyConfigStore.d.ts +15 -0
  36. package/lib/dev/proxyConfigStore.d.ts.map +1 -0
  37. package/lib/dev/proxyConfigStore.js +51 -0
  38. package/lib/dev/proxyConfigStore.js.map +1 -0
  39. package/lib/orderly/orderlyHooks.d.ts +1 -1
  40. package/lib/orderly/orderlyHooks.js +3 -3
  41. package/lib/orderly/orderlyHooks.js.map +1 -1
  42. package/lib/orderly/useOrderStream/useOrderStream.d.ts +2 -1
  43. package/lib/orderly/useOrderStream/useOrderStream.d.ts.map +1 -1
  44. package/lib/orderly/useOrderStream/useOrderStream.js +21 -10
  45. package/lib/orderly/useOrderStream/useOrderStream.js.map +1 -1
  46. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +3 -5
  47. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -1
  48. package/lib/orderly/useTakeProfitAndStopLoss/index.js +3 -3
  49. package/lib/orderly/useTakeProfitAndStopLoss/index.js.map +1 -1
  50. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +3 -5
  51. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -1
  52. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +9 -10
  53. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -1
  54. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -1
  55. package/lib/orderly/useTakeProfitAndStopLoss/utils.js +12 -10
  56. package/lib/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -1
  57. package/lib/services/orderCreator/tpslOrderCreator.js +1 -1
  58. package/lib/services/orderCreator/tpslOrderCreator.js.map +1 -1
  59. package/lib/version.d.ts +1 -1
  60. package/lib/version.d.ts.map +1 -1
  61. package/lib/version.js +2 -2
  62. package/lib/version.js.map +1 -1
  63. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"configProvider.d.ts","sourceRoot":"","sources":["../src/configProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAM,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EACL,WAAW,EAGX,eAAe,EACf,oBAAoB,EAMpB,SAAS,EACV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,EACL,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAYhC,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACjE;KACG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACnE,CAAC,CAAC,CAAC,CAAC;AAEP,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,cAAc,CAAC;AAChE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,WAAW,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CACjD;AAED,eAAO,MAAM,qBAAqB,UACzB,kBACL,kBAAkB,mBAAmB,EAAE,UAAU,GAAG,aAAa,CAAC,CACnE,mDAgGF,CAAC"}
1
+ {"version":3,"file":"configProvider.d.ts","sourceRoot":"","sources":["../src/configProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAM,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EACL,WAAW,EAGX,eAAe,EACf,oBAAoB,EAMpB,SAAS,EACV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,EACL,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAahC,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACjE;KACG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACnE,CAAC,CAAC,CAAC,CAAC;AAEP,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,cAAc,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,WAAW,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CACjD;AAED,eAAO,MAAM,qBAAqB,UACzB,kBACL,kBAAkB,mBAAmB,EAAE,UAAU,GAAG,aAAa,CAAC,CACnE,mDAkGF,CAAC"}
@@ -8,6 +8,7 @@ import useConstant from "use-constant";
8
8
  import { DataCenterProvider } from "./dataProvider";
9
9
  import { StatusProvider } from "./statusProvider";
10
10
  import { SDKError } from "@orderly.network/types";
11
+ import { ProxyConfigStore } from "./dev/proxyConfigStore";
11
12
  export const OrderlyConfigProvider = (props)=>{
12
13
  const [account, setAccount] = React.useState(null);
13
14
  const { configStore, keyStore, getWalletAdapter, brokerId, networkId, contracts, chainFilter } = props;
@@ -19,10 +20,10 @@ export const OrderlyConfigProvider = (props)=>{
19
20
  throw new SDKError("if configStore is provided, brokerId is required in configStore");
20
21
  }
21
22
  const innerConfigStore = useConstant(()=>{
22
- return configStore || new DefaultConfigStore({
23
+ return new ProxyConfigStore(configStore || new DefaultConfigStore({
23
24
  brokerId,
24
25
  networkId
25
- });
26
+ }));
26
27
  });
27
28
  const innerKeyStore = useConstant(()=>{
28
29
  return keyStore || new LocalStorageStore(networkId);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport React, { useEffect, useMemo } from \"react\";\nimport { OrderlyProvider } from \"./orderlyContext\";\nimport {\n ConfigStore,\n // MemoryConfigStore,\n DefaultConfigStore,\n OrderlyKeyStore,\n getWalletAdapterFunc,\n WalletAdapterOptions,\n LocalStorageStore,\n EtherAdapter,\n SimpleDI,\n Account,\n IContract,\n} from \"@orderly.network/core\";\n\nimport useConstant from \"use-constant\";\nimport {\n Chain,\n NetworkId,\n defaultMainnetChains,\n defaultTestnetChains,\n} from \"@orderly.network/types\";\n// import { usePreLoadData } from \"./usePreloadData\";\nimport { DataCenterProvider } from \"./dataProvider\";\nimport { StatusProvider } from \"./statusProvider\";\nimport { SDKError } from \"@orderly.network/types\";\n// import { useParamsCheck } from \"./useParamsCheck\";\n\ntype RequireOnlyOne<T, U extends keyof T = keyof T> = Omit<T, U> &\n {\n [K in U]-?: Required<Pick<T, K>> & Partial<Record<Exclude<U, K>, never>>;\n }[U];\n\ntype RequireAtLeastOne<T, R extends keyof T = keyof T> = Omit<T, R> &\n {\n [K in R]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<R, K>>>;\n }[R];\n\ntype filteredChains = {\n mainnet?: Chain[];\n testnet?: Chain[];\n};\n\ntype filterChainsFunc = (config: ConfigStore) => filteredChains;\nexport interface ConfigProviderProps {\n configStore?: ConfigStore;\n keyStore?: OrderlyKeyStore;\n contracts?: IContract;\n getWalletAdapter?: getWalletAdapterFunc;\n brokerId: string;\n networkId: NetworkId;\n\n chainFilter?: filteredChains | filterChainsFunc;\n}\n\nexport const OrderlyConfigProvider = (\n props: PropsWithChildren<\n RequireAtLeastOne<ConfigProviderProps, \"brokerId\" | \"configStore\">\n >\n) => {\n const [account, setAccount] = React.useState<Account | null>(null);\n const {\n configStore,\n keyStore,\n getWalletAdapter,\n brokerId,\n networkId,\n contracts,\n chainFilter,\n } = props;\n\n if (!brokerId && typeof configStore === \"undefined\") {\n console.error(\"[OrderlyConfigProvider]: brokerId is required\");\n }\n\n if (typeof configStore !== \"undefined\" && !configStore.get(\"brokerId\")) {\n // console.error(\"[OrderlyConfigProvider]: brokerId is required\");\n throw new SDKError(\n \"if configStore is provided, brokerId is required in configStore\"\n );\n }\n\n const innerConfigStore = useConstant<ConfigStore>(() => {\n return configStore || new DefaultConfigStore({ brokerId, networkId });\n });\n\n const innerKeyStore = useConstant<OrderlyKeyStore>(() => {\n return keyStore || new LocalStorageStore(networkId);\n });\n\n const innerGetWalletAdapter = useConstant<getWalletAdapterFunc>(() => {\n return (\n getWalletAdapter ||\n ((options: WalletAdapterOptions) => new EtherAdapter(options))\n );\n });\n\n // check params, if has mismatch, throw warning message to console\n // useParamsCheck({ brokerId: innerConfigStore.get(\"brokerId\") });\n\n useEffect(() => {\n let account = SimpleDI.get<Account>(Account.instanceName);\n\n if (!account) {\n account = new Account(\n innerConfigStore,\n innerKeyStore,\n innerGetWalletAdapter,\n {\n contracts,\n }\n );\n\n SimpleDI.registerByName(Account.instanceName, account);\n }\n\n setAccount(account);\n }, []);\n\n const filteredChains = useMemo(() => {\n if (typeof chainFilter === \"function\") {\n return chainFilter(innerConfigStore);\n }\n\n return chainFilter;\n\n // const { mainnet, testnet } = props.chains || {};\n\n // return {\n // mainnet: mainnet || defaultMainnetChains,\n // testnet: testnet || defaultTestnetChains,\n // };\n }, [props.chainFilter, innerConfigStore]);\n\n if (!account) {\n return null;\n }\n\n return (\n <OrderlyProvider\n value={{\n configStore: innerConfigStore,\n keyStore: innerKeyStore,\n getWalletAdapter: innerGetWalletAdapter,\n networkId: networkId,\n filteredChains: filteredChains,\n // apiBaseUrl,\n }}\n >\n <StatusProvider>\n <DataCenterProvider>{props.children}</DataCenterProvider>\n </StatusProvider>\n </OrderlyProvider>\n );\n};\n\n// const DataPreload = () => {\n// const { error, done } = usePreLoadData();\n// };\n"],"names":["React","useEffect","useMemo","OrderlyProvider","DefaultConfigStore","LocalStorageStore","EtherAdapter","SimpleDI","Account","useConstant","DataCenterProvider","StatusProvider","SDKError","OrderlyConfigProvider","props","account","setAccount","useState","configStore","keyStore","getWalletAdapter","brokerId","networkId","contracts","chainFilter","console","error","get","innerConfigStore","innerKeyStore","innerGetWalletAdapter","options","instanceName","registerByName","filteredChains","value","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AACA,OAAOA,SAASC,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAClD,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAGEC,AADA,qBAAqB;AACrBA,kBAAkB,EAIlBC,iBAAiB,EACjBC,YAAY,EACZC,QAAQ,EACRC,OAAO,QAEF,wBAAwB;AAE/B,OAAOC,iBAAiB,eAAe;AAOvC,qDAAqD;AACrD,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,QAAQ,QAAQ,yBAAyB;AA8BlD,OAAO,MAAMC,wBAAwB,CACnCC;IAIA,MAAM,CAACC,SAASC,WAAW,GAAGhB,MAAMiB,QAAQ,CAAiB;IAC7D,MAAM,EACJC,WAAW,EACXC,QAAQ,EACRC,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,WAAW,EACZ,GAAGV;IAEJ,IAAI,CAACO,YAAY,OAAOH,gBAAgB,aAAa;QACnDO,QAAQC,KAAK,CAAC;IAChB;IAEA,IAAI,OAAOR,gBAAgB,eAAe,CAACA,YAAYS,GAAG,CAAC,aAAa;QACtE,kEAAkE;QAClE,MAAM,IAAIf,SACR;IAEJ;IAEA,MAAMgB,mBAAmBnB,YAAyB;QAChD,OAAOS,eAAe,IAAId,mBAAmB;YAAEiB;YAAUC;QAAU;IACrE;IAEA,MAAMO,gBAAgBpB,YAA6B;QACjD,OAAOU,YAAY,IAAId,kBAAkBiB;IAC3C;IAEA,MAAMQ,wBAAwBrB,YAAkC;QAC9D,OACEW,oBACC,CAAA,CAACW,UAAkC,IAAIzB,aAAayB,QAAO;IAEhE;IAEA,kEAAkE;IAClE,kEAAkE;IAElE9B,UAAU;QACR,IAAIc,UAAUR,SAASoB,GAAG,CAAUnB,QAAQwB,YAAY;QAExD,IAAI,CAACjB,SAAS;YACZA,UAAU,IAAIP,QACZoB,kBACAC,eACAC,uBACA;gBACEP;YACF;YAGFhB,SAAS0B,cAAc,CAACzB,QAAQwB,YAAY,EAAEjB;QAChD;QAEAC,WAAWD;IACb,GAAG,EAAE;IAEL,MAAMmB,iBAAiBhC,QAAQ;QAC7B,IAAI,OAAOsB,gBAAgB,YAAY;YACrC,OAAOA,YAAYI;QACrB;QAEA,OAAOJ;IAEP,mDAAmD;IAEnD,WAAW;IACX,8CAA8C;IAC9C,8CAA8C;IAC9C,KAAK;IACP,GAAG;QAACV,MAAMU,WAAW;QAAEI;KAAiB;IAExC,IAAI,CAACb,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,KAACZ;QACCgC,OAAO;YACLjB,aAAaU;YACbT,UAAUU;YACVT,kBAAkBU;YAClBR,WAAWA;YACXY,gBAAgBA;QAElB;kBAEA,cAAA,KAACvB;sBACC,cAAA,KAACD;0BAAoBI,MAAMsB,QAAQ;;;;AAI3C,EAAE,CAEF,8BAA8B;CAC9B,8CAA8C;CAC9C,KAAK"}
1
+ {"version":3,"sources":["../src/configProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport React, { useEffect, useMemo } from \"react\";\nimport { OrderlyProvider } from \"./orderlyContext\";\nimport {\n ConfigStore,\n // MemoryConfigStore,\n DefaultConfigStore,\n OrderlyKeyStore,\n getWalletAdapterFunc,\n WalletAdapterOptions,\n LocalStorageStore,\n EtherAdapter,\n SimpleDI,\n Account,\n IContract,\n} from \"@orderly.network/core\";\n\nimport useConstant from \"use-constant\";\nimport {\n Chain,\n NetworkId,\n defaultMainnetChains,\n defaultTestnetChains,\n} from \"@orderly.network/types\";\n// import { usePreLoadData } from \"./usePreloadData\";\nimport { DataCenterProvider } from \"./dataProvider\";\nimport { StatusProvider } from \"./statusProvider\";\nimport { SDKError } from \"@orderly.network/types\";\nimport { ProxyConfigStore } from \"./dev/proxyConfigStore\";\n// import { useParamsCheck } from \"./useParamsCheck\";\n\ntype RequireOnlyOne<T, U extends keyof T = keyof T> = Omit<T, U> &\n {\n [K in U]-?: Required<Pick<T, K>> & Partial<Record<Exclude<U, K>, never>>;\n }[U];\n\ntype RequireAtLeastOne<T, R extends keyof T = keyof T> = Omit<T, R> &\n {\n [K in R]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<R, K>>>;\n }[R];\n\ntype filteredChains = {\n mainnet?: Chain[];\n testnet?: Chain[];\n};\n\ntype filterChainsFunc = (config: ConfigStore) => filteredChains;\n\nexport interface ConfigProviderProps {\n configStore?: ConfigStore;\n keyStore?: OrderlyKeyStore;\n contracts?: IContract;\n getWalletAdapter?: getWalletAdapterFunc;\n brokerId: string;\n networkId: NetworkId;\n\n chainFilter?: filteredChains | filterChainsFunc;\n}\n\nexport const OrderlyConfigProvider = (\n props: PropsWithChildren<\n RequireAtLeastOne<ConfigProviderProps, \"brokerId\" | \"configStore\">\n >\n) => {\n const [account, setAccount] = React.useState<Account | null>(null);\n const {\n configStore,\n keyStore,\n getWalletAdapter,\n brokerId,\n networkId,\n contracts,\n chainFilter,\n } = props;\n\n if (!brokerId && typeof configStore === \"undefined\") {\n console.error(\"[OrderlyConfigProvider]: brokerId is required\");\n }\n\n if (typeof configStore !== \"undefined\" && !configStore.get(\"brokerId\")) {\n // console.error(\"[OrderlyConfigProvider]: brokerId is required\");\n throw new SDKError(\n \"if configStore is provided, brokerId is required in configStore\"\n );\n }\n\n const innerConfigStore = useConstant<ConfigStore>(() => {\n return new ProxyConfigStore(\n configStore || new DefaultConfigStore({ brokerId, networkId })\n );\n });\n\n const innerKeyStore = useConstant<OrderlyKeyStore>(() => {\n return keyStore || new LocalStorageStore(networkId);\n });\n\n const innerGetWalletAdapter = useConstant<getWalletAdapterFunc>(() => {\n return (\n getWalletAdapter ||\n ((options: WalletAdapterOptions) => new EtherAdapter(options))\n );\n });\n\n // check params, if has mismatch, throw warning message to console\n // useParamsCheck({ brokerId: innerConfigStore.get(\"brokerId\") });\n\n useEffect(() => {\n let account = SimpleDI.get<Account>(Account.instanceName);\n\n if (!account) {\n account = new Account(\n innerConfigStore,\n innerKeyStore,\n innerGetWalletAdapter,\n {\n contracts,\n }\n );\n\n SimpleDI.registerByName(Account.instanceName, account);\n }\n\n setAccount(account);\n }, []);\n\n const filteredChains = useMemo(() => {\n if (typeof chainFilter === \"function\") {\n return chainFilter(innerConfigStore);\n }\n\n return chainFilter;\n\n // const { mainnet, testnet } = props.chains || {};\n\n // return {\n // mainnet: mainnet || defaultMainnetChains,\n // testnet: testnet || defaultTestnetChains,\n // };\n }, [props.chainFilter, innerConfigStore]);\n\n if (!account) {\n return null;\n }\n\n return (\n <OrderlyProvider\n value={{\n configStore: innerConfigStore,\n keyStore: innerKeyStore,\n getWalletAdapter: innerGetWalletAdapter,\n networkId: networkId,\n filteredChains: filteredChains,\n // apiBaseUrl,\n }}\n >\n <StatusProvider>\n <DataCenterProvider>{props.children}</DataCenterProvider>\n </StatusProvider>\n </OrderlyProvider>\n );\n};\n\n// const DataPreload = () => {\n// const { error, done } = usePreLoadData();\n// };\n"],"names":["React","useEffect","useMemo","OrderlyProvider","DefaultConfigStore","LocalStorageStore","EtherAdapter","SimpleDI","Account","useConstant","DataCenterProvider","StatusProvider","SDKError","ProxyConfigStore","OrderlyConfigProvider","props","account","setAccount","useState","configStore","keyStore","getWalletAdapter","brokerId","networkId","contracts","chainFilter","console","error","get","innerConfigStore","innerKeyStore","innerGetWalletAdapter","options","instanceName","registerByName","filteredChains","value","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AACA,OAAOA,SAASC,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAClD,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAGEC,AADA,qBAAqB;AACrBA,kBAAkB,EAIlBC,iBAAiB,EACjBC,YAAY,EACZC,QAAQ,EACRC,OAAO,QAEF,wBAAwB;AAE/B,OAAOC,iBAAiB,eAAe;AAOvC,qDAAqD;AACrD,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,gBAAgB,QAAQ,yBAAyB;AA+B1D,OAAO,MAAMC,wBAAwB,CACnCC;IAIA,MAAM,CAACC,SAASC,WAAW,GAAGjB,MAAMkB,QAAQ,CAAiB;IAC7D,MAAM,EACJC,WAAW,EACXC,QAAQ,EACRC,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,WAAW,EACZ,GAAGV;IAEJ,IAAI,CAACO,YAAY,OAAOH,gBAAgB,aAAa;QACnDO,QAAQC,KAAK,CAAC;IAChB;IAEA,IAAI,OAAOR,gBAAgB,eAAe,CAACA,YAAYS,GAAG,CAAC,aAAa;QACtE,kEAAkE;QAClE,MAAM,IAAIhB,SACR;IAEJ;IAEA,MAAMiB,mBAAmBpB,YAAyB;QAChD,OAAO,IAAII,iBACTM,eAAe,IAAIf,mBAAmB;YAAEkB;YAAUC;QAAU;IAEhE;IAEA,MAAMO,gBAAgBrB,YAA6B;QACjD,OAAOW,YAAY,IAAIf,kBAAkBkB;IAC3C;IAEA,MAAMQ,wBAAwBtB,YAAkC;QAC9D,OACEY,oBACC,CAAA,CAACW,UAAkC,IAAI1B,aAAa0B,QAAO;IAEhE;IAEA,kEAAkE;IAClE,kEAAkE;IAElE/B,UAAU;QACR,IAAIe,UAAUT,SAASqB,GAAG,CAAUpB,QAAQyB,YAAY;QAExD,IAAI,CAACjB,SAAS;YACZA,UAAU,IAAIR,QACZqB,kBACAC,eACAC,uBACA;gBACEP;YACF;YAGFjB,SAAS2B,cAAc,CAAC1B,QAAQyB,YAAY,EAAEjB;QAChD;QAEAC,WAAWD;IACb,GAAG,EAAE;IAEL,MAAMmB,iBAAiBjC,QAAQ;QAC7B,IAAI,OAAOuB,gBAAgB,YAAY;YACrC,OAAOA,YAAYI;QACrB;QAEA,OAAOJ;IAEP,mDAAmD;IAEnD,WAAW;IACX,8CAA8C;IAC9C,8CAA8C;IAC9C,KAAK;IACP,GAAG;QAACV,MAAMU,WAAW;QAAEI;KAAiB;IAExC,IAAI,CAACb,SAAS;QACZ,OAAO;IACT;IAEA,qBACE,KAACb;QACCiC,OAAO;YACLjB,aAAaU;YACbT,UAAUU;YACVT,kBAAkBU;YAClBR,WAAWA;YACXY,gBAAgBA;QAElB;kBAEA,cAAA,KAACxB;sBACC,cAAA,KAACD;0BAAoBK,MAAMsB,QAAQ;;;;AAI3C,EAAE,CAEF,8BAA8B;CAC9B,8CAA8C;CAC9C,KAAK"}
@@ -0,0 +1,15 @@
1
+ import { ConfigKey, ConfigStore } from "@orderly.network/core";
2
+ export declare class ProxyConfigStore implements ConfigStore {
3
+ private readonly _originConfigStore;
4
+ private _proxyConfigStore?;
5
+ constructor(_originConfigStore: ConfigStore);
6
+ get<T>(key: ConfigKey): T;
7
+ getOr<T>(key: ConfigKey, defaultValue: T): T;
8
+ set<T>(key: ConfigKey, value: T): void;
9
+ clear(): void;
10
+ getFromOrigin<T>(key: ConfigKey): T;
11
+ getOrFromOrigin<T>(key: ConfigKey, defaultValue: T): T;
12
+ setToOrigin<T>(key: ConfigKey, value: T): void;
13
+ clearOrigin(): void;
14
+ }
15
+ //# sourceMappingURL=proxyConfigStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyConfigStore.d.ts","sourceRoot":"","sources":["../../src/dev/proxyConfigStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG/D,qBAAa,gBAAiB,YAAW,WAAW;IAGtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAF/C,OAAO,CAAC,iBAAiB,CAAC,CAAc;gBAEX,kBAAkB,EAAE,WAAW;IAO5D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC;IAQzB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IAO5C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAItC,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC;IAInC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC;IAItD,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI9C,WAAW,IAAI,IAAI;CAGpB"}
@@ -0,0 +1,41 @@
1
+ import { windowGuard } from "@orderly.network/utils";
2
+ export class ProxyConfigStore {
3
+ _originConfigStore;
4
+ _proxyConfigStore;
5
+ constructor(_originConfigStore){
6
+ this._originConfigStore = _originConfigStore;
7
+ windowGuard(()=>{
8
+ this._proxyConfigStore = window.__ORDERLY_CONFIG_STORE__ || _originConfigStore;
9
+ });
10
+ }
11
+ get(key) {
12
+ const value = this._proxyConfigStore?.get(key);
13
+ if (typeof value === "undefined") {
14
+ return this._originConfigStore.get(key);
15
+ }
16
+ return value;
17
+ }
18
+ getOr(key, defaultValue) {
19
+ return (this._proxyConfigStore ?? this._originConfigStore).getOr(key, defaultValue);
20
+ }
21
+ set(key, value) {
22
+ (this._proxyConfigStore ?? this._originConfigStore).set(key, value);
23
+ }
24
+ clear() {
25
+ throw new Error("Method not implemented.");
26
+ }
27
+ getFromOrigin(key) {
28
+ return this._originConfigStore.get(key);
29
+ }
30
+ getOrFromOrigin(key, defaultValue) {
31
+ return this._originConfigStore.getOr(key, defaultValue);
32
+ }
33
+ setToOrigin(key, value) {
34
+ this._originConfigStore.set(key, value);
35
+ }
36
+ clearOrigin() {
37
+ this._originConfigStore.clear();
38
+ }
39
+ }
40
+
41
+ //# sourceMappingURL=proxyConfigStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dev/proxyConfigStore.ts"],"sourcesContent":["import { ConfigKey, ConfigStore } from \"@orderly.network/core\";\nimport { windowGuard } from \"@orderly.network/utils\";\n\nexport class ProxyConfigStore implements ConfigStore {\n private _proxyConfigStore?: ConfigStore;\n\n constructor(private readonly _originConfigStore: ConfigStore) {\n windowGuard(() => {\n this._proxyConfigStore =\n (window as any).__ORDERLY_CONFIG_STORE__ || _originConfigStore;\n });\n }\n\n get<T>(key: ConfigKey): T {\n const value = this._proxyConfigStore?.get(key);\n if (typeof value === \"undefined\") {\n return this._originConfigStore.get(key);\n }\n return value as T;\n }\n\n getOr<T>(key: ConfigKey, defaultValue: T): T {\n return (this._proxyConfigStore ?? this._originConfigStore).getOr(\n key,\n defaultValue\n );\n }\n\n set<T>(key: ConfigKey, value: T): void {\n (this._proxyConfigStore ?? this._originConfigStore).set(key, value);\n }\n\n clear(): void {\n throw new Error(\"Method not implemented.\");\n }\n\n getFromOrigin<T>(key: ConfigKey): T {\n return this._originConfigStore.get(key);\n }\n\n getOrFromOrigin<T>(key: ConfigKey, defaultValue: T): T {\n return this._originConfigStore.getOr(key, defaultValue);\n }\n\n setToOrigin<T>(key: ConfigKey, value: T): void {\n this._originConfigStore.set(key, value);\n }\n\n clearOrigin(): void {\n this._originConfigStore.clear();\n }\n}\n"],"names":["windowGuard","ProxyConfigStore","_proxyConfigStore","constructor","_originConfigStore","window","__ORDERLY_CONFIG_STORE__","get","key","value","getOr","defaultValue","set","clear","Error","getFromOrigin","getOrFromOrigin","setToOrigin","clearOrigin"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,WAAW,QAAQ,yBAAyB;AAErD,OAAO,MAAMC;;IACHC,kBAAgC;IAExCC,YAAY,AAAiBC,kBAA+B,CAAE;aAAjCA,qBAAAA;QAC3BJ,YAAY;YACV,IAAI,CAACE,iBAAiB,GACpB,AAACG,OAAeC,wBAAwB,IAAIF;QAChD;IACF;IAEAG,IAAOC,GAAc,EAAK;QACxB,MAAMC,QAAQ,IAAI,CAACP,iBAAiB,EAAEK,IAAIC;QAC1C,IAAI,OAAOC,UAAU,aAAa;YAChC,OAAO,IAAI,CAACL,kBAAkB,CAACG,GAAG,CAACC;QACrC;QACA,OAAOC;IACT;IAEAC,MAASF,GAAc,EAAEG,YAAe,EAAK;QAC3C,OAAO,AAAC,CAAA,IAAI,CAACT,iBAAiB,IAAI,IAAI,CAACE,kBAAkB,AAAD,EAAGM,KAAK,CAC9DF,KACAG;IAEJ;IAEAC,IAAOJ,GAAc,EAAEC,KAAQ,EAAQ;QACpC,CAAA,IAAI,CAACP,iBAAiB,IAAI,IAAI,CAACE,kBAAkB,AAAD,EAAGQ,GAAG,CAACJ,KAAKC;IAC/D;IAEAI,QAAc;QACZ,MAAM,IAAIC,MAAM;IAClB;IAEAC,cAAiBP,GAAc,EAAK;QAClC,OAAO,IAAI,CAACJ,kBAAkB,CAACG,GAAG,CAACC;IACrC;IAEAQ,gBAAmBR,GAAc,EAAEG,YAAe,EAAK;QACrD,OAAO,IAAI,CAACP,kBAAkB,CAACM,KAAK,CAACF,KAAKG;IAC5C;IAEAM,YAAeT,GAAc,EAAEC,KAAQ,EAAQ;QAC7C,IAAI,CAACL,kBAAkB,CAACQ,GAAG,CAACJ,KAAKC;IACnC;IAEAS,cAAoB;QAClB,IAAI,CAACd,kBAAkB,CAACS,KAAK;IAC/B;AACF"}
@@ -30,5 +30,5 @@ export { useWalletSubscription } from "./useWalletSubscription";
30
30
  export { useSettleSubscription } from "./useSettleSubscription";
31
31
  export { usePrivateDataObserver } from "./usePrivateDataObserver";
32
32
  export { useSymbolPriceRange } from "./useSymbolPriceRange";
33
- export { useStopOrder, type ComputedAlgoOrder, } from "./useTakeProfitAndStopLoss";
33
+ export { useTPSLOrder, type ComputedAlgoOrder, } from "./useTakeProfitAndStopLoss";
34
34
  //# sourceMappingURL=orderlyHooks.d.ts.map
@@ -25,6 +25,6 @@ export { useWalletSubscription } from "./useWalletSubscription";
25
25
  export { useSettleSubscription } from "./useSettleSubscription";
26
26
  export { usePrivateDataObserver } from "./usePrivateDataObserver";
27
27
  export { useSymbolPriceRange } from "./useSymbolPriceRange";
28
- export { useStopOrder } from "./useTakeProfitAndStopLoss";
28
+ export { useTPSLOrder } from "./useTakeProfitAndStopLoss";
29
29
 
30
30
  //# sourceMappingURL=orderlyHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream/useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n\nexport {\n useStopOrder,\n type ComputedAlgoOrder,\n} from \"./useTakeProfitAndStopLoss\";\n"],"names":["useOrderbookStream","useOrderEntry","useSymbolsInfo","useAccountInfo","useMarketsStream","useMarkets","MarketsType","useMarkPricesStream","useMarkPrice","useIndexPrice","useLeverage","useTickerStream","useFundingRate","usePositionStream","useOrderStream","useMarketTradeStream","useCollateral","useMaxQty","useMarginRatio","useChains","useChain","useWithdraw","useDeposit","useHoldingStream","useWalletSubscription","useSettleSubscription","usePrivateDataObserver","useSymbolPriceRange","useStopOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,kBAAkB,QAAQ,uBAAuB;AAM1D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,WAAW,QAAQ,eAAe;AAEvD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,oBAAoB,QAAQ,yBAAyB;AAE9D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,SAAS,QAAQ,cAAc;AAOxC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,SAASC,mBAAmB,QAAQ,wBAAwB;AAE5D,SACEC,YAAY,QAEP,6BAA6B"}
1
+ {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream/useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n\nexport {\n useTPSLOrder,\n type ComputedAlgoOrder,\n} from \"./useTakeProfitAndStopLoss\";\n"],"names":["useOrderbookStream","useOrderEntry","useSymbolsInfo","useAccountInfo","useMarketsStream","useMarkets","MarketsType","useMarkPricesStream","useMarkPrice","useIndexPrice","useLeverage","useTickerStream","useFundingRate","usePositionStream","useOrderStream","useMarketTradeStream","useCollateral","useMaxQty","useMarginRatio","useChains","useChain","useWithdraw","useDeposit","useHoldingStream","useWalletSubscription","useSettleSubscription","usePrivateDataObserver","useSymbolPriceRange","useTPSLOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,kBAAkB,QAAQ,uBAAuB;AAM1D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,WAAW,QAAQ,eAAe;AAEvD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,oBAAoB,QAAQ,yBAAyB;AAE9D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,SAAS,QAAQ,cAAc;AAOxC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,SAASC,mBAAmB,QAAQ,wBAAwB;AAE5D,SACEC,YAAY,QAEP,6BAA6B"}
@@ -30,7 +30,8 @@ export declare const useOrderStream: (params: {
30
30
  readonly refresh: import("swr/_internal").KeyedMutator<any[]>;
31
31
  readonly loadMore: () => void;
32
32
  readonly cancelAllOrders: () => Promise<[any, any]>;
33
- readonly cancelAllAlgoOrders: () => Promise<[any, any]>;
33
+ readonly cancelAllTPSLOrders: () => Promise<any[]>;
34
+ readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[]) => Promise<any[]>;
34
35
  readonly updateOrder: (orderId: string, order: OrderEntity) => Promise<any>;
35
36
  readonly cancelOrder: (orderId: number, symbol?: string) => Promise<any>;
36
37
  readonly updateAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,GAAG,EACH,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAWhC,KAAK,gBAAgB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAElD,eAAO,MAAM,cAAc,WAIjB;IACN,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,YACS;IACR;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;;;;;;;oCAwKyC,MAAM,SAAS,WAAW;oCAoD1B,MAAM,WAAW,MAAM;wCA7CnB,MAAM,SAAS,WAAW;wCAoD1B,MAAM,WAAW,MAAM;6CAazD,MAAM,mBAAmB,MAAM,KAAG,QAAQ,GAAG,CAAC;wCAmB7C,MAAM,eACF,IAAI,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;EA0C/C,CAAC"}
1
+ {"version":3,"file":"useOrderStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,GAAG,EACH,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAYhC,KAAK,gBAAgB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAElD,eAAO,MAAM,cAAc,WAIjB;IACN,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,YACS;IACR;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;;;;;;;8CAmIuC,iBAAiB,EAAE;oCAuDjB,MAAM,SAAS,WAAW;oCAoD1B,MAAM,WAAW,MAAM;wCA7CnB,MAAM,SAAS,WAAW;wCAoD1B,MAAM,WAAW,MAAM;6CAazD,MAAM,mBAAmB,MAAM,KAAG,QAAQ,GAAG,CAAC;wCAmB7C,MAAM,eACF,IAAI,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;EA2C/C,CAAC"}
@@ -110,6 +110,20 @@ export const useOrderStream = (/**
110
110
  }, [
111
111
  orders?.length
112
112
  ]);
113
+ const cancelAlgoOrdersByTypes = (types)=>{
114
+ if (!types) {
115
+ throw new SDKError("types is required");
116
+ }
117
+ if (!Array.isArray(types)) {
118
+ throw new SDKError("types should be an array");
119
+ }
120
+ // TODO: order type check
121
+ return Promise.all(types.map((type)=>{
122
+ return doCancelAllAlgoOrders(null, {
123
+ algo_type: type
124
+ });
125
+ }));
126
+ };
113
127
  /**
114
128
  * cancel all orders
115
129
  */ const cancelAllOrders = useCallback(()=>{
@@ -122,14 +136,10 @@ export const useOrderStream = (/**
122
136
  }, [
123
137
  ordersResponse.data
124
138
  ]);
125
- const cancelAllAlgoOrders = useCallback(()=>{
126
- return Promise.all([
127
- doCancelAllAlgoOrders(null, {
128
- algo_type: "TP_SL"
129
- }),
130
- doCancelAllAlgoOrders(null, {
131
- algo_type: "POSITIONAL_TP_SL"
132
- })
139
+ const cancelAllTPSLOrders = useCallback(()=>{
140
+ return cancelAlgoOrdersByTypes([
141
+ AlgoOrderRootType.POSITIONAL_TP_SL,
142
+ AlgoOrderRootType.TP_SL
133
143
  ]);
134
144
  }, [
135
145
  ordersResponse.data
@@ -230,7 +240,7 @@ export const useOrderStream = (/**
230
240
  }
231
241
  return doUpdateAlgoOrder({
232
242
  order_id: orderId,
233
- children_orders: childOrders
243
+ child_orders: childOrders
234
244
  });
235
245
  }, []);
236
246
  return [
@@ -241,7 +251,8 @@ export const useOrderStream = (/**
241
251
  refresh: ordersResponse.mutate,
242
252
  loadMore,
243
253
  cancelAllOrders,
244
- cancelAllAlgoOrders,
254
+ cancelAllTPSLOrders,
255
+ cancelAlgoOrdersByTypes,
245
256
  updateOrder,
246
257
  cancelOrder,
247
258
  updateAlgoOrder,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"sourcesContent":["import { usePrivateInfiniteQuery } from \"../../usePrivateInfiniteQuery\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport {\n OrderSide,\n OrderEntity,\n OrderStatus,\n API,\n AlgoOrderRootType,\n} from \"@orderly.network/types\";\nimport { useMarkPricesStream } from \"../useMarkPricesStream\";\nimport { useMutation } from \"../../useMutation\";\nimport version from \"../../version\";\nimport { useDataCenterContext } from \"../../dataProvider\";\nimport { generateKeyFun } from \"../../utils/swr\";\nimport { useEventEmitter } from \"../../useEventEmitter\";\nimport { SDKError } from \"@orderly.network/types\";\n\ntype CreateOrderType = \"normalOrder\" | \"algoOrder\";\n\ntype CombineOrderType = AlgoOrderRootType | \"ALL\";\n\nexport const useOrderStream = (\n /**\n * Orders query params\n */\n params: {\n symbol?: string;\n status?: OrderStatus;\n size?: number;\n side?: OrderSide;\n /**\n * Include the order type\n * @default [\"ALL\"]\n */\n includes?: CombineOrderType[];\n /**\n * Exclude the order type\n * @default []\n */\n excludes?: CombineOrderType[];\n },\n options?: {\n /**\n * Keep the state update alive\n */\n keeplive?: boolean;\n /**\n * Stop the state update when the component unmount\n */\n stopOnUnmount?: boolean;\n }\n) => {\n const {\n status,\n symbol,\n side,\n size = 100,\n includes = [\"ALL\"],\n excludes = [],\n } = params;\n\n const { data: markPrices = {} } = useMarkPricesStream();\n\n const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();\n const [\n doCancelOrder,\n { error: cancelOrderError, isMutating: cancelMutating },\n ] = useMutation(\"/v1/order\", \"DELETE\");\n\n const [doCancelAllOrders] = useMutation(\"/v1/orders\", \"DELETE\");\n\n const [\n doUpdateOrder,\n { error: updateOrderError, isMutating: updateMutating },\n ] = useMutation(\"/v1/order\", \"PUT\");\n\n const [\n doCanceAlgolOrder,\n { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [doCancelAllAlgoOrders] = useMutation(\"/v1/algo/orders\", \"DELETE\");\n\n const [\n doUpdateAlgoOrder,\n { error: updateAlgoOrderError, isMutating: updateAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n useEffect(() => {\n const formatKey = (value?: string) => (value ? `:${value}` : \"\");\n const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(\n side\n )}`;\n regesterKeyHandler?.(key, generateKeyFun({ status, symbol, side, size }));\n\n return () => {\n if (!options?.stopOnUnmount) return;\n\n unregisterKeyHandler(key);\n };\n }, [status, symbol, side, options?.keeplive]);\n\n const ordersResponse = usePrivateInfiniteQuery(\n generateKeyFun({ status, symbol, side, size }),\n {\n initialSize: 1,\n // revalidateFirstPage: false,\n // onError: (err) => {\n // console.error(\"fetch failed::::\", err);\n // },\n formatter: (data) => data,\n revalidateOnFocus: false,\n }\n );\n\n const flattenOrders = useMemo(() => {\n if (!ordersResponse.data) {\n return null;\n }\n let orders = ordersResponse.data?.map((item) => item.rows)?.flat();\n\n // return ordersResponse.data?.map((item) => item.rows)?.flat();\n\n if (includes.includes(\"ALL\") && excludes.length === 0) {\n return orders;\n }\n\n if (includes.includes(\"ALL\") && excludes.length > 0) {\n return orders?.filter((item) => !excludes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length === 0) {\n return orders?.filter((item) => includes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length > 0) {\n return orders?.filter(\n (item) =>\n includes.includes(item.algo_type) &&\n !excludes.includes(item.algo_type)\n );\n }\n\n return orders;\n }, [ordersResponse.data, includes, excludes]);\n\n // console.log(ordersResponse.data);\n\n const orders = useMemo(() => {\n if (!flattenOrders) {\n return null;\n }\n\n if (status !== OrderStatus.NEW && status !== OrderStatus.INCOMPLETE) {\n return flattenOrders;\n }\n return flattenOrders.map((item) => {\n const order = {\n ...item,\n mark_price: (markPrices as any)[item.symbol] ?? 0,\n };\n\n ///TODO: remove this when BE provides the correct data\n // console.log(\"------------->>>>>>>>\", order);\n if (\n order.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL ||\n order.algo_type === AlgoOrderRootType.TP_SL\n ) {\n order.quantity = order.child_orders[0].quantity;\n }\n ///-----------------todo end----------------\n\n return order;\n });\n }, [flattenOrders, markPrices, status]);\n\n const total = useMemo(() => {\n return orders?.length || 0;\n // return ordersResponse.data?.[0]?.meta?.total || 0;\n }, [orders?.length]);\n\n /**\n * cancel all orders\n */\n const cancelAllOrders = useCallback(() => {\n return Promise.all([\n doCancelAllOrders(null),\n doCancelAllAlgoOrders(null, { algo_type: \"STOP\" }),\n ]);\n }, [ordersResponse.data]);\n\n const cancelAllAlgoOrders = useCallback(() => {\n return Promise.all([\n doCancelAllAlgoOrders(null, { algo_type: \"TP_SL\" }),\n doCancelAllAlgoOrders(null, { algo_type: \"POSITIONAL_TP_SL\" }),\n ]);\n }, [ordersResponse.data]);\n\n const _updateOrder = useCallback(\n (orderId: string, order: OrderEntity, type: CreateOrderType) => {\n switch (type) {\n case \"algoOrder\":\n return doUpdateAlgoOrder({\n order_id: orderId,\n price: order[\"order_price\"],\n quantity: order[\"order_quantity\"],\n trigger_price: order[\"trigger_price\"],\n });\n default:\n return doUpdateOrder({ ...order, order_id: orderId });\n }\n },\n []\n );\n\n /**\n * update order\n */\n const updateOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"normalOrder\");\n }, []);\n\n /**\n * update algo order\n */\n const updateAlgoOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"algoOrder\");\n }, []);\n\n const _cancelOrder = useCallback(\n (orderId: number, type: CreateOrderType, symbol?: string) => {\n switch (type) {\n case \"algoOrder\":\n return doCanceAlgolOrder(null, {\n // @ts-ignore\n order_id: orderId,\n symbol,\n source: `SDK${version}`,\n }).then((res: any) => {\n if (res.success) {\n ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n default:\n return doCancelOrder(null, {\n order_id: orderId,\n symbol,\n source: `SDK_${version}`,\n }).then((res: any) => {\n if (res.success) {\n // return ordersResponse.mutate().then(() => {\n // return res;\n // });\n //Optimistic Updates\n // ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n }\n },\n []\n );\n /**\n * calcel order\n */\n const cancelOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"normalOrder\", symbol);\n }, []);\n\n /**\n * calcel algo order\n */\n const cancelAlgoOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"algoOrder\", symbol);\n }, []);\n\n const loadMore = () => {\n ordersResponse.setSize(ordersResponse.size + 1);\n };\n\n // const cancelTPSLOrder = useCallback((orderId:number, symbol:string)=>{\n // return\n // });\n\n const cancelTPSLChildOrder = useCallback(\n (orderId: number, rootAlgoOrderId: number): Promise<any> => {\n return doUpdateAlgoOrder({\n order_id: rootAlgoOrderId,\n child_orders: [\n {\n order_id: orderId,\n is_activated: false,\n },\n ],\n });\n },\n []\n );\n\n const updateTPSLOrder = useCallback(\n (\n /**\n * the root algo order id\n */\n orderId: number,\n childOrders: API.AlgoOrder[\"child_orders\"]\n ) => {\n if (!Array.isArray(childOrders)) {\n throw new SDKError(\"children orders is required\");\n }\n return doUpdateAlgoOrder({\n order_id: orderId,\n children_orders: childOrders,\n });\n },\n []\n );\n\n return [\n orders,\n {\n total,\n isLoading: ordersResponse.isLoading,\n refresh: ordersResponse.mutate,\n loadMore,\n cancelAllOrders,\n cancelAllAlgoOrders,\n updateOrder,\n cancelOrder,\n updateAlgoOrder,\n cancelAlgoOrder,\n cancelTPSLChildOrder,\n updateTPSLOrder,\n errors: {\n cancelOrder: cancelOrderError,\n updateOrder: updateOrderError,\n cancelAlgoOrder: cancelAlgoOrderError,\n updateAlgoOrder: updateAlgoOrderError,\n },\n submitting: {\n cancelOrder: cancelMutating,\n updateOrder: updateMutating,\n cancelAlgoOrder: cancelAlgoMutating,\n updateAlglOrder: updateAlgoMutating,\n },\n },\n ] as const;\n};\n"],"names":["usePrivateInfiniteQuery","useCallback","useEffect","useMemo","OrderStatus","AlgoOrderRootType","useMarkPricesStream","useMutation","version","useDataCenterContext","generateKeyFun","SDKError","useOrderStream","params","options","status","symbol","side","size","includes","excludes","data","markPrices","regesterKeyHandler","unregisterKeyHandler","doCancelOrder","error","cancelOrderError","isMutating","cancelMutating","doCancelAllOrders","doUpdateOrder","updateOrderError","updateMutating","doCanceAlgolOrder","cancelAlgoOrderError","cancelAlgoMutating","doCancelAllAlgoOrders","doUpdateAlgoOrder","updateAlgoOrderError","updateAlgoMutating","formatKey","value","key","stopOnUnmount","keeplive","ordersResponse","initialSize","formatter","revalidateOnFocus","flattenOrders","orders","map","item","rows","flat","length","filter","algo_type","NEW","INCOMPLETE","order","mark_price","POSITIONAL_TP_SL","TP_SL","quantity","child_orders","total","cancelAllOrders","Promise","all","cancelAllAlgoOrders","_updateOrder","orderId","type","order_id","price","trigger_price","updateOrder","updateAlgoOrder","_cancelOrder","source","then","res","success","mutate","Error","message","cancelOrder","cancelAlgoOrder","loadMore","setSize","cancelTPSLChildOrder","rootAlgoOrderId","is_activated","updateTPSLOrder","childOrders","Array","isArray","children_orders","isLoading","refresh","errors","submitting","updateAlglOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"sourcesContent":["import { usePrivateInfiniteQuery } from \"../../usePrivateInfiniteQuery\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport {\n OrderSide,\n OrderEntity,\n OrderStatus,\n API,\n AlgoOrderRootType,\n} from \"@orderly.network/types\";\nimport { useMarkPricesStream } from \"../useMarkPricesStream\";\nimport { useMutation } from \"../../useMutation\";\nimport version from \"../../version\";\nimport { useDataCenterContext } from \"../../dataProvider\";\nimport { generateKeyFun } from \"../../utils/swr\";\nimport { useEventEmitter } from \"../../useEventEmitter\";\nimport { SDKError } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\n\ntype CreateOrderType = \"normalOrder\" | \"algoOrder\";\n\ntype CombineOrderType = AlgoOrderRootType | \"ALL\";\n\nexport const useOrderStream = (\n /**\n * Orders query params\n */\n params: {\n symbol?: string;\n status?: OrderStatus;\n size?: number;\n side?: OrderSide;\n /**\n * Include the order type\n * @default [\"ALL\"]\n */\n includes?: CombineOrderType[];\n /**\n * Exclude the order type\n * @default []\n */\n excludes?: CombineOrderType[];\n },\n options?: {\n /**\n * Keep the state update alive\n */\n keeplive?: boolean;\n /**\n * Stop the state update when the component unmount\n */\n stopOnUnmount?: boolean;\n }\n) => {\n const {\n status,\n symbol,\n side,\n size = 100,\n includes = [\"ALL\"],\n excludes = [],\n } = params;\n\n const { data: markPrices = {} } = useMarkPricesStream();\n\n const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();\n const [\n doCancelOrder,\n { error: cancelOrderError, isMutating: cancelMutating },\n ] = useMutation(\"/v1/order\", \"DELETE\");\n\n const [doCancelAllOrders] = useMutation(\"/v1/orders\", \"DELETE\");\n\n const [\n doUpdateOrder,\n { error: updateOrderError, isMutating: updateMutating },\n ] = useMutation(\"/v1/order\", \"PUT\");\n\n const [\n doCanceAlgolOrder,\n { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [doCancelAllAlgoOrders] = useMutation(\"/v1/algo/orders\", \"DELETE\");\n\n const [\n doUpdateAlgoOrder,\n { error: updateAlgoOrderError, isMutating: updateAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n useEffect(() => {\n const formatKey = (value?: string) => (value ? `:${value}` : \"\");\n const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(\n side\n )}`;\n regesterKeyHandler?.(key, generateKeyFun({ status, symbol, side, size }));\n\n return () => {\n if (!options?.stopOnUnmount) return;\n\n unregisterKeyHandler(key);\n };\n }, [status, symbol, side, options?.keeplive]);\n\n const ordersResponse = usePrivateInfiniteQuery(\n generateKeyFun({ status, symbol, side, size }),\n {\n initialSize: 1,\n // revalidateFirstPage: false,\n // onError: (err) => {\n // console.error(\"fetch failed::::\", err);\n // },\n formatter: (data) => data,\n revalidateOnFocus: false,\n }\n );\n\n const flattenOrders = useMemo(() => {\n if (!ordersResponse.data) {\n return null;\n }\n let orders = ordersResponse.data?.map((item) => item.rows)?.flat();\n\n // return ordersResponse.data?.map((item) => item.rows)?.flat();\n\n if (includes.includes(\"ALL\") && excludes.length === 0) {\n return orders;\n }\n\n if (includes.includes(\"ALL\") && excludes.length > 0) {\n return orders?.filter((item) => !excludes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length === 0) {\n return orders?.filter((item) => includes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length > 0) {\n return orders?.filter(\n (item) =>\n includes.includes(item.algo_type) &&\n !excludes.includes(item.algo_type)\n );\n }\n\n return orders;\n }, [ordersResponse.data, includes, excludes]);\n\n // console.log(ordersResponse.data);\n\n const orders = useMemo(() => {\n if (!flattenOrders) {\n return null;\n }\n\n if (status !== OrderStatus.NEW && status !== OrderStatus.INCOMPLETE) {\n return flattenOrders;\n }\n return flattenOrders.map((item) => {\n const order = {\n ...item,\n mark_price: (markPrices as any)[item.symbol] ?? 0,\n };\n\n ///TODO: remove this when BE provides the correct data\n // console.log(\"------------->>>>>>>>\", order);\n if (\n order.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL ||\n order.algo_type === AlgoOrderRootType.TP_SL\n ) {\n order.quantity = order.child_orders[0].quantity;\n }\n ///-----------------todo end----------------\n\n return order;\n });\n }, [flattenOrders, markPrices, status]);\n\n const total = useMemo(() => {\n return orders?.length || 0;\n // return ordersResponse.data?.[0]?.meta?.total || 0;\n }, [orders?.length]);\n\n const cancelAlgoOrdersByTypes = (types: AlgoOrderRootType[]) => {\n if (!types) {\n throw new SDKError(\"types is required\");\n }\n\n if (!Array.isArray(types)) {\n throw new SDKError(\"types should be an array\");\n }\n\n // TODO: order type check\n\n return Promise.all(\n types.map((type) => {\n return doCancelAllAlgoOrders(null, { algo_type: type });\n })\n );\n };\n\n /**\n * cancel all orders\n */\n const cancelAllOrders = useCallback(() => {\n return Promise.all([\n doCancelAllOrders(null),\n doCancelAllAlgoOrders(null, { algo_type: \"STOP\" }),\n ]);\n }, [ordersResponse.data]);\n\n const cancelAllTPSLOrders = useCallback(() => {\n return cancelAlgoOrdersByTypes([\n AlgoOrderRootType.POSITIONAL_TP_SL,\n AlgoOrderRootType.TP_SL,\n ]);\n }, [ordersResponse.data]);\n\n const _updateOrder = useCallback(\n (orderId: string, order: OrderEntity, type: CreateOrderType) => {\n switch (type) {\n case \"algoOrder\":\n return doUpdateAlgoOrder({\n order_id: orderId,\n price: order[\"order_price\"],\n quantity: order[\"order_quantity\"],\n trigger_price: order[\"trigger_price\"],\n });\n default:\n return doUpdateOrder({ ...order, order_id: orderId });\n }\n },\n []\n );\n\n /**\n * update order\n */\n const updateOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"normalOrder\");\n }, []);\n\n /**\n * update algo order\n */\n const updateAlgoOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"algoOrder\");\n }, []);\n\n const _cancelOrder = useCallback(\n (orderId: number, type: CreateOrderType, symbol?: string) => {\n switch (type) {\n case \"algoOrder\":\n return doCanceAlgolOrder(null, {\n // @ts-ignore\n order_id: orderId,\n symbol,\n source: `SDK${version}`,\n }).then((res: any) => {\n if (res.success) {\n ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n default:\n return doCancelOrder(null, {\n order_id: orderId,\n symbol,\n source: `SDK_${version}`,\n }).then((res: any) => {\n if (res.success) {\n // return ordersResponse.mutate().then(() => {\n // return res;\n // });\n //Optimistic Updates\n // ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n }\n },\n []\n );\n /**\n * calcel order\n */\n const cancelOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"normalOrder\", symbol);\n }, []);\n\n /**\n * calcel algo order\n */\n const cancelAlgoOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"algoOrder\", symbol);\n }, []);\n\n const loadMore = () => {\n ordersResponse.setSize(ordersResponse.size + 1);\n };\n\n // const cancelTPSLOrder = useCallback((orderId:number, symbol:string)=>{\n // return\n // });\n\n const cancelTPSLChildOrder = useCallback(\n (orderId: number, rootAlgoOrderId: number): Promise<any> => {\n return doUpdateAlgoOrder({\n order_id: rootAlgoOrderId,\n child_orders: [\n {\n order_id: orderId,\n is_activated: false,\n },\n ],\n });\n },\n []\n );\n\n const updateTPSLOrder = useCallback(\n (\n /**\n * the root algo order id\n */\n orderId: number,\n childOrders: API.AlgoOrder[\"child_orders\"]\n ) => {\n if (!Array.isArray(childOrders)) {\n throw new SDKError(\"children orders is required\");\n }\n return doUpdateAlgoOrder({\n order_id: orderId,\n child_orders: childOrders,\n });\n },\n []\n );\n\n return [\n orders,\n {\n total,\n isLoading: ordersResponse.isLoading,\n refresh: ordersResponse.mutate,\n loadMore,\n cancelAllOrders,\n cancelAllTPSLOrders,\n cancelAlgoOrdersByTypes,\n updateOrder,\n cancelOrder,\n updateAlgoOrder,\n cancelAlgoOrder,\n cancelTPSLChildOrder,\n updateTPSLOrder,\n errors: {\n cancelOrder: cancelOrderError,\n updateOrder: updateOrderError,\n cancelAlgoOrder: cancelAlgoOrderError,\n updateAlgoOrder: updateAlgoOrderError,\n },\n submitting: {\n cancelOrder: cancelMutating,\n updateOrder: updateMutating,\n cancelAlgoOrder: cancelAlgoMutating,\n updateAlglOrder: updateAlgoMutating,\n },\n },\n ] as const;\n};\n"],"names":["usePrivateInfiniteQuery","useCallback","useEffect","useMemo","OrderStatus","AlgoOrderRootType","useMarkPricesStream","useMutation","version","useDataCenterContext","generateKeyFun","SDKError","useOrderStream","params","options","status","symbol","side","size","includes","excludes","data","markPrices","regesterKeyHandler","unregisterKeyHandler","doCancelOrder","error","cancelOrderError","isMutating","cancelMutating","doCancelAllOrders","doUpdateOrder","updateOrderError","updateMutating","doCanceAlgolOrder","cancelAlgoOrderError","cancelAlgoMutating","doCancelAllAlgoOrders","doUpdateAlgoOrder","updateAlgoOrderError","updateAlgoMutating","formatKey","value","key","stopOnUnmount","keeplive","ordersResponse","initialSize","formatter","revalidateOnFocus","flattenOrders","orders","map","item","rows","flat","length","filter","algo_type","NEW","INCOMPLETE","order","mark_price","POSITIONAL_TP_SL","TP_SL","quantity","child_orders","total","cancelAlgoOrdersByTypes","types","Array","isArray","Promise","all","type","cancelAllOrders","cancelAllTPSLOrders","_updateOrder","orderId","order_id","price","trigger_price","updateOrder","updateAlgoOrder","_cancelOrder","source","then","res","success","mutate","Error","message","cancelOrder","cancelAlgoOrder","loadMore","setSize","cancelTPSLChildOrder","rootAlgoOrderId","is_activated","updateTPSLOrder","childOrders","isLoading","refresh","errors","submitting","updateAlglOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { API, AlgoOrderEntity } from "@orderly.network/types";
2
- export declare const useStopOrder: (position: Partial<API.PositionTPSLExt> & Pick<API.PositionTPSLExt, "symbol" | "average_open_price" | "position_qty">, options?: {
1
+ import { API } from "@orderly.network/types";
2
+ export declare const useTPSLOrder: (position: Partial<API.PositionTPSLExt> & Pick<API.PositionTPSLExt, "symbol" | "average_open_price" | "position_qty">, options?: {
3
3
  /**
4
4
  * You can set the default value for the take profit and stop loss order,
5
5
  * it is usually used when editing order
@@ -23,10 +23,8 @@ export declare const useStopOrder: (position: Partial<API.PositionTPSLExt> & Pic
23
23
  sl_offset_percentage: number;
24
24
  }>, "type" | "side" | "order_type" | "trigger_price">>>) => void;
25
25
  submit: () => Promise<void>;
26
- create: () => Promise<void>;
27
- update: (orderId: number) => Promise<any>;
28
26
  errors: import("./useTPSL").ValidateError | null;
29
- validate: () => Promise<AlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL | import("@orderly.network/types").AlgoOrderRootType.POSITIONAL_TP_SL>>;
27
+ validate: () => Promise<import("@orderly.network/types").AlgoOrderEntity<import("@orderly.network/types").AlgoOrderRootType.TP_SL | import("@orderly.network/types").AlgoOrderRootType.POSITIONAL_TP_SL>>;
30
28
  }];
31
29
  export type { ComputedAlgoOrder } from "./useTPSL";
32
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAY,MAAM,wBAAwB,CAAC;AAIxE,eAAO,MAAM,YAAY,aAIb,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;;;;;;;;;;;;;;;;;;;;;;EAuBF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,wBAAwB,CAAC;AAGvD,eAAO,MAAM,YAAY,aAIb,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;;;;;;;;;;;;;;;;;;;;EAuBF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { SDKError } from "@orderly.network/types";
2
2
  import { useTaskProfitAndStopLossInternal } from "./useTPSL";
3
- export const useStopOrder = (/**
3
+ export const useTPSLOrder = (/**
4
4
  * Position that needs to set take profit and stop loss
5
5
  */ position, options)=>{
6
6
  if (!position) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/index.ts"],"sourcesContent":["import { API, AlgoOrderEntity, SDKError } from \"@orderly.network/types\";\nimport { useTaskProfitAndStopLossInternal } from \"./useTPSL\";\nimport { useMarkPrice } from \"../useMarkPrice\";\n\nexport const useStopOrder = (\n /**\n * Position that needs to set take profit and stop loss\n */\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n /**\n * You can set the default value for the take profit and stop loss order,\n * it is usually used when editing order\n */\n defaultOrder?: API.AlgoOrder;\n }\n): ReturnType<typeof useTaskProfitAndStopLossInternal> => {\n if (!position) {\n throw new SDKError(\"Position is required\");\n }\n\n if (!position.symbol) {\n throw new SDKError(\"Symbol is required\");\n }\n\n if (typeof position.average_open_price === \"undefined\") {\n throw new SDKError(\"Average open price is required\");\n }\n\n if (typeof position.position_qty === \"undefined\") {\n throw new SDKError(\"Position quantity is required\");\n }\n\n // const { data: markPrice } = useMarkPrice(position.symbol);\n\n const result = useTaskProfitAndStopLossInternal(position, options);\n\n return result;\n};\n\nexport type { ComputedAlgoOrder } from \"./useTPSL\";\n"],"names":["SDKError","useTaskProfitAndStopLossInternal","useStopOrder","position","options","symbol","average_open_price","position_qty","result"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAA+BA,QAAQ,QAAQ,yBAAyB;AACxE,SAASC,gCAAgC,QAAQ,YAAY;AAG7D,OAAO,MAAMC,eAAe,CAC1B;;GAEC,GACDC,UAEAC;IAQA,IAAI,CAACD,UAAU;QACb,MAAM,IAAIH,SAAS;IACrB;IAEA,IAAI,CAACG,SAASE,MAAM,EAAE;QACpB,MAAM,IAAIL,SAAS;IACrB;IAEA,IAAI,OAAOG,SAASG,kBAAkB,KAAK,aAAa;QACtD,MAAM,IAAIN,SAAS;IACrB;IAEA,IAAI,OAAOG,SAASI,YAAY,KAAK,aAAa;QAChD,MAAM,IAAIP,SAAS;IACrB;IAEA,6DAA6D;IAE7D,MAAMQ,SAASP,iCAAiCE,UAAUC;IAE1D,OAAOI;AACT,EAAE"}
1
+ {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/index.ts"],"sourcesContent":["import { API, SDKError } from \"@orderly.network/types\";\nimport { useTaskProfitAndStopLossInternal } from \"./useTPSL\";\n\nexport const useTPSLOrder = (\n /**\n * Position that needs to set take profit and stop loss\n */\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n /**\n * You can set the default value for the take profit and stop loss order,\n * it is usually used when editing order\n */\n defaultOrder?: API.AlgoOrder;\n }\n): ReturnType<typeof useTaskProfitAndStopLossInternal> => {\n if (!position) {\n throw new SDKError(\"Position is required\");\n }\n\n if (!position.symbol) {\n throw new SDKError(\"Symbol is required\");\n }\n\n if (typeof position.average_open_price === \"undefined\") {\n throw new SDKError(\"Average open price is required\");\n }\n\n if (typeof position.position_qty === \"undefined\") {\n throw new SDKError(\"Position quantity is required\");\n }\n\n // const { data: markPrice } = useMarkPrice(position.symbol);\n\n const result = useTaskProfitAndStopLossInternal(position, options);\n\n return result;\n};\n\nexport type { ComputedAlgoOrder } from \"./useTPSL\";\n"],"names":["SDKError","useTaskProfitAndStopLossInternal","useTPSLOrder","position","options","symbol","average_open_price","position_qty","result"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAAcA,QAAQ,QAAQ,yBAAyB;AACvD,SAASC,gCAAgC,QAAQ,YAAY;AAE7D,OAAO,MAAMC,eAAe,CAC1B;;GAEC,GACDC,UAEAC;IAQA,IAAI,CAACD,UAAU;QACb,MAAM,IAAIH,SAAS;IACrB;IAEA,IAAI,CAACG,SAASE,MAAM,EAAE;QACpB,MAAM,IAAIL,SAAS;IACrB;IAEA,IAAI,OAAOG,SAASG,kBAAkB,KAAK,aAAa;QACtD,MAAM,IAAIN,SAAS;IACrB;IAEA,IAAI,OAAOG,SAASI,YAAY,KAAK,aAAa;QAChD,MAAM,IAAIP,SAAS;IACrB;IAEA,6DAA6D;IAE7D,MAAMQ,SAASP,iCAAiCE,UAAUC;IAE1D,OAAOI;AACT,EAAE"}
@@ -45,15 +45,13 @@ export declare const useTaskProfitAndStopLossInternal: (position: Partial<API.Po
45
45
  setValue: (key: string, value: number | string) => void;
46
46
  setValues: (values: Partial<ComputedAlgoOrder>) => void;
47
47
  /**
48
- * Submit the take profit and stop loss order
48
+ * Submit the TP/SL order
49
49
  */
50
50
  submit: () => Promise<void>;
51
+ errors: ValidateError | null;
51
52
  /**
52
- * Create the take profit and stop loss order, auto-detect the order type
53
+ *
53
54
  */
54
- create: () => Promise<void>;
55
- update: (orderId: number) => Promise<any>;
56
- errors: ValidateError | null;
57
55
  validate: () => Promise<AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL>>;
58
56
  }];
59
57
  //# sourceMappingURL=useTPSL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTPSL.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,GAAG,EACH,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,eAAe,CACb,iBAAiB,CAAC,KAAK,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CACF,CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,aACjC,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;IAhCG;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;IAE5B;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;;IAwB9B;;OAEG;oBACa,MAAM,SAAS,MAAM,GAAG,MAAM,KAAK,IAAI;wBACnC,QAAQ,iBAAiB,CAAC,KAAK,IAAI;IAEvD;;OAEG;YACK,MAAM,QAAQ,IAAI,CAAC;IAC3B;;OAEG;YACK,MAAM,QAAQ,IAAI,CAAC;sBACT,MAAM,KAAK,QAAQ,GAAG,CAAC;YACjC,aAAa,GAAG,IAAI;cAClB,MAAM,QACd,gBACE,kBAAkB,gBAAgB,GAAG,kBAAkB,KAAK,CAC7D,CACF;EAgSJ,CAAC"}
1
+ {"version":3,"file":"useTPSL.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,GAAG,EACH,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,eAAe,CACb,iBAAiB,CAAC,KAAK,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CACF,CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,aACjC,QAAQ,IAAI,eAAe,CAAC,GACpC,KAAK,IAAI,eAAe,EAAE,QAAQ,GAAG,oBAAoB,GAAG,cAAc,CAAC,YACnE;IACR,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC;CAC9B;IAhCG;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;IAE5B;;OAEG;YACK,MAAM;eACH,MAAM;0BACK,MAAM;;IA2B9B;;OAEG;oBACa,MAAM,SAAS,MAAM,GAAG,MAAM,KAAK,IAAI;wBACnC,QAAQ,iBAAiB,CAAC,KAAK,IAAI;IAEvD;;OAEG;YACK,MAAM,QAAQ,IAAI,CAAC;YAMnB,aAAa,GAAG,IAAI;IAC5B;;OAEG;cACO,MAAM,QACd,gBACE,kBAAkB,gBAAgB,GAAG,kBAAkB,KAAK,CAC7D,CACF;EAmSJ,CAAC"}
@@ -39,7 +39,7 @@ import { omit } from "ramda";
39
39
  }
40
40
  }, []);
41
41
  const _setOrderValue = (key, value, options)=>{
42
- ;
42
+ // console.log("[updateOrder:]", key, value, order.quantity);
43
43
  setOrder((prev)=>{
44
44
  const side = position.position_qty > 0 ? OrderSide.BUY : OrderSide.SELL;
45
45
  if (key === "sl_pnl") {
@@ -54,7 +54,6 @@ import { omit } from "ramda";
54
54
  }, {
55
55
  symbol: symbolInfo
56
56
  });
57
- ;
58
57
  return {
59
58
  ...prev,
60
59
  ...newValue,
@@ -122,11 +121,9 @@ import { omit } from "ramda";
122
121
  });
123
122
  });
124
123
  };
125
- useEffect(()=>{
126
- // setError(validate());
127
- }, [
128
- order
129
- ]);
124
+ // useEffect(() => {
125
+ // // setError(validate());
126
+ // }, [order]);
130
127
  const compare = ()=>{
131
128
  const quantityNum = Number(order.quantity);
132
129
  if (isNaN(quantityNum)) return false;
@@ -166,6 +163,8 @@ import { omit } from "ramda";
166
163
  if (orderBody.child_orders.length === 0) {
167
164
  throw new SDKError("No child orders");
168
165
  }
166
+ // filter the order that is not activated
167
+ orderBody.child_orders = orderBody.child_orders.filter((order)=>order.is_activated);
169
168
  return doCreateOrder(orderBody);
170
169
  };
171
170
  const deleteOrder = (orderId, symbol)=>{
@@ -181,7 +180,7 @@ import { omit } from "ramda";
181
180
  if (updatedOrderEntity.child_orders.length === 0) {
182
181
  return Promise.resolve("Not any order needs to update");
183
182
  }
184
- const needDelete = orderEntity.child_orders.filter((order)=>typeof order.is_activated === "boolean" && !order.is_activated).length === 2;
183
+ const needDelete = orderEntity.child_orders.filter((order)=>typeof order.is_activated === "boolean" && !order.is_activated).length === orderEntity.child_orders.length;
185
184
  if (needDelete) {
186
185
  return deleteOrder(orderId, order.symbol);
187
186
  }
@@ -196,8 +195,8 @@ import { omit } from "ramda";
196
195
  ], order),
197
196
  {
198
197
  submit,
199
- create: submit,
200
- update: updateOrder,
198
+ // create: submit,
199
+ // update: updateOrder,/
201
200
  setValue: setOrderValue,
202
201
  setValues,
203
202
  // createPositionTPSL: submit,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport {\n API,\n AlgoOrderEntity,\n OrderSide,\n SDKError,\n} from \"@orderly.network/types\";\nimport { UpdateOrderKey, calculateHelper } from \"./utils\";\nimport { useMutation } from \"../../useMutation\";\nimport { OrderFactory } from \"../../services/orderCreator/factory\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { TPSLPositionOrderCreator } from \"../../services/orderCreator/tpslPositionOrderCreator\";\nimport { findTPSLFromOrder } from \"../usePositionStream/utils\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPrice } from \"../useMarkPrice\";\nimport { omit } from \"ramda\";\n\nexport type ComputedAlgoOrder = Partial<\n AlgoOrderEntity<\n AlgoOrderRootType.TP_SL & {\n /**\n * Computed take profit\n */\n tp_pnl: number;\n tp_offset: number;\n tp_offset_percentage: number;\n\n /**\n * Computed stop loss\n */\n sl_pnl: number;\n sl_offset: number;\n sl_offset_percentage: number;\n }\n >\n>;\n\nexport type ValidateError = {\n [P in keyof ComputedAlgoOrder]?: {\n type: string;\n message: string;\n };\n};\n\n/**\n * @hidden\n */\nexport const useTaskProfitAndStopLossInternal = (\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n defaultOrder?: API.AlgoOrder;\n }\n): [\n ComputedAlgoOrder,\n {\n /**\n * Update the take profit and stop loss order, this will merge the new data with the old one\n */\n setValue: (key: string, value: number | string) => void;\n setValues: (values: Partial<ComputedAlgoOrder>) => void;\n // getOrderEntity: () => AlgoOrderEntity<AlgoOrderRootType.TP_SL|AlgoOrderRootType.POSITIONAL_TP_SL>;\n /**\n * Submit the take profit and stop loss order\n */\n submit: () => Promise<void>;\n /**\n * Create the take profit and stop loss order, auto-detect the order type\n */\n create: () => Promise<void>;\n update: (orderId: number) => Promise<any>;\n errors: ValidateError | null;\n validate: () => Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n >;\n }\n] => {\n const [order, setOrder] = useState<\n ComputedAlgoOrder & {\n ignoreValidate?: boolean;\n }\n >({\n algo_order_id: options?.defaultOrder?.algo_order_id,\n symbol: position.symbol as string,\n side: Number(position.position_qty) > 0 ? OrderSide.BUY : OrderSide.SELL,\n quantity:\n options?.defaultOrder?.quantity || Math.abs(position.position_qty),\n algo_type: options?.defaultOrder?.algo_type as AlgoOrderRootType,\n });\n\n const symbolInfo = useSymbolsInfo()[position.symbol!]();\n const { data: markPrice } = useMarkPrice(order.symbol!);\n\n const [doCreateOrder] = useMutation(\"/v1/algo/order\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [errors, setErrors] = useState<ValidateError | null>(null);\n\n useEffect(() => {\n if (!options?.defaultOrder) return;\n const trigger_prices = findTPSLFromOrder(options.defaultOrder!);\n if (trigger_prices.tp_trigger_price) {\n setOrderValue(\"tp_trigger_price\", trigger_prices.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n if (trigger_prices.sl_trigger_price) {\n setOrderValue(\"sl_trigger_price\", trigger_prices.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n }, []);\n\n const _setOrderValue = (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n console.log(\"[updateOrder:]\", key, value, order.quantity);\n\n setOrder((prev) => {\n const side = position.position_qty! > 0 ? OrderSide.BUY : OrderSide.SELL;\n\n if (key === \"sl_pnl\") {\n value = value ? `-${value}` : \"\";\n }\n\n const newValue = calculateHelper(\n key,\n {\n key,\n value,\n entryPrice: position.average_open_price!,\n qty:\n side === OrderSide.BUY\n ? Number(prev.quantity)!\n : -Number(prev.quantity)!,\n orderSide: side,\n },\n {\n symbol: symbolInfo,\n }\n );\n\n console.log(\"newValue::\", newValue);\n\n return {\n ...prev,\n ...newValue,\n ignoreValidate: options?.ignoreValidate,\n };\n });\n };\n\n const setOrderValue = async (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n if (key === \"quantity\") {\n setOrder((prev) => ({ ...prev, quantity: value }));\n\n if (typeof order.sl_trigger_price !== \"undefined\") {\n _setOrderValue(\"sl_trigger_price\", order.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n if (typeof order.tp_trigger_price !== \"undefined\") {\n _setOrderValue(\"tp_trigger_price\", order.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n return;\n }\n\n _setOrderValue(key, value, options);\n };\n\n /**\n * calculate value config\n */\n const valueConfig = {\n symbol: symbolInfo,\n maxQty: Math.abs(position.position_qty),\n markPrice,\n };\n\n // auto validate when order changed\n useEffect(() => {\n requestAnimationFrame(() => {\n if (order.ignoreValidate) return;\n const orderCreator = getOrderCreator();\n orderCreator\n .validate(order as AlgoOrderEntity, valueConfig)\n .then((errors) => {\n setErrors(errors);\n });\n });\n }, [order, valueConfig.markPrice, order.quantity]);\n\n const setValues = (values: Partial<ComputedAlgoOrder>) => {\n const keys = Object.keys(values);\n keys.forEach((key) => {\n setOrderValue(\n key as UpdateOrderKey,\n values[key as keyof ComputedAlgoOrder] as number | string\n );\n });\n };\n\n const validate = (): Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n > => {\n const orderCreator = getOrderCreator();\n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n .then((errors) => {\n console.log(\"errors::\", errors);\n\n if (errors) {\n setErrors(errors);\n return reject(errors);\n }\n\n resolve(\n orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n );\n });\n });\n };\n\n useEffect(() => {\n // setError(validate());\n }, [order]);\n\n const compare = (): boolean => {\n const quantityNum = Number(order.quantity);\n if (isNaN(quantityNum)) return false;\n return quantityNum === Math.abs(Number(position.position_qty));\n };\n\n const getOrderCreator = () => {\n // if the order is existed, and the order type is POSITIONAL_TP_SL, always return POSITIONAL_TP_SL\n // else use qty to determine the order type\n if (options?.defaultOrder?.algo_type === AlgoOrderRootType.TP_SL) {\n return OrderFactory.create(AlgoOrderRootType.TP_SL);\n }\n return OrderFactory.create(\n compare() ? AlgoOrderRootType.POSITIONAL_TP_SL : AlgoOrderRootType.TP_SL\n );\n };\n\n const submit = async () => {\n const defaultOrder = options?.defaultOrder;\n const orderId = defaultOrder?.algo_order_id;\n const algoType = defaultOrder?.algo_type;\n\n // if algo_order_id is not existed, create new order\n if (!orderId) {\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = POSITION_TP_SL\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n // if order.qty = position.qty, update order\n if (compare()) {\n return updateOrder(orderId!);\n }\n // if order.qty != position.qty, create new tp/sl order\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = TP_SL, delete order and create new order\n\n return updateOrder(orderId!);\n };\n\n const createOrder = () => {\n const orderCreator = getOrderCreator();\n\n const orderBody = orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n );\n\n if (orderBody.child_orders.length === 0) {\n throw new SDKError(\"No child orders\");\n }\n\n return doCreateOrder(orderBody);\n };\n\n const deleteOrder = (orderId: number, symbol: string): Promise<any> => {\n return doDeleteOrder(null, {\n order_id: orderId,\n symbol,\n });\n };\n\n const updateOrder = (orderId: number): Promise<any> => {\n const orderCreator = getOrderCreator() as TPSLPositionOrderCreator;\n\n const [updatedOrderEntity, orderEntity] = orderCreator.crateUpdateOrder(\n // @ts-ignore\n order,\n options?.defaultOrder,\n valueConfig\n );\n\n if (updatedOrderEntity.child_orders.length === 0) {\n return Promise.resolve(\"Not any order needs to update\");\n }\n\n const needDelete =\n orderEntity.child_orders.filter(\n (order) =>\n typeof order.is_activated === \"boolean\" && !order.is_activated\n ).length === 2;\n\n if (needDelete) {\n return deleteOrder(orderId, order.symbol!);\n }\n\n return doUpdateOrder({\n order_id: orderId,\n ...updatedOrderEntity,\n });\n };\n\n return [\n omit([\"ignoreValidate\"], order) as ComputedAlgoOrder,\n {\n submit,\n\n create: submit,\n\n update: updateOrder,\n setValue: setOrderValue,\n setValues,\n // createPositionTPSL: submit,\n // createTPSL: submit,\n validate,\n errors,\n },\n ];\n};\n"],"names":["useEffect","useState","OrderSide","SDKError","calculateHelper","useMutation","OrderFactory","AlgoOrderRootType","findTPSLFromOrder","useSymbolsInfo","useMarkPrice","omit","useTaskProfitAndStopLossInternal","position","options","order","setOrder","algo_order_id","defaultOrder","symbol","side","Number","position_qty","BUY","SELL","quantity","Math","abs","algo_type","symbolInfo","data","markPrice","doCreateOrder","doUpdateOrder","doDeleteOrder","errors","setErrors","trigger_prices","tp_trigger_price","setOrderValue","ignoreValidate","sl_trigger_price","_setOrderValue","key","value","prev","newValue","entryPrice","average_open_price","qty","orderSide","valueConfig","maxQty","requestAnimationFrame","orderCreator","getOrderCreator","validate","then","setValues","values","keys","Object","forEach","Promise","resolve","reject","create","compare","quantityNum","isNaN","TP_SL","POSITIONAL_TP_SL","submit","orderId","algoType","createOrder","updateOrder","orderBody","child_orders","length","deleteOrder","order_id","updatedOrderEntity","orderEntity","crateUpdateOrder","needDelete","filter","is_activated","update","setValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/useTPSL.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport {\n API,\n AlgoOrderEntity,\n OrderSide,\n SDKError,\n} from \"@orderly.network/types\";\nimport { UpdateOrderKey, calculateHelper } from \"./utils\";\nimport { useMutation } from \"../../useMutation\";\nimport { OrderFactory } from \"../../services/orderCreator/factory\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { TPSLPositionOrderCreator } from \"../../services/orderCreator/tpslPositionOrderCreator\";\nimport { findTPSLFromOrder } from \"../usePositionStream/utils\";\nimport { useSymbolsInfo } from \"../useSymbolsInfo\";\nimport { useMarkPrice } from \"../useMarkPrice\";\nimport { omit } from \"ramda\";\n\nexport type ComputedAlgoOrder = Partial<\n AlgoOrderEntity<\n AlgoOrderRootType.TP_SL & {\n /**\n * Computed take profit\n */\n tp_pnl: number;\n tp_offset: number;\n tp_offset_percentage: number;\n\n /**\n * Computed stop loss\n */\n sl_pnl: number;\n sl_offset: number;\n sl_offset_percentage: number;\n }\n >\n>;\n\nexport type ValidateError = {\n [P in keyof ComputedAlgoOrder]?: {\n type: string;\n message: string;\n };\n};\n\n/**\n * @hidden\n */\nexport const useTaskProfitAndStopLossInternal = (\n position: Partial<API.PositionTPSLExt> &\n Pick<API.PositionTPSLExt, \"symbol\" | \"average_open_price\" | \"position_qty\">,\n options?: {\n defaultOrder?: API.AlgoOrder;\n }\n): [\n /**\n * return the computed & formatted order\n */\n ComputedAlgoOrder,\n {\n /**\n * Update the take profit and stop loss order, this will merge the new data with the old one\n */\n setValue: (key: string, value: number | string) => void;\n setValues: (values: Partial<ComputedAlgoOrder>) => void;\n // getOrderEntity: () => AlgoOrderEntity<AlgoOrderRootType.TP_SL|AlgoOrderRootType.POSITIONAL_TP_SL>;\n /**\n * Submit the TP/SL order\n */\n submit: () => Promise<void>;\n // /**\n // * Create the take profit and stop loss order, auto-detect the order type\n // */\n // create: () => Promise<void>;\n // update: (orderId: number) => Promise<any>;\n errors: ValidateError | null;\n /**\n *\n */\n validate: () => Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n >;\n }\n] => {\n const [order, setOrder] = useState<\n ComputedAlgoOrder & {\n ignoreValidate?: boolean;\n }\n >({\n algo_order_id: options?.defaultOrder?.algo_order_id,\n symbol: position.symbol as string,\n side: Number(position.position_qty) > 0 ? OrderSide.BUY : OrderSide.SELL,\n quantity:\n options?.defaultOrder?.quantity || Math.abs(position.position_qty),\n algo_type: options?.defaultOrder?.algo_type as AlgoOrderRootType,\n });\n\n const symbolInfo = useSymbolsInfo()[position.symbol!]();\n const { data: markPrice } = useMarkPrice(order.symbol!);\n\n const [doCreateOrder] = useMutation(\"/v1/algo/order\");\n const [doUpdateOrder] = useMutation(\"/v1/algo/order\", \"PUT\");\n const [doDeleteOrder] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [errors, setErrors] = useState<ValidateError | null>(null);\n\n useEffect(() => {\n if (!options?.defaultOrder) return;\n const trigger_prices = findTPSLFromOrder(options.defaultOrder!);\n if (trigger_prices.tp_trigger_price) {\n setOrderValue(\"tp_trigger_price\", trigger_prices.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n if (trigger_prices.sl_trigger_price) {\n setOrderValue(\"sl_trigger_price\", trigger_prices.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n }, []);\n\n const _setOrderValue = (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n // console.log(\"[updateOrder:]\", key, value, order.quantity);\n\n setOrder((prev) => {\n const side = position.position_qty! > 0 ? OrderSide.BUY : OrderSide.SELL;\n\n if (key === \"sl_pnl\") {\n value = value ? `-${value}` : \"\";\n }\n\n const newValue = calculateHelper(\n key,\n {\n key,\n value,\n entryPrice: position.average_open_price!,\n qty:\n side === OrderSide.BUY\n ? Number(prev.quantity)!\n : -Number(prev.quantity)!,\n orderSide: side,\n },\n {\n symbol: symbolInfo,\n }\n );\n\n return {\n ...prev,\n ...newValue,\n ignoreValidate: options?.ignoreValidate,\n };\n });\n };\n\n const setOrderValue = async (\n key: string,\n value: number | string,\n options?: {\n ignoreValidate?: boolean;\n }\n ) => {\n if (key === \"quantity\") {\n setOrder((prev) => ({ ...prev, quantity: value }));\n\n if (typeof order.sl_trigger_price !== \"undefined\") {\n _setOrderValue(\"sl_trigger_price\", order.sl_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n if (typeof order.tp_trigger_price !== \"undefined\") {\n _setOrderValue(\"tp_trigger_price\", order.tp_trigger_price, {\n ignoreValidate: true,\n });\n }\n\n return;\n }\n\n _setOrderValue(key, value, options);\n };\n\n /**\n * calculate value config\n */\n const valueConfig = {\n symbol: symbolInfo,\n maxQty: Math.abs(position.position_qty),\n markPrice,\n };\n\n // auto validate when order changed\n useEffect(() => {\n requestAnimationFrame(() => {\n if (order.ignoreValidate) return;\n const orderCreator = getOrderCreator();\n orderCreator\n .validate(order as AlgoOrderEntity, valueConfig)\n .then((errors) => {\n setErrors(errors);\n });\n });\n }, [order, valueConfig.markPrice, order.quantity]);\n\n const setValues = (values: Partial<ComputedAlgoOrder>) => {\n const keys = Object.keys(values);\n keys.forEach((key) => {\n setOrderValue(\n key as UpdateOrderKey,\n values[key as keyof ComputedAlgoOrder] as number | string\n );\n });\n };\n\n const validate = (): Promise<\n AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n > => {\n const orderCreator = getOrderCreator();\n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n .then((errors) => {\n console.log(\"errors::\", errors);\n\n if (errors) {\n setErrors(errors);\n return reject(errors);\n }\n\n resolve(\n orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n )\n );\n });\n });\n };\n\n // useEffect(() => {\n // // setError(validate());\n // }, [order]);\n\n const compare = (): boolean => {\n const quantityNum = Number(order.quantity);\n if (isNaN(quantityNum)) return false;\n return quantityNum === Math.abs(Number(position.position_qty));\n };\n\n const getOrderCreator = () => {\n // if the order is existed, and the order type is POSITIONAL_TP_SL, always return POSITIONAL_TP_SL\n // else use qty to determine the order type\n if (options?.defaultOrder?.algo_type === AlgoOrderRootType.TP_SL) {\n return OrderFactory.create(AlgoOrderRootType.TP_SL);\n }\n return OrderFactory.create(\n compare() ? AlgoOrderRootType.POSITIONAL_TP_SL : AlgoOrderRootType.TP_SL\n );\n };\n\n const submit = async () => {\n const defaultOrder = options?.defaultOrder;\n const orderId = defaultOrder?.algo_order_id;\n const algoType = defaultOrder?.algo_type;\n\n // if algo_order_id is not existed, create new order\n if (!orderId) {\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = POSITION_TP_SL\n if (algoType === AlgoOrderRootType.POSITIONAL_TP_SL) {\n // if order.qty = position.qty, update order\n if (compare()) {\n return updateOrder(orderId!);\n }\n // if order.qty != position.qty, create new tp/sl order\n return createOrder();\n }\n\n // if algo_order_id is existed and algoType = TP_SL, delete order and create new order\n\n return updateOrder(orderId!);\n };\n\n const createOrder = () => {\n const orderCreator = getOrderCreator();\n\n const orderBody = orderCreator.create(\n order as AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n valueConfig\n );\n\n if (orderBody.child_orders.length === 0) {\n throw new SDKError(\"No child orders\");\n }\n\n // filter the order that is not activated\n orderBody.child_orders = orderBody.child_orders.filter(\n (order: API.AlgoOrderExt) => order.is_activated\n );\n\n return doCreateOrder(orderBody);\n };\n\n const deleteOrder = (orderId: number, symbol: string): Promise<any> => {\n return doDeleteOrder(null, {\n order_id: orderId,\n symbol,\n });\n };\n\n const updateOrder = (orderId: number): Promise<any> => {\n const orderCreator = getOrderCreator() as TPSLPositionOrderCreator;\n\n const [updatedOrderEntity, orderEntity] = orderCreator.crateUpdateOrder(\n // @ts-ignore\n order,\n options?.defaultOrder,\n valueConfig\n );\n\n if (updatedOrderEntity.child_orders.length === 0) {\n return Promise.resolve(\"Not any order needs to update\");\n }\n\n const needDelete =\n orderEntity.child_orders.filter(\n (order) =>\n typeof order.is_activated === \"boolean\" && !order.is_activated\n ).length === orderEntity.child_orders.length;\n\n if (needDelete) {\n return deleteOrder(orderId, order.symbol!);\n }\n\n return doUpdateOrder({\n order_id: orderId,\n ...updatedOrderEntity,\n });\n };\n\n return [\n omit([\"ignoreValidate\"], order) as ComputedAlgoOrder,\n {\n submit,\n\n // create: submit,\n\n // update: updateOrder,/\n setValue: setOrderValue,\n setValues,\n // createPositionTPSL: submit,\n // createTPSL: submit,\n validate,\n errors,\n },\n ];\n};\n"],"names":["useEffect","useState","OrderSide","SDKError","calculateHelper","useMutation","OrderFactory","AlgoOrderRootType","findTPSLFromOrder","useSymbolsInfo","useMarkPrice","omit","useTaskProfitAndStopLossInternal","position","options","order","setOrder","algo_order_id","defaultOrder","symbol","side","Number","position_qty","BUY","SELL","quantity","Math","abs","algo_type","symbolInfo","data","markPrice","doCreateOrder","doUpdateOrder","doDeleteOrder","errors","setErrors","trigger_prices","tp_trigger_price","setOrderValue","ignoreValidate","sl_trigger_price","_setOrderValue","key","value","prev","newValue","entryPrice","average_open_price","qty","orderSide","valueConfig","maxQty","requestAnimationFrame","orderCreator","getOrderCreator","validate","then","setValues","values","keys","Object","forEach","Promise","resolve","reject","create","compare","quantityNum","isNaN","TP_SL","POSITIONAL_TP_SL","submit","orderId","algoType","createOrder","updateOrder","orderBody","child_orders","length","filter","is_activated","deleteOrder","order_id","updatedOrderEntity","orderEntity","crateUpdateOrder","needDelete","setValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAoBA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO,UA2BzC;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAgCA;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAyBA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBA+BA;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO,GACvC,MAAM,CAkCR;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;CACtB,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO;;EAgJzC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/orderly/useTakeProfitAndStopLoss/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAoBA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO,UA2BzC;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAgCA;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBAyBA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,sBA+BA;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO,GACvC,MAAM,CAkCR;AAeD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;CACtB,EACD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAA;CAAO;;EAuJzC"}