@pear-protocol/symmio-client 0.3.1 → 0.3.3
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/dist/react/index.d.mts +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.js +77 -194
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +77 -194
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/provider.js +19 -95
- package/dist/react/provider.js.map +1 -1
- package/dist/react/provider.mjs +19 -95
- package/dist/react/provider.mjs.map +1 -1
- package/package.json +2 -2
package/dist/react/index.d.mts
CHANGED
|
@@ -8559,6 +8559,7 @@ type SymmTradeAuthParams = {
|
|
|
8559
8559
|
address?: Address;
|
|
8560
8560
|
chainId?: number;
|
|
8561
8561
|
};
|
|
8562
|
+
|
|
8562
8563
|
type OpenBasketMutationRequest = WithOptionalAuthToken<OpenBasketPositionRequest>;
|
|
8563
8564
|
type ClosePositionMutationRequest = WithOptionalAuthToken<ClosePositionRequest>;
|
|
8564
8565
|
type CloseAllPositionsMutationRequest = WithOptionalAuthToken<Parameters<NonNullable<ReturnType<typeof useSymmContext>['symmCoreClient']>['positions']['closeAll']>[0]>;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -8559,6 +8559,7 @@ type SymmTradeAuthParams = {
|
|
|
8559
8559
|
address?: Address;
|
|
8560
8560
|
chainId?: number;
|
|
8561
8561
|
};
|
|
8562
|
+
|
|
8562
8563
|
type OpenBasketMutationRequest = WithOptionalAuthToken<OpenBasketPositionRequest>;
|
|
8563
8564
|
type ClosePositionMutationRequest = WithOptionalAuthToken<ClosePositionRequest>;
|
|
8564
8565
|
type CloseAllPositionsMutationRequest = WithOptionalAuthToken<Parameters<NonNullable<ReturnType<typeof useSymmContext>['symmCoreClient']>['positions']['closeAll']>[0]>;
|
package/dist/react/index.js
CHANGED
|
@@ -550,12 +550,6 @@ var useSymmWsStore = zustand.create((set) => ({
|
|
|
550
550
|
function asUnsubscribeFn(value) {
|
|
551
551
|
return typeof value === "function" ? value : null;
|
|
552
552
|
}
|
|
553
|
-
function logSymmWs(event, details) {
|
|
554
|
-
if (typeof window === "undefined") {
|
|
555
|
-
return;
|
|
556
|
-
}
|
|
557
|
-
console.debug("[symm-ws]", event, details ?? {});
|
|
558
|
-
}
|
|
559
553
|
function useSymmWs(params = {}) {
|
|
560
554
|
const ctx = react.useContext(SymmContext);
|
|
561
555
|
const queryClient = reactQuery.useQueryClient();
|
|
@@ -566,11 +560,6 @@ function useSymmWs(params = {}) {
|
|
|
566
560
|
const chainId = params.chainId ?? ctx?.chainId ?? 42161;
|
|
567
561
|
react.useEffect(() => {
|
|
568
562
|
if (!symmCoreClient || !accountAddress) {
|
|
569
|
-
logSymmWs("setup:skip", {
|
|
570
|
-
hasClient: !!symmCoreClient,
|
|
571
|
-
accountAddress,
|
|
572
|
-
chainId
|
|
573
|
-
});
|
|
574
563
|
setConnected(false);
|
|
575
564
|
return;
|
|
576
565
|
}
|
|
@@ -578,52 +567,21 @@ function useSymmWs(params = {}) {
|
|
|
578
567
|
const addr = accountAddress;
|
|
579
568
|
const unsubscribers = [];
|
|
580
569
|
let cancelled = false;
|
|
581
|
-
logSymmWs("setup:start", {
|
|
582
|
-
accountAddress: addr,
|
|
583
|
-
chainId,
|
|
584
|
-
alreadyConnected: typeof ws.isConnected === "function" ? ws.isConnected() : void 0
|
|
585
|
-
});
|
|
586
570
|
const removeOnConnect = ws.onConnect(() => {
|
|
587
|
-
logSymmWs("connection:connected", {
|
|
588
|
-
accountAddress: addr,
|
|
589
|
-
chainId
|
|
590
|
-
});
|
|
591
571
|
setConnected(true);
|
|
592
572
|
});
|
|
593
573
|
const removeOnDisconnect = ws.onDisconnect(() => {
|
|
594
|
-
logSymmWs("connection:disconnected", {
|
|
595
|
-
accountAddress: addr,
|
|
596
|
-
chainId
|
|
597
|
-
});
|
|
598
574
|
setConnected(false);
|
|
599
575
|
});
|
|
600
|
-
const removeOnError = asUnsubscribeFn(
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
chainId,
|
|
605
|
-
error: error instanceof Error ? error.message : String(error)
|
|
606
|
-
});
|
|
607
|
-
})
|
|
608
|
-
);
|
|
609
|
-
const removeOnWelcome = asUnsubscribeFn(
|
|
610
|
-
ws.onWelcome?.((message) => {
|
|
611
|
-
logSymmWs("connection:welcome", {
|
|
612
|
-
accountAddress: addr,
|
|
613
|
-
chainId,
|
|
614
|
-
message
|
|
615
|
-
});
|
|
616
|
-
})
|
|
617
|
-
);
|
|
576
|
+
const removeOnError = asUnsubscribeFn(ws.onError?.(() => {
|
|
577
|
+
}));
|
|
578
|
+
const removeOnWelcome = asUnsubscribeFn(ws.onWelcome?.(() => {
|
|
579
|
+
}));
|
|
618
580
|
unsubscribers.push(removeOnConnect, removeOnDisconnect);
|
|
619
581
|
if (removeOnError) unsubscribers.push(removeOnError);
|
|
620
582
|
if (removeOnWelcome) unsubscribers.push(removeOnWelcome);
|
|
621
583
|
const positionsUnsub = asUnsubscribeFn(
|
|
622
584
|
ws.subscribeToPositions(addr, chainId, () => {
|
|
623
|
-
logSymmWs("message:positions", {
|
|
624
|
-
accountAddress: addr,
|
|
625
|
-
chainId
|
|
626
|
-
});
|
|
627
585
|
queryClient.invalidateQueries({
|
|
628
586
|
queryKey: symmKeys.positionsRoot
|
|
629
587
|
});
|
|
@@ -632,10 +590,6 @@ function useSymmWs(params = {}) {
|
|
|
632
590
|
if (positionsUnsub) unsubscribers.push(positionsUnsub);
|
|
633
591
|
const openOrdersUnsub = asUnsubscribeFn(
|
|
634
592
|
ws.subscribeToOpenOrders(addr, chainId, () => {
|
|
635
|
-
logSymmWs("message:open-orders", {
|
|
636
|
-
accountAddress: addr,
|
|
637
|
-
chainId
|
|
638
|
-
});
|
|
639
593
|
queryClient.invalidateQueries({
|
|
640
594
|
queryKey: symmKeys.openOrdersRoot
|
|
641
595
|
});
|
|
@@ -644,10 +598,6 @@ function useSymmWs(params = {}) {
|
|
|
644
598
|
if (openOrdersUnsub) unsubscribers.push(openOrdersUnsub);
|
|
645
599
|
const tradesUnsub = asUnsubscribeFn(
|
|
646
600
|
ws.subscribeToTrades(addr, chainId, () => {
|
|
647
|
-
logSymmWs("message:trades", {
|
|
648
|
-
accountAddress: addr,
|
|
649
|
-
chainId
|
|
650
|
-
});
|
|
651
601
|
queryClient.invalidateQueries({
|
|
652
602
|
queryKey: symmKeys.tradeHistoryRoot
|
|
653
603
|
});
|
|
@@ -656,10 +606,6 @@ function useSymmWs(params = {}) {
|
|
|
656
606
|
if (tradesUnsub) unsubscribers.push(tradesUnsub);
|
|
657
607
|
const accountSummaryUnsub = asUnsubscribeFn(
|
|
658
608
|
ws.subscribeToAccountSummary(addr, chainId, () => {
|
|
659
|
-
logSymmWs("message:account-summary", {
|
|
660
|
-
accountAddress: addr,
|
|
661
|
-
chainId
|
|
662
|
-
});
|
|
663
609
|
queryClient.invalidateQueries({
|
|
664
610
|
queryKey: symmKeys.balances(accountAddress, chainId)
|
|
665
611
|
});
|
|
@@ -671,10 +617,6 @@ function useSymmWs(params = {}) {
|
|
|
671
617
|
if (accountSummaryUnsub) unsubscribers.push(accountSummaryUnsub);
|
|
672
618
|
const notificationsUnsub = asUnsubscribeFn(
|
|
673
619
|
ws.subscribeToNotifications(addr, chainId, () => {
|
|
674
|
-
logSymmWs("message:notifications", {
|
|
675
|
-
accountAddress: addr,
|
|
676
|
-
chainId
|
|
677
|
-
});
|
|
678
620
|
queryClient.invalidateQueries({
|
|
679
621
|
queryKey: symmKeys.notifications({ accountAddress, chainId })
|
|
680
622
|
});
|
|
@@ -686,10 +628,6 @@ function useSymmWs(params = {}) {
|
|
|
686
628
|
if (notificationsUnsub) unsubscribers.push(notificationsUnsub);
|
|
687
629
|
const tpslUnsub = asUnsubscribeFn(
|
|
688
630
|
ws.subscribeToTpsl(addr, chainId, () => {
|
|
689
|
-
logSymmWs("message:tpsl", {
|
|
690
|
-
accountAddress: addr,
|
|
691
|
-
chainId
|
|
692
|
-
});
|
|
693
631
|
queryClient.invalidateQueries({ queryKey: symmKeys.tpslOrdersRoot });
|
|
694
632
|
queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
|
|
695
633
|
})
|
|
@@ -697,10 +635,6 @@ function useSymmWs(params = {}) {
|
|
|
697
635
|
if (tpslUnsub) unsubscribers.push(tpslUnsub);
|
|
698
636
|
const twapUnsub = asUnsubscribeFn(
|
|
699
637
|
ws.subscribeToTwapOrders(addr, chainId, () => {
|
|
700
|
-
logSymmWs("message:twap-orders", {
|
|
701
|
-
accountAddress: addr,
|
|
702
|
-
chainId
|
|
703
|
-
});
|
|
704
638
|
queryClient.invalidateQueries({ queryKey: symmKeys.twapOrdersRoot });
|
|
705
639
|
queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
|
|
706
640
|
})
|
|
@@ -708,10 +642,6 @@ function useSymmWs(params = {}) {
|
|
|
708
642
|
if (twapUnsub) unsubscribers.push(twapUnsub);
|
|
709
643
|
const triggerOrdersUnsub = asUnsubscribeFn(
|
|
710
644
|
ws.subscribeToTriggerOrders(addr, chainId, () => {
|
|
711
|
-
logSymmWs("message:trigger-orders", {
|
|
712
|
-
accountAddress: addr,
|
|
713
|
-
chainId
|
|
714
|
-
});
|
|
715
645
|
queryClient.invalidateQueries({ queryKey: symmKeys.triggerOrdersRoot });
|
|
716
646
|
queryClient.invalidateQueries({ queryKey: symmKeys.openOrdersRoot });
|
|
717
647
|
})
|
|
@@ -719,10 +649,6 @@ function useSymmWs(params = {}) {
|
|
|
719
649
|
if (triggerOrdersUnsub) unsubscribers.push(triggerOrdersUnsub);
|
|
720
650
|
const executionsUnsub = asUnsubscribeFn(
|
|
721
651
|
ws.subscribeToExecutions(addr, chainId, () => {
|
|
722
|
-
logSymmWs("message:executions", {
|
|
723
|
-
accountAddress: addr,
|
|
724
|
-
chainId
|
|
725
|
-
});
|
|
726
652
|
queryClient.invalidateQueries({
|
|
727
653
|
queryKey: symmKeys.positionsRoot
|
|
728
654
|
});
|
|
@@ -736,27 +662,14 @@ function useSymmWs(params = {}) {
|
|
|
736
662
|
if (cancelled) {
|
|
737
663
|
return;
|
|
738
664
|
}
|
|
739
|
-
|
|
740
|
-
accountAddress: addr,
|
|
741
|
-
chainId
|
|
742
|
-
});
|
|
743
|
-
}).catch((error) => {
|
|
665
|
+
}).catch(() => {
|
|
744
666
|
if (cancelled) {
|
|
745
667
|
return;
|
|
746
668
|
}
|
|
747
|
-
logSymmWs("connection:connect-failed", {
|
|
748
|
-
accountAddress: addr,
|
|
749
|
-
chainId,
|
|
750
|
-
error: error instanceof Error ? error.message : String(error)
|
|
751
|
-
});
|
|
752
669
|
setConnected(false);
|
|
753
670
|
});
|
|
754
671
|
return () => {
|
|
755
672
|
cancelled = true;
|
|
756
|
-
logSymmWs("cleanup:start", {
|
|
757
|
-
accountAddress: addr,
|
|
758
|
-
chainId
|
|
759
|
-
});
|
|
760
673
|
unsubscribers.forEach((unsubscribe) => unsubscribe());
|
|
761
674
|
ws.disconnect();
|
|
762
675
|
setConnected(false);
|
|
@@ -764,6 +677,9 @@ function useSymmWs(params = {}) {
|
|
|
764
677
|
}, [symmCoreClient, accountAddress, chainId, queryClient, setConnected]);
|
|
765
678
|
return { isConnected };
|
|
766
679
|
}
|
|
680
|
+
function trimTrailingSlashes(value) {
|
|
681
|
+
return value.replace(/\/+$/, "");
|
|
682
|
+
}
|
|
767
683
|
function SymmProvider({
|
|
768
684
|
chainId = 42161,
|
|
769
685
|
address,
|
|
@@ -775,13 +691,21 @@ function SymmProvider({
|
|
|
775
691
|
symmioConfig,
|
|
776
692
|
children
|
|
777
693
|
}) {
|
|
694
|
+
const normalizedApiUrl = react.useMemo(
|
|
695
|
+
() => trimTrailingSlashes(symmCoreConfig.apiUrl),
|
|
696
|
+
[symmCoreConfig.apiUrl]
|
|
697
|
+
);
|
|
698
|
+
const normalizedWsUrl = react.useMemo(
|
|
699
|
+
() => symmCoreConfig.wsUrl ? trimTrailingSlashes(symmCoreConfig.wsUrl) : void 0,
|
|
700
|
+
[symmCoreConfig.wsUrl]
|
|
701
|
+
);
|
|
778
702
|
const symmCoreClient = react.useMemo(() => {
|
|
779
703
|
return symmCore.createSymmSDK({
|
|
780
|
-
apiUrl:
|
|
781
|
-
wsUrl:
|
|
704
|
+
apiUrl: normalizedApiUrl,
|
|
705
|
+
wsUrl: normalizedWsUrl,
|
|
782
706
|
defaultChainId: chainId
|
|
783
707
|
});
|
|
784
|
-
}, [chainId,
|
|
708
|
+
}, [chainId, normalizedApiUrl, normalizedWsUrl]);
|
|
785
709
|
const value = react.useMemo(
|
|
786
710
|
() => ({
|
|
787
711
|
symmCoreClient,
|
|
@@ -1052,12 +976,6 @@ function clearAuthState(queryClient, accountAddress, chainId, signerAddress) {
|
|
|
1052
976
|
}
|
|
1053
977
|
|
|
1054
978
|
// src/react/hooks/use-symm-auth.ts
|
|
1055
|
-
function logSymmAuth(event, details) {
|
|
1056
|
-
if (typeof window === "undefined") {
|
|
1057
|
-
return;
|
|
1058
|
-
}
|
|
1059
|
-
console.log("[symm-auth]", event, details ?? {});
|
|
1060
|
-
}
|
|
1061
979
|
function useSymmAuth(params) {
|
|
1062
980
|
const context = useSymmContext();
|
|
1063
981
|
const queryClient = reactQuery.useQueryClient();
|
|
@@ -1071,20 +989,10 @@ function useSymmAuth(params) {
|
|
|
1071
989
|
async (accountAddress, options) => {
|
|
1072
990
|
const resolvedAccountAddress = accountAddress ?? activeAccountAddress;
|
|
1073
991
|
if (!resolvedAccountAddress) {
|
|
1074
|
-
logSymmAuth("refresh:skip-no-active-account", {
|
|
1075
|
-
signerAddress: address,
|
|
1076
|
-
chainId
|
|
1077
|
-
});
|
|
1078
992
|
return null;
|
|
1079
993
|
}
|
|
1080
994
|
if (!walletClient || !address) return null;
|
|
1081
995
|
try {
|
|
1082
|
-
logSymmAuth("refresh:fetch-start", {
|
|
1083
|
-
signerAddress: address,
|
|
1084
|
-
accountAddress: resolvedAccountAddress,
|
|
1085
|
-
chainId,
|
|
1086
|
-
force: options?.force ?? false
|
|
1087
|
-
});
|
|
1088
996
|
const tokenEntry = await resolveAuthTokenEntry({
|
|
1089
997
|
queryClient,
|
|
1090
998
|
walletClient,
|
|
@@ -1095,20 +1003,9 @@ function useSymmAuth(params) {
|
|
|
1095
1003
|
force: options?.force
|
|
1096
1004
|
});
|
|
1097
1005
|
const token2 = tokenEntry?.token ?? null;
|
|
1098
|
-
logSymmAuth("refresh:fetch-success", {
|
|
1099
|
-
signerAddress: address,
|
|
1100
|
-
accountAddress: resolvedAccountAddress,
|
|
1101
|
-
chainId
|
|
1102
|
-
});
|
|
1103
1006
|
return token2;
|
|
1104
1007
|
} catch (error) {
|
|
1105
1008
|
clearPersistedAuthState(resolvedAccountAddress, chainId);
|
|
1106
|
-
logSymmAuth("refresh:fetch-failed", {
|
|
1107
|
-
signerAddress: address,
|
|
1108
|
-
accountAddress: resolvedAccountAddress,
|
|
1109
|
-
chainId,
|
|
1110
|
-
error: error instanceof Error ? error.message : String(error)
|
|
1111
|
-
});
|
|
1112
1009
|
return null;
|
|
1113
1010
|
}
|
|
1114
1011
|
},
|
|
@@ -2356,9 +2253,53 @@ function useSymmApproveMutation(params, options) {
|
|
|
2356
2253
|
}
|
|
2357
2254
|
});
|
|
2358
2255
|
}
|
|
2256
|
+
function splitTradeHookArgs(paramsOrOptions, options) {
|
|
2257
|
+
if (paramsOrOptions && "mutation" in paramsOrOptions) {
|
|
2258
|
+
return {
|
|
2259
|
+
params: {},
|
|
2260
|
+
options: paramsOrOptions
|
|
2261
|
+
};
|
|
2262
|
+
}
|
|
2263
|
+
return {
|
|
2264
|
+
params: paramsOrOptions ?? {},
|
|
2265
|
+
options
|
|
2266
|
+
};
|
|
2267
|
+
}
|
|
2268
|
+
function useResolveTradeAuthToken(params = {}) {
|
|
2269
|
+
const context = useSymmContext();
|
|
2270
|
+
const queryClient = reactQuery.useQueryClient();
|
|
2271
|
+
const address = params.address ?? context.address;
|
|
2272
|
+
const chainId = params.chainId ?? context.chainId;
|
|
2273
|
+
return react.useCallback(
|
|
2274
|
+
async (providedAuthToken, accountAddress, overrideChainId) => {
|
|
2275
|
+
const resolvedChainId = overrideChainId ?? chainId;
|
|
2276
|
+
if (providedAuthToken) {
|
|
2277
|
+
return providedAuthToken;
|
|
2278
|
+
}
|
|
2279
|
+
const resolvedAccountAddress = accountAddress ?? address;
|
|
2280
|
+
if (!resolvedAccountAddress) {
|
|
2281
|
+
return null;
|
|
2282
|
+
}
|
|
2283
|
+
const inMemoryToken = getAuthTokenFromRuntimeCache(
|
|
2284
|
+
queryClient,
|
|
2285
|
+
resolvedAccountAddress,
|
|
2286
|
+
resolvedChainId,
|
|
2287
|
+
address
|
|
2288
|
+
);
|
|
2289
|
+
if (inMemoryToken) {
|
|
2290
|
+
return inMemoryToken;
|
|
2291
|
+
}
|
|
2292
|
+
return null;
|
|
2293
|
+
},
|
|
2294
|
+
[address, chainId, queryClient]
|
|
2295
|
+
);
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
// src/react/hooks/use-symm-cancel-close.ts
|
|
2359
2299
|
function useSymmCancelClose(options) {
|
|
2360
2300
|
const { symmCoreClient, chainId, address } = useSymmContext();
|
|
2361
2301
|
const queryClient = reactQuery.useQueryClient();
|
|
2302
|
+
const resolveAuthToken = useResolveTradeAuthToken({ address, chainId });
|
|
2362
2303
|
return reactQuery.useMutation({
|
|
2363
2304
|
...withSymmMutationConfig(options?.mutation, {
|
|
2364
2305
|
onSuccess: () => {
|
|
@@ -2375,14 +2316,12 @@ function useSymmCancelClose(options) {
|
|
|
2375
2316
|
if (!symmCoreClient) {
|
|
2376
2317
|
throw new Error("symm-core client not available");
|
|
2377
2318
|
}
|
|
2378
|
-
const resolvedAccountAddress = accountAddress ?? address;
|
|
2379
2319
|
const resolvedChainId = overrideChainId ?? chainId;
|
|
2380
|
-
const resolvedAuthToken =
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
resolvedChainId
|
|
2384
|
-
|
|
2385
|
-
) : null);
|
|
2320
|
+
const resolvedAuthToken = await resolveAuthToken(
|
|
2321
|
+
authToken,
|
|
2322
|
+
accountAddress,
|
|
2323
|
+
resolvedChainId
|
|
2324
|
+
);
|
|
2386
2325
|
if (!resolvedAuthToken) {
|
|
2387
2326
|
throw new Error("auth token is required to cancel a pending close");
|
|
2388
2327
|
}
|
|
@@ -2397,6 +2336,7 @@ function useSymmCancelClose(options) {
|
|
|
2397
2336
|
function useSymmCloseOrder(options) {
|
|
2398
2337
|
const { symmCoreClient, address, chainId } = useSymmContext();
|
|
2399
2338
|
const queryClient = reactQuery.useQueryClient();
|
|
2339
|
+
const resolveAuthToken = useResolveTradeAuthToken({ address, chainId });
|
|
2400
2340
|
return reactQuery.useMutation({
|
|
2401
2341
|
...withSymmMutationConfig(options?.mutation, {
|
|
2402
2342
|
onSuccess: () => {
|
|
@@ -2409,16 +2349,17 @@ function useSymmCloseOrder(options) {
|
|
|
2409
2349
|
throw new Error("symm-core client not available");
|
|
2410
2350
|
}
|
|
2411
2351
|
const typedRequest = request;
|
|
2412
|
-
const
|
|
2352
|
+
const authToken = await resolveAuthToken(
|
|
2353
|
+
typedRequest.authToken,
|
|
2354
|
+
typedRequest.accountAddress
|
|
2355
|
+
);
|
|
2356
|
+
if (!authToken) {
|
|
2357
|
+
throw new Error("auth token is required to close an order");
|
|
2358
|
+
}
|
|
2413
2359
|
return symmCoreClient.orders.close(request.id, {
|
|
2414
2360
|
kind: request.kind,
|
|
2415
2361
|
type: request.type,
|
|
2416
|
-
authToken
|
|
2417
|
-
queryClient,
|
|
2418
|
-
resolvedAccountAddress,
|
|
2419
|
-
chainId,
|
|
2420
|
-
address
|
|
2421
|
-
) ?? void 0 : void 0)
|
|
2362
|
+
authToken
|
|
2422
2363
|
});
|
|
2423
2364
|
}
|
|
2424
2365
|
});
|
|
@@ -25528,64 +25469,6 @@ function useSymmBalances(params) {
|
|
|
25528
25469
|
enabled: internalEnabled && (params.query?.enabled ?? true)
|
|
25529
25470
|
});
|
|
25530
25471
|
}
|
|
25531
|
-
function logTradeAuth(event, details) {
|
|
25532
|
-
if (typeof window === "undefined") {
|
|
25533
|
-
return;
|
|
25534
|
-
}
|
|
25535
|
-
console.debug("[symm-trade]", event, details ?? {});
|
|
25536
|
-
}
|
|
25537
|
-
function splitTradeHookArgs(paramsOrOptions, options) {
|
|
25538
|
-
if (paramsOrOptions && "mutation" in paramsOrOptions) {
|
|
25539
|
-
return {
|
|
25540
|
-
params: {},
|
|
25541
|
-
options: paramsOrOptions
|
|
25542
|
-
};
|
|
25543
|
-
}
|
|
25544
|
-
return {
|
|
25545
|
-
params: paramsOrOptions ?? {},
|
|
25546
|
-
options
|
|
25547
|
-
};
|
|
25548
|
-
}
|
|
25549
|
-
function useResolveTradeAuthToken(params = {}) {
|
|
25550
|
-
const context = useSymmContext();
|
|
25551
|
-
const queryClient = reactQuery.useQueryClient();
|
|
25552
|
-
const address = params.address ?? context.address;
|
|
25553
|
-
const chainId = params.chainId ?? context.chainId;
|
|
25554
|
-
return react.useCallback(
|
|
25555
|
-
async (providedAuthToken, accountAddress) => {
|
|
25556
|
-
if (providedAuthToken) {
|
|
25557
|
-
logTradeAuth("resolve-auth:provided", {
|
|
25558
|
-
accountAddress,
|
|
25559
|
-
chainId
|
|
25560
|
-
});
|
|
25561
|
-
return providedAuthToken;
|
|
25562
|
-
}
|
|
25563
|
-
const resolvedAccountAddress = accountAddress ?? address;
|
|
25564
|
-
if (!resolvedAccountAddress) {
|
|
25565
|
-
return null;
|
|
25566
|
-
}
|
|
25567
|
-
const inMemoryToken = getAuthTokenFromRuntimeCache(
|
|
25568
|
-
queryClient,
|
|
25569
|
-
resolvedAccountAddress,
|
|
25570
|
-
chainId,
|
|
25571
|
-
address
|
|
25572
|
-
);
|
|
25573
|
-
if (inMemoryToken) {
|
|
25574
|
-
logTradeAuth("resolve-auth:store-hit", {
|
|
25575
|
-
accountAddress: resolvedAccountAddress,
|
|
25576
|
-
chainId
|
|
25577
|
-
});
|
|
25578
|
-
return inMemoryToken;
|
|
25579
|
-
}
|
|
25580
|
-
logTradeAuth("resolve-auth:miss", {
|
|
25581
|
-
accountAddress: resolvedAccountAddress,
|
|
25582
|
-
chainId
|
|
25583
|
-
});
|
|
25584
|
-
return null;
|
|
25585
|
-
},
|
|
25586
|
-
[address, chainId, queryClient]
|
|
25587
|
-
);
|
|
25588
|
-
}
|
|
25589
25472
|
function useSymmOpenBasketMutation(options) {
|
|
25590
25473
|
const { symmCoreClient } = useSymmContext();
|
|
25591
25474
|
const queryClient = reactQuery.useQueryClient();
|