@orderly.network/hooks 1.5.8 → 1.5.9-alpha.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.
- package/esm/orderly/useChains.d.ts +2 -2
- package/esm/orderly/useChains.d.ts.map +1 -1
- package/esm/orderly/useChains.js +12 -11
- package/esm/orderly/useChains.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +2 -2
- package/esm/version.js.map +1 -1
- package/lib/orderly/useChains.d.ts +2 -2
- package/lib/orderly/useChains.d.ts.map +1 -1
- package/lib/orderly/useChains.js +15 -14
- package/lib/orderly/useChains.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +2 -2
- package/lib/version.js.map +1 -1
- package/package.json +7 -7
|
@@ -25,8 +25,8 @@ export declare function useChains<T extends NetworkId | undefined, K extends Use
|
|
|
25
25
|
];
|
|
26
26
|
/** orderly chains array form (/v1/public/token) api */
|
|
27
27
|
export declare function fillChainsInfo(chains?: API.Chain[], filter?: (chain: any) => boolean): API.Chain[];
|
|
28
|
-
/** update network_infos by chain_info api(v1/public/chain_info) */
|
|
29
|
-
export declare function
|
|
28
|
+
/** filter chains and update network_infos by chain_info api (v1/public/chain_info) */
|
|
29
|
+
export declare function filterAndUpdateChains(chains: API.Chain[], chainInfos: any, filter?: (chain: any) => boolean): API.Chain[];
|
|
30
30
|
/** if chain is testnet, update testnet network_infos */
|
|
31
31
|
export declare function updateTestnetInfo(testnetArr: API.Chain[], chainId: number, chain: API.Chain): void;
|
|
32
32
|
export declare function filterByAllowedChains(chains: API.Chain[], allowedChains?: FlatChain[]): API.Chain[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAAG,EAER,KAAK,IAAI,SAAS,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAOvC,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAC3C,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,SAAS,IAC/C,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACd,GAAG,CAAC,KAAK,EAAE,GACb,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACzB;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,GACD;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;CACjD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,CAAC,SAAS,gBAAgB,GAAG,SAAS,EAEtC,SAAS,CAAC,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,CAAC,GACV;IACD,MAAM,CACJ,CAAC,EACD,CAAC,SAAS,gBAAgB,GACtB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAC/B,CAAC,CAAC,MAAM,CAAC,GACT,SAAS,GACX,SAAS,CACd;IACD,qBAAqB;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAAG,EAER,KAAK,IAAI,SAAS,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAOvC,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAC3C,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,SAAS,IAC/C,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACd,GAAG,CAAC,KAAK,EAAE,GACb,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACzB;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,GACD;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;CACjD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,CAAC,SAAS,gBAAgB,GAAG,SAAS,EAEtC,SAAS,CAAC,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,CAAC,GACV;IACD,MAAM,CACJ,CAAC,EACD,CAAC,SAAS,gBAAgB,GACtB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAC/B,CAAC,CAAC,MAAM,CAAC,GACT,SAAS,GACX,SAAS,CACd;IACD,qBAAqB;CACtB,CAAC;AAuIF,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,EACpB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAoCjC;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,UAAU,EAAE,GAAG,EACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAqCjC;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,CAAC,KAAK,QAUjB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,aAAa,CAAC,EAAE,SAAS,EAAE,eAY5B"}
|
package/esm/orderly/useChains.js
CHANGED
|
@@ -22,20 +22,20 @@ export function useChains(networkId, options = {}) {
|
|
|
22
22
|
...swrOptions
|
|
23
23
|
};
|
|
24
24
|
// only prod env return mainnet chains info
|
|
25
|
-
const { data:
|
|
25
|
+
const { data: tokenChainsRes, error: tokenError } = useQuery("https://api-evm.orderly.org/v1/public/token", {
|
|
26
26
|
...commonSwrOpts
|
|
27
27
|
});
|
|
28
28
|
const brokerId = configStore.get("brokerId");
|
|
29
29
|
// only prod env return mainnet chains info
|
|
30
|
-
const { data: chainInfos, error: chainInfoErr } = useQuery(
|
|
30
|
+
const { data: chainInfos, error: chainInfoErr } = useQuery(`https://api-evm.orderly.org/v1/public/chain_info${brokerId !== "orderly" ? `?broker_id=${brokerId}` : ""}`, {
|
|
31
31
|
...commonSwrOpts
|
|
32
32
|
});
|
|
33
33
|
const chains = useMemo(()=>{
|
|
34
|
-
const
|
|
34
|
+
const tokenChains = fillChainsInfo(tokenChainsRes, filterFun.current);
|
|
35
35
|
let testnetArr = [
|
|
36
36
|
...TestnetChains
|
|
37
37
|
];
|
|
38
|
-
|
|
38
|
+
tokenChains?.forEach((item)=>{
|
|
39
39
|
const chainId = item.network_infos?.chain_id;
|
|
40
40
|
chainsMap.current.set(chainId, item);
|
|
41
41
|
updateTestnetInfo(testnetArr, chainId, item);
|
|
@@ -44,8 +44,7 @@ export function useChains(networkId, options = {}) {
|
|
|
44
44
|
chainsMap.current.set(chain.network_infos?.chain_id, chain);
|
|
45
45
|
});
|
|
46
46
|
let mainnetArr = [];
|
|
47
|
-
|
|
48
|
-
mainnetArr = updateOrderlyChains(orderlyChainsArr, chainInfos, filterFun.current);
|
|
47
|
+
mainnetArr = filterAndUpdateChains(tokenChains, chainInfos, filterFun.current);
|
|
49
48
|
mainnetArr.forEach((item)=>{
|
|
50
49
|
const chainId = item.network_infos?.chain_id;
|
|
51
50
|
chainsMap.current.set(chainId, item);
|
|
@@ -77,7 +76,7 @@ export function useChains(networkId, options = {}) {
|
|
|
77
76
|
};
|
|
78
77
|
}, [
|
|
79
78
|
networkId,
|
|
80
|
-
|
|
79
|
+
tokenChainsRes,
|
|
81
80
|
chainInfos,
|
|
82
81
|
pickField,
|
|
83
82
|
allowedChains
|
|
@@ -136,8 +135,8 @@ export function useChains(networkId, options = {}) {
|
|
|
136
135
|
});
|
|
137
136
|
return _chains;
|
|
138
137
|
}
|
|
139
|
-
/** update network_infos by chain_info api(v1/public/chain_info) */ export function
|
|
140
|
-
const
|
|
138
|
+
/** filter chains and update network_infos by chain_info api (v1/public/chain_info) */ export function filterAndUpdateChains(chains, chainInfos, filter) {
|
|
139
|
+
const filterChains = [];
|
|
141
140
|
chains.forEach((chain)=>{
|
|
142
141
|
let _chain = {
|
|
143
142
|
...chain
|
|
@@ -160,9 +159,11 @@ export function useChains(networkId, options = {}) {
|
|
|
160
159
|
if (typeof filter === "function") {
|
|
161
160
|
if (!filter(_chain)) return;
|
|
162
161
|
}
|
|
163
|
-
|
|
162
|
+
if (networkInfo) {
|
|
163
|
+
filterChains.push(_chain);
|
|
164
|
+
}
|
|
164
165
|
});
|
|
165
|
-
return
|
|
166
|
+
return filterChains;
|
|
166
167
|
}
|
|
167
168
|
/** if chain is testnet, update testnet network_infos */ export function updateTestnetInfo(testnetArr, chainId, chain) {
|
|
168
169
|
if (isTestnet(chainId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/orderly/useChains.ts"],"sourcesContent":["import {\n NetworkId,\n type API,\n chainsInfoMap,\n Chain as FlatChain,\n} from \"@orderly.network/types\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { SWRConfiguration } from \"swr\";\nimport { useQuery } from \"../useQuery\";\nimport { prop } from \"ramda\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { TestnetChains, nativeTokenAddress } from \"@orderly.network/types\";\nimport { OrderlyContext } from \"../orderlyContext\";\n\nexport type Chain = API.Chain & {\n nativeToken?: API.TokenInfo;\n};\n\nexport type Chains<\n T extends NetworkId | undefined = undefined,\n K extends keyof API.Chain | undefined = undefined\n> = T extends NetworkId\n ? K extends keyof API.Chain\n ? API.Chain[K][]\n : API.Chain[]\n : K extends keyof API.Chain\n ? {\n testnet: API.Chain[K][];\n mainnet: API.Chain[K][];\n }\n : {\n testnet: API.Chain[];\n mainnet: API.Chain[];\n };\n\nexport type UseChainsOptions = {\n filter?: (item: API.Chain) => boolean;\n pick?: \"dexs\" | \"network_infos\" | \"token_infos\";\n} & SWRConfiguration;\n\nexport type UseChainsReturnObject = {\n findByChainId: (chainId: number, field?: string) => Chain | undefined;\n error: any;\n};\n\nexport function useChains(\n networkId?: undefined,\n options?: undefined\n): [Chains<undefined, undefined>, UseChainsReturnObject];\n\nexport function useChains<\n T extends NetworkId | undefined,\n K extends UseChainsOptions | undefined\n>(\n networkId?: T,\n options?: K\n): [\n Chains<\n T,\n K extends UseChainsOptions\n ? K[\"pick\"] extends keyof API.Chain\n ? K[\"pick\"]\n : undefined\n : undefined\n >,\n UseChainsReturnObject\n];\n\nexport function useChains(\n networkId?: NetworkId,\n options: UseChainsOptions = {}\n) {\n const { pick: pickField, ...swrOptions } = options;\n const { filteredChains: allowedChains, configStore } =\n useContext(OrderlyContext);\n\n const filterFun = useRef(options?.filter);\n filterFun.current = options?.filter;\n\n const chainsMap = useRef(new Map<number, Chain>());\n\n const commonSwrOpts = {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n // If false, undefined data gets cached against the key.\n revalidateOnMount: true,\n // dont duplicate a request w/ same key for 1hr\n dedupingInterval: 3_600_000,\n ...swrOptions,\n };\n\n // only prod env return mainnet chains info\n const { data: tokenChains, error: tokenError } = useQuery<API.Chain[]>(\n \"https://api-evm.orderly.org/v1/public/token\",\n { ...commonSwrOpts }\n );\n\n const brokerId = configStore.get(\"brokerId\");\n\n // only prod env return mainnet chains info\n const { data: chainInfos, error: chainInfoErr } = useQuery(\n `/v1/public/chain_info${\n brokerId !== \"orderly\" ? `?broker_id=${brokerId}` : \"\"\n }`,\n { ...commonSwrOpts }\n );\n\n const chains = useMemo(() => {\n const orderlyChainsArr = fillChainsInfo(tokenChains, filterFun.current);\n\n let testnetArr = [...TestnetChains] as API.Chain[];\n\n orderlyChainsArr?.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n testnetArr.forEach((chain) => {\n chainsMap.current.set(chain.network_infos?.chain_id, chain);\n });\n\n let mainnetArr: API.Chain[] = [];\n\n // TODO: /v1/public/chain_info api data is not match /v1/public/token api data, so it can effect is prod\n mainnetArr = updateOrderlyChains(\n orderlyChainsArr,\n chainInfos,\n filterFun.current\n );\n\n mainnetArr.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n mainnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n testnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);\n testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);\n\n if (!!pickField) {\n //@ts-ignore\n testnetArr = testnetArr.map((item) => item[pickField]);\n //@ts-ignore\n mainnetArr = mainnetArr.map((item) => item[pickField]);\n }\n\n if (networkId === \"mainnet\") {\n return mainnetArr;\n }\n\n if (networkId === \"testnet\") {\n return testnetArr;\n }\n\n return {\n testnet: testnetArr,\n mainnet: mainnetArr,\n };\n }, [networkId, tokenChains, chainInfos, pickField, allowedChains]);\n\n const findByChainId = useCallback(\n (chainId: number, field?: string) => {\n const chain = chainsMap.current.get(chainId);\n\n if (chain) {\n chain.nativeToken =\n chain.token_infos?.find(\n (item) => item.address === nativeTokenAddress\n ) ||\n ({\n symbol: chain.network_infos?.currency_symbol,\n } as any);\n }\n\n if (typeof field === \"string\") {\n return prop(field as never, chain);\n }\n\n return chain;\n },\n [chains, chainsMap]\n );\n\n return [\n chains,\n {\n findByChainId,\n error: tokenError,\n },\n ];\n}\n\n/** orderly chains array form (/v1/public/token) api */\nexport function fillChainsInfo(\n chains?: API.Chain[],\n filter?: (chain: any) => boolean\n) {\n let _chains: API.Chain[] = [];\n\n chains?.forEach((item) => {\n item.chain_details.forEach((chain: any) => {\n const chainId = Number(chain.chain_id);\n const chainInfo = chainsInfoMap.get(chainId);\n\n const _chain: any = {\n network_infos: {\n name: chain.chain_name ?? chainInfo?.chainName ?? \"--\",\n chain_id: chainId,\n withdrawal_fee: chain.withdrawal_fee,\n cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,\n bridgeless: true,\n },\n token_infos: [\n {\n symbol: item.token,\n address: chain.contract_address,\n decimals: chain.decimals,\n display_name: chain.display_name,\n },\n ],\n };\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n });\n\n return _chains;\n}\n\n/** update network_infos by chain_info api(v1/public/chain_info) */\nexport function updateOrderlyChains(\n chains: API.Chain[],\n chainInfos: any,\n filter?: (chain: any) => boolean\n) {\n const _chains: API.Chain[] = [];\n chains.forEach((chain) => {\n let _chain = { ...chain };\n\n const networkInfo = chainInfos?.find(\n (item: any) => item.chain_id == chain.network_infos.chain_id\n );\n\n if (networkInfo) {\n const { name, public_rpc_url, currency_symbol, explorer_base_url } =\n networkInfo;\n _chain.network_infos = {\n ..._chain.network_infos,\n name,\n shortName: name,\n public_rpc_url,\n currency_symbol,\n bridge_enable: true,\n mainnet: true,\n explorer_base_url,\n est_txn_mins: null,\n };\n }\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n\n return _chains;\n}\n\n/** if chain is testnet, update testnet network_infos */\nexport function updateTestnetInfo(\n testnetArr: API.Chain[],\n chainId: number,\n chain: API.Chain\n) {\n if (isTestnet(chainId)) {\n const index = testnetArr?.findIndex(\n (item) => item.network_infos.chain_id === chainId\n );\n if (index > -1) {\n testnetArr[index] = chain;\n }\n }\n}\n\nexport function filterByAllowedChains(\n chains: API.Chain[],\n allowedChains?: FlatChain[]\n) {\n if (!allowedChains) {\n return chains;\n }\n\n return chains.filter((chain) =>\n allowedChains.some(\n (allowedChain) =>\n allowedChain.id === parseInt(chain?.network_infos?.chain_id as any)\n )\n );\n}\n"],"names":["chainsInfoMap","useCallback","useContext","useMemo","useRef","useQuery","prop","isTestnet","TestnetChains","nativeTokenAddress","OrderlyContext","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","configStore","filterFun","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChains","error","tokenError","brokerId","get","chainInfos","chainInfoErr","chains","orderlyChainsArr","fillChainsInfo","testnetArr","forEach","item","chainId","network_infos","chain_id","set","updateTestnetInfo","chain","mainnetArr","updateOrderlyChains","sort","a","b","bridgeless","filterByAllowedChains","mainnet","testnet","map","findByChainId","field","nativeToken","token_infos","find","address","symbol","currency_symbol","_chains","chain_details","Number","chainInfo","_chain","name","chain_name","chainName","withdrawal_fee","cross_chain_withdrawal_fee","token","contract_address","decimals","display_name","push","networkInfo","public_rpc_url","explorer_base_url","shortName","bridge_enable","est_txn_mins","index","findIndex","some","allowedChain","id","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useChains.ts"],"sourcesContent":["import {\n NetworkId,\n type API,\n chainsInfoMap,\n Chain as FlatChain,\n} from \"@orderly.network/types\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { SWRConfiguration } from \"swr\";\nimport { useQuery } from \"../useQuery\";\nimport { prop } from \"ramda\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { TestnetChains, nativeTokenAddress } from \"@orderly.network/types\";\nimport { OrderlyContext } from \"../orderlyContext\";\n\nexport type Chain = API.Chain & {\n nativeToken?: API.TokenInfo;\n};\n\nexport type Chains<\n T extends NetworkId | undefined = undefined,\n K extends keyof API.Chain | undefined = undefined\n> = T extends NetworkId\n ? K extends keyof API.Chain\n ? API.Chain[K][]\n : API.Chain[]\n : K extends keyof API.Chain\n ? {\n testnet: API.Chain[K][];\n mainnet: API.Chain[K][];\n }\n : {\n testnet: API.Chain[];\n mainnet: API.Chain[];\n };\n\nexport type UseChainsOptions = {\n filter?: (item: API.Chain) => boolean;\n pick?: \"dexs\" | \"network_infos\" | \"token_infos\";\n} & SWRConfiguration;\n\nexport type UseChainsReturnObject = {\n findByChainId: (chainId: number, field?: string) => Chain | undefined;\n error: any;\n};\n\nexport function useChains(\n networkId?: undefined,\n options?: undefined\n): [Chains<undefined, undefined>, UseChainsReturnObject];\n\nexport function useChains<\n T extends NetworkId | undefined,\n K extends UseChainsOptions | undefined\n>(\n networkId?: T,\n options?: K\n): [\n Chains<\n T,\n K extends UseChainsOptions\n ? K[\"pick\"] extends keyof API.Chain\n ? K[\"pick\"]\n : undefined\n : undefined\n >,\n UseChainsReturnObject\n];\n\nexport function useChains(\n networkId?: NetworkId,\n options: UseChainsOptions = {}\n) {\n const { pick: pickField, ...swrOptions } = options;\n const { filteredChains: allowedChains, configStore } =\n useContext(OrderlyContext);\n\n const filterFun = useRef(options?.filter);\n filterFun.current = options?.filter;\n\n const chainsMap = useRef(new Map<number, Chain>());\n\n const commonSwrOpts = {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n // If false, undefined data gets cached against the key.\n revalidateOnMount: true,\n // dont duplicate a request w/ same key for 1hr\n dedupingInterval: 3_600_000,\n ...swrOptions,\n };\n\n // only prod env return mainnet chains info\n const { data: tokenChainsRes, error: tokenError } = useQuery<API.Chain[]>(\n \"https://api-evm.orderly.org/v1/public/token\",\n { ...commonSwrOpts }\n );\n\n const brokerId = configStore.get(\"brokerId\");\n\n // only prod env return mainnet chains info\n const { data: chainInfos, error: chainInfoErr } = useQuery(\n `https://api-evm.orderly.org/v1/public/chain_info${\n brokerId !== \"orderly\" ? `?broker_id=${brokerId}` : \"\"\n }`,\n { ...commonSwrOpts }\n );\n\n const chains = useMemo(() => {\n const tokenChains = fillChainsInfo(tokenChainsRes, filterFun.current);\n\n let testnetArr = [...TestnetChains] as API.Chain[];\n\n tokenChains?.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n testnetArr.forEach((chain) => {\n chainsMap.current.set(chain.network_infos?.chain_id, chain);\n });\n\n let mainnetArr: API.Chain[] = [];\n\n mainnetArr = filterAndUpdateChains(\n tokenChains,\n chainInfos,\n filterFun.current\n );\n\n mainnetArr.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n mainnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n testnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);\n testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);\n\n if (!!pickField) {\n //@ts-ignore\n testnetArr = testnetArr.map((item) => item[pickField]);\n //@ts-ignore\n mainnetArr = mainnetArr.map((item) => item[pickField]);\n }\n\n if (networkId === \"mainnet\") {\n return mainnetArr;\n }\n\n if (networkId === \"testnet\") {\n return testnetArr;\n }\n\n return {\n testnet: testnetArr,\n mainnet: mainnetArr,\n };\n }, [networkId, tokenChainsRes, chainInfos, pickField, allowedChains]);\n\n const findByChainId = useCallback(\n (chainId: number, field?: string) => {\n const chain = chainsMap.current.get(chainId);\n\n if (chain) {\n chain.nativeToken =\n chain.token_infos?.find(\n (item) => item.address === nativeTokenAddress\n ) ||\n ({\n symbol: chain.network_infos?.currency_symbol,\n } as any);\n }\n\n if (typeof field === \"string\") {\n return prop(field as never, chain);\n }\n\n return chain;\n },\n [chains, chainsMap]\n );\n\n return [\n chains,\n {\n findByChainId,\n error: tokenError,\n },\n ];\n}\n\n/** orderly chains array form (/v1/public/token) api */\nexport function fillChainsInfo(\n chains?: API.Chain[],\n filter?: (chain: any) => boolean\n) {\n let _chains: API.Chain[] = [];\n\n chains?.forEach((item) => {\n item.chain_details.forEach((chain: any) => {\n const chainId = Number(chain.chain_id);\n const chainInfo = chainsInfoMap.get(chainId);\n\n const _chain: any = {\n network_infos: {\n name: chain.chain_name ?? chainInfo?.chainName ?? \"--\",\n chain_id: chainId,\n withdrawal_fee: chain.withdrawal_fee,\n cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,\n bridgeless: true,\n },\n token_infos: [\n {\n symbol: item.token,\n address: chain.contract_address,\n decimals: chain.decimals,\n display_name: chain.display_name,\n },\n ],\n };\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n });\n\n return _chains;\n}\n\n/** filter chains and update network_infos by chain_info api (v1/public/chain_info) */\nexport function filterAndUpdateChains(\n chains: API.Chain[],\n chainInfos: any,\n filter?: (chain: any) => boolean\n) {\n const filterChains: API.Chain[] = [];\n\n chains.forEach((chain) => {\n let _chain = { ...chain };\n\n const networkInfo = chainInfos?.find(\n (item: any) => item.chain_id == chain.network_infos.chain_id\n );\n\n if (networkInfo) {\n const { name, public_rpc_url, currency_symbol, explorer_base_url } =\n networkInfo;\n _chain.network_infos = {\n ..._chain.network_infos,\n name,\n shortName: name,\n public_rpc_url,\n currency_symbol,\n bridge_enable: true,\n mainnet: true,\n explorer_base_url,\n est_txn_mins: null,\n };\n }\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n if (networkInfo) {\n filterChains.push(_chain);\n }\n });\n\n return filterChains;\n}\n\n/** if chain is testnet, update testnet network_infos */\nexport function updateTestnetInfo(\n testnetArr: API.Chain[],\n chainId: number,\n chain: API.Chain\n) {\n if (isTestnet(chainId)) {\n const index = testnetArr?.findIndex(\n (item) => item.network_infos.chain_id === chainId\n );\n if (index > -1) {\n testnetArr[index] = chain;\n }\n }\n}\n\nexport function filterByAllowedChains(\n chains: API.Chain[],\n allowedChains?: FlatChain[]\n) {\n if (!allowedChains) {\n return chains;\n }\n\n return chains.filter((chain) =>\n allowedChains.some(\n (allowedChain) =>\n allowedChain.id === parseInt(chain?.network_infos?.chain_id as any)\n )\n );\n}\n"],"names":["chainsInfoMap","useCallback","useContext","useMemo","useRef","useQuery","prop","isTestnet","TestnetChains","nativeTokenAddress","OrderlyContext","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","configStore","filterFun","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChainsRes","error","tokenError","brokerId","get","chainInfos","chainInfoErr","chains","tokenChains","fillChainsInfo","testnetArr","forEach","item","chainId","network_infos","chain_id","set","updateTestnetInfo","chain","mainnetArr","filterAndUpdateChains","sort","a","b","bridgeless","filterByAllowedChains","mainnet","testnet","map","findByChainId","field","nativeToken","token_infos","find","address","symbol","currency_symbol","_chains","chain_details","Number","chainInfo","_chain","name","chain_name","chainName","withdrawal_fee","cross_chain_withdrawal_fee","token","contract_address","decimals","display_name","push","filterChains","networkInfo","public_rpc_url","explorer_base_url","shortName","bridge_enable","est_txn_mins","index","findIndex","some","allowedChain","id","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/esm/version.d.ts
CHANGED
package/esm/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,CAAC,EAAE;YAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL;CACJ;;AAMD,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,CAAC,EAAE;YAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL;CACJ;;AAMD,wBAA+B"}
|
package/esm/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
if (typeof window !== 'undefined') {
|
|
2
2
|
window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
|
|
3
|
-
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.
|
|
3
|
+
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.9-alpha.0";
|
|
4
4
|
}
|
|
5
|
-
export default "1.5.
|
|
5
|
+
export default "1.5.9-alpha.0";
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=version.js.map
|
package/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.9-alpha.0\";\n};\n\nexport default \"1.5.9-alpha.0\";\n"],"names":["window","__ORDERLY_VERSION__"],"rangeMappings":";;;;","mappings":"AAQA,IAAG,OAAOA,WAAW,aAAa;IAC9BA,OAAOC,mBAAmB,GAAGD,OAAOC,mBAAmB,IAAI,CAAC;IAC5DD,OAAOC,mBAAmB,CAAC,yBAAyB,GAAG;AAC3D;AAEA,eAAe,gBAAgB"}
|
|
@@ -25,8 +25,8 @@ export declare function useChains<T extends NetworkId | undefined, K extends Use
|
|
|
25
25
|
];
|
|
26
26
|
/** orderly chains array form (/v1/public/token) api */
|
|
27
27
|
export declare function fillChainsInfo(chains?: API.Chain[], filter?: (chain: any) => boolean): API.Chain[];
|
|
28
|
-
/** update network_infos by chain_info api(v1/public/chain_info) */
|
|
29
|
-
export declare function
|
|
28
|
+
/** filter chains and update network_infos by chain_info api (v1/public/chain_info) */
|
|
29
|
+
export declare function filterAndUpdateChains(chains: API.Chain[], chainInfos: any, filter?: (chain: any) => boolean): API.Chain[];
|
|
30
30
|
/** if chain is testnet, update testnet network_infos */
|
|
31
31
|
export declare function updateTestnetInfo(testnetArr: API.Chain[], chainId: number, chain: API.Chain): void;
|
|
32
32
|
export declare function filterByAllowedChains(chains: API.Chain[], allowedChains?: FlatChain[]): API.Chain[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAAG,EAER,KAAK,IAAI,SAAS,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAOvC,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAC3C,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,SAAS,IAC/C,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACd,GAAG,CAAC,KAAK,EAAE,GACb,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACzB;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,GACD;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;CACjD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,CAAC,SAAS,gBAAgB,GAAG,SAAS,EAEtC,SAAS,CAAC,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,CAAC,GACV;IACD,MAAM,CACJ,CAAC,EACD,CAAC,SAAS,gBAAgB,GACtB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAC/B,CAAC,CAAC,MAAM,CAAC,GACT,SAAS,GACX,SAAS,CACd;IACD,qBAAqB;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"useChains.d.ts","sourceRoot":"","sources":["../../src/orderly/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,GAAG,EAER,KAAK,IAAI,SAAS,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAOvC,MAAM,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAC3C,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,SAAS,IAC/C,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACvB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACd,GAAG,CAAC,KAAK,EAAE,GACb,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GACzB;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACzB,GACD;IACE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;CACtB,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;CACjD,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IACtE,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,CAAC,EAAE,SAAS,GAClB,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAEzD,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,CAAC,SAAS,gBAAgB,GAAG,SAAS,EAEtC,SAAS,CAAC,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,CAAC,GACV;IACD,MAAM,CACJ,CAAC,EACD,CAAC,SAAS,gBAAgB,GACtB,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,KAAK,GAC/B,CAAC,CAAC,MAAM,CAAC,GACT,SAAS,GACX,SAAS,CACd;IACD,qBAAqB;CACtB,CAAC;AAuIF,uDAAuD;AACvD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,EACpB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAoCjC;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,UAAU,EAAE,GAAG,EACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,eAqCjC;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,CAAC,KAAK,QAUjB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EACnB,aAAa,CAAC,EAAE,SAAS,EAAE,eAY5B"}
|
package/lib/orderly/useChains.js
CHANGED
|
@@ -12,12 +12,12 @@ _export(exports, {
|
|
|
12
12
|
fillChainsInfo: function() {
|
|
13
13
|
return fillChainsInfo;
|
|
14
14
|
},
|
|
15
|
+
filterAndUpdateChains: function() {
|
|
16
|
+
return filterAndUpdateChains;
|
|
17
|
+
},
|
|
15
18
|
filterByAllowedChains: function() {
|
|
16
19
|
return filterByAllowedChains;
|
|
17
20
|
},
|
|
18
|
-
updateOrderlyChains: function() {
|
|
19
|
-
return updateOrderlyChains;
|
|
20
|
-
},
|
|
21
21
|
updateTestnetInfo: function() {
|
|
22
22
|
return updateTestnetInfo;
|
|
23
23
|
},
|
|
@@ -48,20 +48,20 @@ function useChains(networkId, options = {}) {
|
|
|
48
48
|
...swrOptions
|
|
49
49
|
};
|
|
50
50
|
// only prod env return mainnet chains info
|
|
51
|
-
const { data:
|
|
51
|
+
const { data: tokenChainsRes, error: tokenError } = (0, _useQuery.useQuery)("https://api-evm.orderly.org/v1/public/token", {
|
|
52
52
|
...commonSwrOpts
|
|
53
53
|
});
|
|
54
54
|
const brokerId = configStore.get("brokerId");
|
|
55
55
|
// only prod env return mainnet chains info
|
|
56
|
-
const { data: chainInfos, error: chainInfoErr } = (0, _useQuery.useQuery)(
|
|
56
|
+
const { data: chainInfos, error: chainInfoErr } = (0, _useQuery.useQuery)(`https://api-evm.orderly.org/v1/public/chain_info${brokerId !== "orderly" ? `?broker_id=${brokerId}` : ""}`, {
|
|
57
57
|
...commonSwrOpts
|
|
58
58
|
});
|
|
59
59
|
const chains = (0, _react.useMemo)(()=>{
|
|
60
|
-
const
|
|
60
|
+
const tokenChains = fillChainsInfo(tokenChainsRes, filterFun.current);
|
|
61
61
|
let testnetArr = [
|
|
62
62
|
..._types.TestnetChains
|
|
63
63
|
];
|
|
64
|
-
|
|
64
|
+
tokenChains?.forEach((item)=>{
|
|
65
65
|
const chainId = item.network_infos?.chain_id;
|
|
66
66
|
chainsMap.current.set(chainId, item);
|
|
67
67
|
updateTestnetInfo(testnetArr, chainId, item);
|
|
@@ -70,8 +70,7 @@ function useChains(networkId, options = {}) {
|
|
|
70
70
|
chainsMap.current.set(chain.network_infos?.chain_id, chain);
|
|
71
71
|
});
|
|
72
72
|
let mainnetArr = [];
|
|
73
|
-
|
|
74
|
-
mainnetArr = updateOrderlyChains(orderlyChainsArr, chainInfos, filterFun.current);
|
|
73
|
+
mainnetArr = filterAndUpdateChains(tokenChains, chainInfos, filterFun.current);
|
|
75
74
|
mainnetArr.forEach((item)=>{
|
|
76
75
|
const chainId = item.network_infos?.chain_id;
|
|
77
76
|
chainsMap.current.set(chainId, item);
|
|
@@ -103,7 +102,7 @@ function useChains(networkId, options = {}) {
|
|
|
103
102
|
};
|
|
104
103
|
}, [
|
|
105
104
|
networkId,
|
|
106
|
-
|
|
105
|
+
tokenChainsRes,
|
|
107
106
|
chainInfos,
|
|
108
107
|
pickField,
|
|
109
108
|
allowedChains
|
|
@@ -162,8 +161,8 @@ function fillChainsInfo(chains, filter) {
|
|
|
162
161
|
});
|
|
163
162
|
return _chains;
|
|
164
163
|
}
|
|
165
|
-
function
|
|
166
|
-
const
|
|
164
|
+
function filterAndUpdateChains(chains, chainInfos, filter) {
|
|
165
|
+
const filterChains = [];
|
|
167
166
|
chains.forEach((chain)=>{
|
|
168
167
|
let _chain = {
|
|
169
168
|
...chain
|
|
@@ -186,9 +185,11 @@ function updateOrderlyChains(chains, chainInfos, filter) {
|
|
|
186
185
|
if (typeof filter === "function") {
|
|
187
186
|
if (!filter(_chain)) return;
|
|
188
187
|
}
|
|
189
|
-
|
|
188
|
+
if (networkInfo) {
|
|
189
|
+
filterChains.push(_chain);
|
|
190
|
+
}
|
|
190
191
|
});
|
|
191
|
-
return
|
|
192
|
+
return filterChains;
|
|
192
193
|
}
|
|
193
194
|
function updateTestnetInfo(testnetArr, chainId, chain) {
|
|
194
195
|
if ((0, _utils.isTestnet)(chainId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/orderly/useChains.ts"],"sourcesContent":["import {\n NetworkId,\n type API,\n chainsInfoMap,\n Chain as FlatChain,\n} from \"@orderly.network/types\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { SWRConfiguration } from \"swr\";\nimport { useQuery } from \"../useQuery\";\nimport { prop } from \"ramda\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { TestnetChains, nativeTokenAddress } from \"@orderly.network/types\";\nimport { OrderlyContext } from \"../orderlyContext\";\n\nexport type Chain = API.Chain & {\n nativeToken?: API.TokenInfo;\n};\n\nexport type Chains<\n T extends NetworkId | undefined = undefined,\n K extends keyof API.Chain | undefined = undefined\n> = T extends NetworkId\n ? K extends keyof API.Chain\n ? API.Chain[K][]\n : API.Chain[]\n : K extends keyof API.Chain\n ? {\n testnet: API.Chain[K][];\n mainnet: API.Chain[K][];\n }\n : {\n testnet: API.Chain[];\n mainnet: API.Chain[];\n };\n\nexport type UseChainsOptions = {\n filter?: (item: API.Chain) => boolean;\n pick?: \"dexs\" | \"network_infos\" | \"token_infos\";\n} & SWRConfiguration;\n\nexport type UseChainsReturnObject = {\n findByChainId: (chainId: number, field?: string) => Chain | undefined;\n error: any;\n};\n\nexport function useChains(\n networkId?: undefined,\n options?: undefined\n): [Chains<undefined, undefined>, UseChainsReturnObject];\n\nexport function useChains<\n T extends NetworkId | undefined,\n K extends UseChainsOptions | undefined\n>(\n networkId?: T,\n options?: K\n): [\n Chains<\n T,\n K extends UseChainsOptions\n ? K[\"pick\"] extends keyof API.Chain\n ? K[\"pick\"]\n : undefined\n : undefined\n >,\n UseChainsReturnObject\n];\n\nexport function useChains(\n networkId?: NetworkId,\n options: UseChainsOptions = {}\n) {\n const { pick: pickField, ...swrOptions } = options;\n const { filteredChains: allowedChains, configStore } =\n useContext(OrderlyContext);\n\n const filterFun = useRef(options?.filter);\n filterFun.current = options?.filter;\n\n const chainsMap = useRef(new Map<number, Chain>());\n\n const commonSwrOpts = {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n // If false, undefined data gets cached against the key.\n revalidateOnMount: true,\n // dont duplicate a request w/ same key for 1hr\n dedupingInterval: 3_600_000,\n ...swrOptions,\n };\n\n // only prod env return mainnet chains info\n const { data: tokenChains, error: tokenError } = useQuery<API.Chain[]>(\n \"https://api-evm.orderly.org/v1/public/token\",\n { ...commonSwrOpts }\n );\n\n const brokerId = configStore.get(\"brokerId\");\n\n // only prod env return mainnet chains info\n const { data: chainInfos, error: chainInfoErr } = useQuery(\n `/v1/public/chain_info${\n brokerId !== \"orderly\" ? `?broker_id=${brokerId}` : \"\"\n }`,\n { ...commonSwrOpts }\n );\n\n const chains = useMemo(() => {\n const orderlyChainsArr = fillChainsInfo(tokenChains, filterFun.current);\n\n let testnetArr = [...TestnetChains] as API.Chain[];\n\n orderlyChainsArr?.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n testnetArr.forEach((chain) => {\n chainsMap.current.set(chain.network_infos?.chain_id, chain);\n });\n\n let mainnetArr: API.Chain[] = [];\n\n // TODO: /v1/public/chain_info api data is not match /v1/public/token api data, so it can effect is prod\n mainnetArr = updateOrderlyChains(\n orderlyChainsArr,\n chainInfos,\n filterFun.current\n );\n\n mainnetArr.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n mainnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n testnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);\n testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);\n\n if (!!pickField) {\n //@ts-ignore\n testnetArr = testnetArr.map((item) => item[pickField]);\n //@ts-ignore\n mainnetArr = mainnetArr.map((item) => item[pickField]);\n }\n\n if (networkId === \"mainnet\") {\n return mainnetArr;\n }\n\n if (networkId === \"testnet\") {\n return testnetArr;\n }\n\n return {\n testnet: testnetArr,\n mainnet: mainnetArr,\n };\n }, [networkId, tokenChains, chainInfos, pickField, allowedChains]);\n\n const findByChainId = useCallback(\n (chainId: number, field?: string) => {\n const chain = chainsMap.current.get(chainId);\n\n if (chain) {\n chain.nativeToken =\n chain.token_infos?.find(\n (item) => item.address === nativeTokenAddress\n ) ||\n ({\n symbol: chain.network_infos?.currency_symbol,\n } as any);\n }\n\n if (typeof field === \"string\") {\n return prop(field as never, chain);\n }\n\n return chain;\n },\n [chains, chainsMap]\n );\n\n return [\n chains,\n {\n findByChainId,\n error: tokenError,\n },\n ];\n}\n\n/** orderly chains array form (/v1/public/token) api */\nexport function fillChainsInfo(\n chains?: API.Chain[],\n filter?: (chain: any) => boolean\n) {\n let _chains: API.Chain[] = [];\n\n chains?.forEach((item) => {\n item.chain_details.forEach((chain: any) => {\n const chainId = Number(chain.chain_id);\n const chainInfo = chainsInfoMap.get(chainId);\n\n const _chain: any = {\n network_infos: {\n name: chain.chain_name ?? chainInfo?.chainName ?? \"--\",\n chain_id: chainId,\n withdrawal_fee: chain.withdrawal_fee,\n cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,\n bridgeless: true,\n },\n token_infos: [\n {\n symbol: item.token,\n address: chain.contract_address,\n decimals: chain.decimals,\n display_name: chain.display_name,\n },\n ],\n };\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n });\n\n return _chains;\n}\n\n/** update network_infos by chain_info api(v1/public/chain_info) */\nexport function updateOrderlyChains(\n chains: API.Chain[],\n chainInfos: any,\n filter?: (chain: any) => boolean\n) {\n const _chains: API.Chain[] = [];\n chains.forEach((chain) => {\n let _chain = { ...chain };\n\n const networkInfo = chainInfos?.find(\n (item: any) => item.chain_id == chain.network_infos.chain_id\n );\n\n if (networkInfo) {\n const { name, public_rpc_url, currency_symbol, explorer_base_url } =\n networkInfo;\n _chain.network_infos = {\n ..._chain.network_infos,\n name,\n shortName: name,\n public_rpc_url,\n currency_symbol,\n bridge_enable: true,\n mainnet: true,\n explorer_base_url,\n est_txn_mins: null,\n };\n }\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n\n return _chains;\n}\n\n/** if chain is testnet, update testnet network_infos */\nexport function updateTestnetInfo(\n testnetArr: API.Chain[],\n chainId: number,\n chain: API.Chain\n) {\n if (isTestnet(chainId)) {\n const index = testnetArr?.findIndex(\n (item) => item.network_infos.chain_id === chainId\n );\n if (index > -1) {\n testnetArr[index] = chain;\n }\n }\n}\n\nexport function filterByAllowedChains(\n chains: API.Chain[],\n allowedChains?: FlatChain[]\n) {\n if (!allowedChains) {\n return chains;\n }\n\n return chains.filter((chain) =>\n allowedChains.some(\n (allowedChain) =>\n allowedChain.id === parseInt(chain?.network_infos?.chain_id as any)\n )\n );\n}\n"],"names":["fillChainsInfo","filterByAllowedChains","updateOrderlyChains","updateTestnetInfo","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","configStore","useContext","OrderlyContext","filterFun","useRef","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChains","error","tokenError","useQuery","brokerId","get","chainInfos","chainInfoErr","chains","useMemo","orderlyChainsArr","testnetArr","TestnetChains","forEach","item","chainId","network_infos","chain_id","set","chain","mainnetArr","sort","a","b","bridgeless","mainnet","testnet","map","findByChainId","useCallback","field","nativeToken","token_infos","find","address","nativeTokenAddress","symbol","currency_symbol","prop","_chains","chain_details","Number","chainInfo","chainsInfoMap","_chain","name","chain_name","chainName","withdrawal_fee","cross_chain_withdrawal_fee","token","contract_address","decimals","display_name","push","networkInfo","public_rpc_url","explorer_base_url","shortName","bridge_enable","est_txn_mins","isTestnet","index","findIndex","some","allowedChain","id","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useChains.ts"],"sourcesContent":["import {\n NetworkId,\n type API,\n chainsInfoMap,\n Chain as FlatChain,\n} from \"@orderly.network/types\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { SWRConfiguration } from \"swr\";\nimport { useQuery } from \"../useQuery\";\nimport { prop } from \"ramda\";\nimport { isTestnet } from \"@orderly.network/utils\";\nimport { TestnetChains, nativeTokenAddress } from \"@orderly.network/types\";\nimport { OrderlyContext } from \"../orderlyContext\";\n\nexport type Chain = API.Chain & {\n nativeToken?: API.TokenInfo;\n};\n\nexport type Chains<\n T extends NetworkId | undefined = undefined,\n K extends keyof API.Chain | undefined = undefined\n> = T extends NetworkId\n ? K extends keyof API.Chain\n ? API.Chain[K][]\n : API.Chain[]\n : K extends keyof API.Chain\n ? {\n testnet: API.Chain[K][];\n mainnet: API.Chain[K][];\n }\n : {\n testnet: API.Chain[];\n mainnet: API.Chain[];\n };\n\nexport type UseChainsOptions = {\n filter?: (item: API.Chain) => boolean;\n pick?: \"dexs\" | \"network_infos\" | \"token_infos\";\n} & SWRConfiguration;\n\nexport type UseChainsReturnObject = {\n findByChainId: (chainId: number, field?: string) => Chain | undefined;\n error: any;\n};\n\nexport function useChains(\n networkId?: undefined,\n options?: undefined\n): [Chains<undefined, undefined>, UseChainsReturnObject];\n\nexport function useChains<\n T extends NetworkId | undefined,\n K extends UseChainsOptions | undefined\n>(\n networkId?: T,\n options?: K\n): [\n Chains<\n T,\n K extends UseChainsOptions\n ? K[\"pick\"] extends keyof API.Chain\n ? K[\"pick\"]\n : undefined\n : undefined\n >,\n UseChainsReturnObject\n];\n\nexport function useChains(\n networkId?: NetworkId,\n options: UseChainsOptions = {}\n) {\n const { pick: pickField, ...swrOptions } = options;\n const { filteredChains: allowedChains, configStore } =\n useContext(OrderlyContext);\n\n const filterFun = useRef(options?.filter);\n filterFun.current = options?.filter;\n\n const chainsMap = useRef(new Map<number, Chain>());\n\n const commonSwrOpts = {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n // If false, undefined data gets cached against the key.\n revalidateOnMount: true,\n // dont duplicate a request w/ same key for 1hr\n dedupingInterval: 3_600_000,\n ...swrOptions,\n };\n\n // only prod env return mainnet chains info\n const { data: tokenChainsRes, error: tokenError } = useQuery<API.Chain[]>(\n \"https://api-evm.orderly.org/v1/public/token\",\n { ...commonSwrOpts }\n );\n\n const brokerId = configStore.get(\"brokerId\");\n\n // only prod env return mainnet chains info\n const { data: chainInfos, error: chainInfoErr } = useQuery(\n `https://api-evm.orderly.org/v1/public/chain_info${\n brokerId !== \"orderly\" ? `?broker_id=${brokerId}` : \"\"\n }`,\n { ...commonSwrOpts }\n );\n\n const chains = useMemo(() => {\n const tokenChains = fillChainsInfo(tokenChainsRes, filterFun.current);\n\n let testnetArr = [...TestnetChains] as API.Chain[];\n\n tokenChains?.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n testnetArr.forEach((chain) => {\n chainsMap.current.set(chain.network_infos?.chain_id, chain);\n });\n\n let mainnetArr: API.Chain[] = [];\n\n mainnetArr = filterAndUpdateChains(\n tokenChains,\n chainInfos,\n filterFun.current\n );\n\n mainnetArr.forEach((item) => {\n const chainId = item.network_infos?.chain_id;\n chainsMap.current.set(chainId, item);\n updateTestnetInfo(testnetArr, chainId, item);\n });\n\n mainnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n testnetArr.sort((a, b) => {\n return a.network_infos.bridgeless ? -1 : 1;\n });\n\n mainnetArr = filterByAllowedChains(mainnetArr, allowedChains?.mainnet);\n testnetArr = filterByAllowedChains(testnetArr, allowedChains?.testnet);\n\n if (!!pickField) {\n //@ts-ignore\n testnetArr = testnetArr.map((item) => item[pickField]);\n //@ts-ignore\n mainnetArr = mainnetArr.map((item) => item[pickField]);\n }\n\n if (networkId === \"mainnet\") {\n return mainnetArr;\n }\n\n if (networkId === \"testnet\") {\n return testnetArr;\n }\n\n return {\n testnet: testnetArr,\n mainnet: mainnetArr,\n };\n }, [networkId, tokenChainsRes, chainInfos, pickField, allowedChains]);\n\n const findByChainId = useCallback(\n (chainId: number, field?: string) => {\n const chain = chainsMap.current.get(chainId);\n\n if (chain) {\n chain.nativeToken =\n chain.token_infos?.find(\n (item) => item.address === nativeTokenAddress\n ) ||\n ({\n symbol: chain.network_infos?.currency_symbol,\n } as any);\n }\n\n if (typeof field === \"string\") {\n return prop(field as never, chain);\n }\n\n return chain;\n },\n [chains, chainsMap]\n );\n\n return [\n chains,\n {\n findByChainId,\n error: tokenError,\n },\n ];\n}\n\n/** orderly chains array form (/v1/public/token) api */\nexport function fillChainsInfo(\n chains?: API.Chain[],\n filter?: (chain: any) => boolean\n) {\n let _chains: API.Chain[] = [];\n\n chains?.forEach((item) => {\n item.chain_details.forEach((chain: any) => {\n const chainId = Number(chain.chain_id);\n const chainInfo = chainsInfoMap.get(chainId);\n\n const _chain: any = {\n network_infos: {\n name: chain.chain_name ?? chainInfo?.chainName ?? \"--\",\n chain_id: chainId,\n withdrawal_fee: chain.withdrawal_fee,\n cross_chain_withdrawal_fee: chain.cross_chain_withdrawal_fee,\n bridgeless: true,\n },\n token_infos: [\n {\n symbol: item.token,\n address: chain.contract_address,\n decimals: chain.decimals,\n display_name: chain.display_name,\n },\n ],\n };\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n _chains.push(_chain);\n });\n });\n\n return _chains;\n}\n\n/** filter chains and update network_infos by chain_info api (v1/public/chain_info) */\nexport function filterAndUpdateChains(\n chains: API.Chain[],\n chainInfos: any,\n filter?: (chain: any) => boolean\n) {\n const filterChains: API.Chain[] = [];\n\n chains.forEach((chain) => {\n let _chain = { ...chain };\n\n const networkInfo = chainInfos?.find(\n (item: any) => item.chain_id == chain.network_infos.chain_id\n );\n\n if (networkInfo) {\n const { name, public_rpc_url, currency_symbol, explorer_base_url } =\n networkInfo;\n _chain.network_infos = {\n ..._chain.network_infos,\n name,\n shortName: name,\n public_rpc_url,\n currency_symbol,\n bridge_enable: true,\n mainnet: true,\n explorer_base_url,\n est_txn_mins: null,\n };\n }\n\n if (typeof filter === \"function\") {\n if (!filter(_chain)) return;\n }\n\n if (networkInfo) {\n filterChains.push(_chain);\n }\n });\n\n return filterChains;\n}\n\n/** if chain is testnet, update testnet network_infos */\nexport function updateTestnetInfo(\n testnetArr: API.Chain[],\n chainId: number,\n chain: API.Chain\n) {\n if (isTestnet(chainId)) {\n const index = testnetArr?.findIndex(\n (item) => item.network_infos.chain_id === chainId\n );\n if (index > -1) {\n testnetArr[index] = chain;\n }\n }\n}\n\nexport function filterByAllowedChains(\n chains: API.Chain[],\n allowedChains?: FlatChain[]\n) {\n if (!allowedChains) {\n return chains;\n }\n\n return chains.filter((chain) =>\n allowedChains.some(\n (allowedChain) =>\n allowedChain.id === parseInt(chain?.network_infos?.chain_id as any)\n )\n );\n}\n"],"names":["fillChainsInfo","filterAndUpdateChains","filterByAllowedChains","updateTestnetInfo","useChains","networkId","options","pick","pickField","swrOptions","filteredChains","allowedChains","configStore","useContext","OrderlyContext","filterFun","useRef","filter","current","chainsMap","Map","commonSwrOpts","revalidateIfStale","revalidateOnFocus","revalidateOnReconnect","revalidateOnMount","dedupingInterval","data","tokenChainsRes","error","tokenError","useQuery","brokerId","get","chainInfos","chainInfoErr","chains","useMemo","tokenChains","testnetArr","TestnetChains","forEach","item","chainId","network_infos","chain_id","set","chain","mainnetArr","sort","a","b","bridgeless","mainnet","testnet","map","findByChainId","useCallback","field","nativeToken","token_infos","find","address","nativeTokenAddress","symbol","currency_symbol","prop","_chains","chain_details","Number","chainInfo","chainsInfoMap","_chain","name","chain_name","chainName","withdrawal_fee","cross_chain_withdrawal_fee","token","contract_address","decimals","display_name","push","filterChains","networkInfo","public_rpc_url","explorer_base_url","shortName","bridge_enable","est_txn_mins","isTestnet","index","findIndex","some","allowedChain","id","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/lib/version.d.ts
CHANGED
package/lib/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,CAAC,EAAE;YAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL;CACJ;;AAMD,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,mBAAmB,CAAC,EAAE;YAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL;CACJ;;AAMD,wBAA+B"}
|
package/lib/version.js
CHANGED
|
@@ -10,8 +10,8 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
if (typeof window !== 'undefined') {
|
|
12
12
|
window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};
|
|
13
|
-
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.
|
|
13
|
+
window.__ORDERLY_VERSION__["@orderly.network/hooks"] = "1.5.9-alpha.0";
|
|
14
14
|
}
|
|
15
|
-
const _default = "1.5.
|
|
15
|
+
const _default = "1.5.9-alpha.0";
|
|
16
16
|
|
|
17
17
|
//# sourceMappingURL=version.js.map
|
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/hooks\"] = \"1.5.9-alpha.0\";\n};\n\nexport default \"1.5.9-alpha.0\";\n"],"names":["window","__ORDERLY_VERSION__"],"rangeMappings":";;;;;;;;;;;;;;","mappings":";;;;+BAaA;;;eAAA;;;AALA,IAAG,OAAOA,WAAW,aAAa;IAC9BA,OAAOC,mBAAmB,GAAGD,OAAOC,mBAAmB,IAAI,CAAC;IAC5DD,OAAOC,mBAAmB,CAAC,yBAAyB,GAAG;AAC3D;MAEA,WAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/hooks",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.9-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"tsup": "^7.1.0",
|
|
34
34
|
"typedoc": "^0.24.8",
|
|
35
35
|
"typescript": "^5.1.6",
|
|
36
|
-
"tsconfig": "0.3.
|
|
36
|
+
"tsconfig": "0.3.9-alpha.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@akamfoad/qr": "^0.4.0",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"swr": "2.2.4",
|
|
42
42
|
"use-constant": "^1.1.1",
|
|
43
43
|
"use-debounce": "^9.0.4",
|
|
44
|
-
"@orderly.network/core": "1.5.
|
|
45
|
-
"@orderly.network/net": "1.5.
|
|
46
|
-
"@orderly.network/perp": "3.3.
|
|
47
|
-
"@orderly.network/types": "1.5.
|
|
48
|
-
"@orderly.network/utils": "1.5.
|
|
44
|
+
"@orderly.network/core": "1.5.9-alpha.0",
|
|
45
|
+
"@orderly.network/net": "1.5.9-alpha.0",
|
|
46
|
+
"@orderly.network/perp": "3.3.9-alpha.0",
|
|
47
|
+
"@orderly.network/types": "1.5.9-alpha.0",
|
|
48
|
+
"@orderly.network/utils": "1.5.9-alpha.0"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|