@pear-protocol/symmio-client 0.1.10 → 0.2.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/dist/react/index.d.mts +298 -7
- package/dist/react/index.d.ts +298 -7
- package/dist/react/index.js +498 -23
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +483 -24
- package/dist/react/index.mjs.map +1 -1
- package/package.json +6 -2
package/dist/react/index.js
CHANGED
|
@@ -24357,8 +24357,8 @@ function SymmProvider({
|
|
|
24357
24357
|
}) {
|
|
24358
24358
|
const { address, chainId: walletChainId } = wagmi.useAccount();
|
|
24359
24359
|
const publicClient = wagmi.usePublicClient();
|
|
24360
|
-
const { data: walletClient } = wagmi.useWalletClient();
|
|
24361
24360
|
const chainId = configChainId ?? walletChainId ?? 42161;
|
|
24361
|
+
const { data: walletClient } = wagmi.useWalletClient({ chainId });
|
|
24362
24362
|
const [accessToken, setAccessToken] = react.useState(null);
|
|
24363
24363
|
const prevAddressRef = react.useRef(address);
|
|
24364
24364
|
const prevChainRef = react.useRef(chainId);
|
|
@@ -24455,6 +24455,13 @@ function SymmProvider({
|
|
|
24455
24455
|
clearCachedToken(previousAddress, previousChainId);
|
|
24456
24456
|
}
|
|
24457
24457
|
}, [address, walletClient, chainId]);
|
|
24458
|
+
react.useEffect(() => {
|
|
24459
|
+
console.log("[SymmProvider] symmCoreConfig", {
|
|
24460
|
+
apiUrl: symmCoreConfig.apiUrl,
|
|
24461
|
+
wsUrl: symmCoreConfig.wsUrl,
|
|
24462
|
+
resolvedChainId: chainId
|
|
24463
|
+
});
|
|
24464
|
+
}, [symmCoreConfig.apiUrl, symmCoreConfig.wsUrl, chainId]);
|
|
24458
24465
|
const symmCoreClient = react.useMemo(() => {
|
|
24459
24466
|
return symmCore.createSymmSDK({
|
|
24460
24467
|
apiUrl: symmCoreConfig.apiUrl,
|
|
@@ -24517,24 +24524,38 @@ var ALL_TRADING_SELECTORS = [
|
|
|
24517
24524
|
// src/react/query-keys.ts
|
|
24518
24525
|
var symmKeys = {
|
|
24519
24526
|
all: ["symm"],
|
|
24520
|
-
accounts: (address) => ["symm", "accounts", address],
|
|
24527
|
+
accounts: (address, chainId) => ["symm", "accounts", address, chainId],
|
|
24528
|
+
accountsApi: (address, chainId) => ["symm", "accountsApi", address, chainId],
|
|
24529
|
+
accountsLength: (address, chainId) => ["symm", "accountsLength", address, chainId],
|
|
24530
|
+
accountsWithPositions: (address, chainId) => ["symm", "accountsWithPositions", address, chainId],
|
|
24521
24531
|
accountSummary: (address, chainId) => ["symm", "accountSummary", address, chainId],
|
|
24522
24532
|
accountData: (address, chainId) => ["symm", "accountData", address, chainId],
|
|
24523
|
-
signature: (address) => ["symm", "signature", address],
|
|
24524
|
-
approval: (owner, spender) => ["symm", "approval", owner, spender],
|
|
24533
|
+
signature: (address, chainId) => ["symm", "signature", address, chainId],
|
|
24534
|
+
approval: (owner, spender, chainId) => ["symm", "approval", owner, spender, chainId],
|
|
24525
24535
|
balances: (address, chainId) => ["symm", "balances", address, chainId],
|
|
24526
24536
|
positions: (address, chainId) => ["symm", "positions", address, chainId],
|
|
24527
24537
|
openOrders: (address, chainId) => ["symm", "openOrders", address, chainId],
|
|
24528
24538
|
tradeHistory: (address, chainId) => ["symm", "tradeHistory", address, chainId],
|
|
24529
24539
|
tpslOrders: (address, chainId) => ["symm", "tpslOrders", address, chainId],
|
|
24540
|
+
tpslOrdersList: (params) => ["symm", "tpslOrders", params],
|
|
24530
24541
|
twapOrders: (address, chainId) => ["symm", "twapOrders", address, chainId],
|
|
24542
|
+
triggerOrders: (params) => ["symm", "triggerOrders", params],
|
|
24543
|
+
triggerConfig: (orderId) => ["symm", "triggerConfig", orderId],
|
|
24531
24544
|
markets: (chainId, search) => ["symm", "markets", chainId, search],
|
|
24545
|
+
hedgerMarketById: (id, chainId) => ["symm", "hedgerMarketById", id, chainId],
|
|
24546
|
+
hedgerMarketBySymbol: (symbol, chainId) => ["symm", "hedgerMarketBySymbol", symbol, chainId],
|
|
24547
|
+
lockedParams: (marketName, leverage, chainId) => ["symm", "lockedParams", marketName, leverage, chainId],
|
|
24532
24548
|
hedgerMarkets: (request) => ["symm", "hedgerMarkets", request],
|
|
24533
24549
|
fundingRates: (chainId) => ["symm", "fundingRates", chainId],
|
|
24550
|
+
fundingPayments: (params) => ["symm", "fundingPayments", params],
|
|
24551
|
+
fundingHistory: (params) => ["symm", "fundingHistory", params],
|
|
24534
24552
|
portfolio: (address, chainId) => ["symm", "portfolio", address, chainId],
|
|
24535
24553
|
notifications: (address, chainId) => ["symm", "notifications", address, chainId],
|
|
24536
24554
|
unreadCount: (address, chainId) => ["symm", "unreadCount", address, chainId],
|
|
24537
24555
|
availableMargin: (address, chainId) => ["symm", "availableMargin", address, chainId],
|
|
24556
|
+
pendingIds: (address, chainId) => ["symm", "pendingIds", address, chainId],
|
|
24557
|
+
pendingInstantOpens: (accountAddress, chainId) => ["symm", "pendingInstantOpens", accountAddress, chainId],
|
|
24558
|
+
twapOrder: (orderId) => ["symm", "twapOrder", orderId],
|
|
24538
24559
|
delegation: (account, target, selectors, chainId) => ["symm", "delegation", account, target, selectors, chainId],
|
|
24539
24560
|
chartMetadata: (symbolsKey, positionKey) => ["symm", "chartMetadata", symbolsKey, positionKey]
|
|
24540
24561
|
};
|
|
@@ -24596,6 +24617,7 @@ function invalidateOrders(qc) {
|
|
|
24596
24617
|
qc.invalidateQueries({ queryKey: ["symm", "openOrders"] });
|
|
24597
24618
|
qc.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
|
|
24598
24619
|
qc.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
|
|
24620
|
+
qc.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
|
|
24599
24621
|
}
|
|
24600
24622
|
|
|
24601
24623
|
// src/react/hooks/use-symm-instant-trade.ts
|
|
@@ -24688,12 +24710,12 @@ function useSymmInstantTrade(params) {
|
|
|
24688
24710
|
}
|
|
24689
24711
|
var EMPTY_ACCOUNTS = [];
|
|
24690
24712
|
function useSymmAccounts(userAddress, options) {
|
|
24691
|
-
const { symmioClient } = useSymmContext();
|
|
24713
|
+
const { symmioClient, chainId } = useSymmContext();
|
|
24692
24714
|
const queryClient = reactQuery.useQueryClient();
|
|
24693
24715
|
const internalEnabled = !!symmioClient && !!userAddress;
|
|
24694
24716
|
const accountsQuery = reactQuery.useQuery({
|
|
24695
24717
|
...options?.query,
|
|
24696
|
-
queryKey: symmKeys.accounts(userAddress),
|
|
24718
|
+
queryKey: symmKeys.accounts(userAddress, chainId),
|
|
24697
24719
|
queryFn: () => symmioClient.account.getAll(userAddress),
|
|
24698
24720
|
enabled: internalEnabled && (options?.query?.enabled ?? true)
|
|
24699
24721
|
});
|
|
@@ -24703,7 +24725,7 @@ function useSymmAccounts(userAddress, options) {
|
|
|
24703
24725
|
return symmioClient.account.addAccount(name);
|
|
24704
24726
|
},
|
|
24705
24727
|
onSuccess: () => {
|
|
24706
|
-
queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress) });
|
|
24728
|
+
queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress, chainId) });
|
|
24707
24729
|
}
|
|
24708
24730
|
});
|
|
24709
24731
|
const editName = reactQuery.useMutation({
|
|
@@ -24715,7 +24737,7 @@ function useSymmAccounts(userAddress, options) {
|
|
|
24715
24737
|
return symmioClient.account.editName(accountAddress, name);
|
|
24716
24738
|
},
|
|
24717
24739
|
onSuccess: () => {
|
|
24718
|
-
queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress) });
|
|
24740
|
+
queryClient.invalidateQueries({ queryKey: symmKeys.accounts(userAddress, chainId) });
|
|
24719
24741
|
}
|
|
24720
24742
|
});
|
|
24721
24743
|
return {
|
|
@@ -24728,8 +24750,74 @@ function useSymmAccounts(userAddress, options) {
|
|
|
24728
24750
|
editName
|
|
24729
24751
|
};
|
|
24730
24752
|
}
|
|
24753
|
+
function useSymmAccountsApi(params) {
|
|
24754
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
24755
|
+
const { userAddress } = params;
|
|
24756
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
24757
|
+
const internalEnabled = !!symmCoreClient && !!userAddress;
|
|
24758
|
+
const query = reactQuery.useQuery({
|
|
24759
|
+
...params.query,
|
|
24760
|
+
queryKey: symmKeys.accountsApi(userAddress, chainId),
|
|
24761
|
+
queryFn: () => symmCoreClient.accounts.list({
|
|
24762
|
+
userAddress,
|
|
24763
|
+
chainId
|
|
24764
|
+
}),
|
|
24765
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
24766
|
+
staleTime: params.query?.staleTime ?? 1e4
|
|
24767
|
+
});
|
|
24768
|
+
return {
|
|
24769
|
+
accounts: query.data?.data?.accounts ?? [],
|
|
24770
|
+
total: query.data?.data?.total ?? 0,
|
|
24771
|
+
isLoading: query.isLoading,
|
|
24772
|
+
refetch: query.refetch
|
|
24773
|
+
};
|
|
24774
|
+
}
|
|
24775
|
+
function useSymmAccountsLength(params) {
|
|
24776
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
24777
|
+
const { userAddress } = params;
|
|
24778
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
24779
|
+
const internalEnabled = !!symmCoreClient && !!userAddress;
|
|
24780
|
+
const query = reactQuery.useQuery({
|
|
24781
|
+
...params.query,
|
|
24782
|
+
queryKey: symmKeys.accountsLength(userAddress, chainId),
|
|
24783
|
+
queryFn: () => symmCoreClient.accounts.getLength({
|
|
24784
|
+
userAddress,
|
|
24785
|
+
chainId
|
|
24786
|
+
}),
|
|
24787
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
24788
|
+
staleTime: params.query?.staleTime ?? 1e4
|
|
24789
|
+
});
|
|
24790
|
+
return {
|
|
24791
|
+
chains: query.data?.data?.chains ?? [],
|
|
24792
|
+
total: query.data?.data?.total ?? 0,
|
|
24793
|
+
isLoading: query.isLoading,
|
|
24794
|
+
refetch: query.refetch
|
|
24795
|
+
};
|
|
24796
|
+
}
|
|
24797
|
+
function useSymmAccountsWithPositions(params) {
|
|
24798
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
24799
|
+
const { userAddress } = params;
|
|
24800
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
24801
|
+
const internalEnabled = !!symmCoreClient && !!userAddress;
|
|
24802
|
+
const query = reactQuery.useQuery({
|
|
24803
|
+
...params.query,
|
|
24804
|
+
queryKey: symmKeys.accountsWithPositions(userAddress, chainId),
|
|
24805
|
+
queryFn: () => symmCoreClient.accounts.getWithPositions({
|
|
24806
|
+
userAddress,
|
|
24807
|
+
chainId
|
|
24808
|
+
}),
|
|
24809
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
24810
|
+
staleTime: params.query?.staleTime ?? 1e4
|
|
24811
|
+
});
|
|
24812
|
+
return {
|
|
24813
|
+
accounts: query.data?.data?.accounts ?? [],
|
|
24814
|
+
total: query.data?.data?.total ?? 0,
|
|
24815
|
+
isLoading: query.isLoading,
|
|
24816
|
+
refetch: query.refetch
|
|
24817
|
+
};
|
|
24818
|
+
}
|
|
24731
24819
|
function useSymmApproval(params) {
|
|
24732
|
-
const { symmioClient } = useSymmContext();
|
|
24820
|
+
const { symmioClient, chainId } = useSymmContext();
|
|
24733
24821
|
const queryClient = reactQuery.useQueryClient();
|
|
24734
24822
|
const { owner, amount, spender, collateralToken } = params;
|
|
24735
24823
|
const resolvedSpender = spender ?? symmioClient?.addresses.multiAccount;
|
|
@@ -24744,7 +24832,7 @@ function useSymmApproval(params) {
|
|
|
24744
24832
|
const internalEnabled = !!symmioClient && !!owner && !!resolvedSpender && !!resolvedToken;
|
|
24745
24833
|
const approvalQuery = reactQuery.useQuery({
|
|
24746
24834
|
...params.query,
|
|
24747
|
-
queryKey: symmKeys.approval(owner, resolvedSpender),
|
|
24835
|
+
queryKey: symmKeys.approval(owner, resolvedSpender, chainId),
|
|
24748
24836
|
queryFn: async () => {
|
|
24749
24837
|
const [allowance, balance] = await Promise.all([
|
|
24750
24838
|
symmioClient.approval.getAllowance(resolvedToken, owner, resolvedSpender),
|
|
@@ -24762,7 +24850,7 @@ function useSymmApproval(params) {
|
|
|
24762
24850
|
},
|
|
24763
24851
|
onSuccess: () => {
|
|
24764
24852
|
queryClient.invalidateQueries({
|
|
24765
|
-
queryKey: symmKeys.approval(owner, resolvedSpender)
|
|
24853
|
+
queryKey: symmKeys.approval(owner, resolvedSpender, chainId)
|
|
24766
24854
|
});
|
|
24767
24855
|
}
|
|
24768
24856
|
});
|
|
@@ -24774,6 +24862,57 @@ function useSymmApproval(params) {
|
|
|
24774
24862
|
approve: approve2
|
|
24775
24863
|
};
|
|
24776
24864
|
}
|
|
24865
|
+
function useSymmCancelClose() {
|
|
24866
|
+
const { symmCoreClient, authToken: ctxAuthToken, refreshAuth, chainId } = useSymmContext();
|
|
24867
|
+
const queryClient = reactQuery.useQueryClient();
|
|
24868
|
+
const cancelClose = reactQuery.useMutation({
|
|
24869
|
+
mutationFn: async ({
|
|
24870
|
+
quoteId,
|
|
24871
|
+
authToken,
|
|
24872
|
+
accountAddress,
|
|
24873
|
+
overrideChainId
|
|
24874
|
+
}) => {
|
|
24875
|
+
if (!symmCoreClient) {
|
|
24876
|
+
throw new Error("symm-core client not available");
|
|
24877
|
+
}
|
|
24878
|
+
const resolvedAuthToken = authToken ?? ctxAuthToken ?? (accountAddress ? await refreshAuth(accountAddress) : null);
|
|
24879
|
+
if (!resolvedAuthToken) {
|
|
24880
|
+
throw new Error("auth token is required to cancel a pending close");
|
|
24881
|
+
}
|
|
24882
|
+
return symmCoreClient.orders.cancelClose({
|
|
24883
|
+
quoteId,
|
|
24884
|
+
authToken: resolvedAuthToken,
|
|
24885
|
+
chainId: overrideChainId ?? chainId
|
|
24886
|
+
});
|
|
24887
|
+
},
|
|
24888
|
+
onSuccess: () => {
|
|
24889
|
+
invalidateOrders(queryClient);
|
|
24890
|
+
invalidatePositions(queryClient);
|
|
24891
|
+
}
|
|
24892
|
+
});
|
|
24893
|
+
return { cancelClose };
|
|
24894
|
+
}
|
|
24895
|
+
function useSymmCloseOrder() {
|
|
24896
|
+
const { symmCoreClient, authToken: ctxAuthToken } = useSymmContext();
|
|
24897
|
+
const queryClient = reactQuery.useQueryClient();
|
|
24898
|
+
const closeOrder = reactQuery.useMutation({
|
|
24899
|
+
mutationFn: async (request) => {
|
|
24900
|
+
if (!symmCoreClient) {
|
|
24901
|
+
throw new Error("symm-core client not available");
|
|
24902
|
+
}
|
|
24903
|
+
return symmCoreClient.orders.close(request.id, {
|
|
24904
|
+
kind: request.kind,
|
|
24905
|
+
type: request.type,
|
|
24906
|
+
authToken: request.authToken ?? ctxAuthToken ?? void 0
|
|
24907
|
+
});
|
|
24908
|
+
},
|
|
24909
|
+
onSuccess: () => {
|
|
24910
|
+
invalidateOrders(queryClient);
|
|
24911
|
+
invalidatePositions(queryClient);
|
|
24912
|
+
}
|
|
24913
|
+
});
|
|
24914
|
+
return { closeOrder };
|
|
24915
|
+
}
|
|
24777
24916
|
function useSymmDeposit() {
|
|
24778
24917
|
const { symmioClient } = useSymmContext();
|
|
24779
24918
|
const queryClient = reactQuery.useQueryClient();
|
|
@@ -24868,12 +25007,12 @@ function useSymmCollateral() {
|
|
|
24868
25007
|
return { allocate: allocate2, deallocate: deallocate2, internalTransfer: internalTransfer2 };
|
|
24869
25008
|
}
|
|
24870
25009
|
function useSymmSignature(userAddress, options) {
|
|
24871
|
-
const { symmioClient } = useSymmContext();
|
|
25010
|
+
const { symmioClient, chainId } = useSymmContext();
|
|
24872
25011
|
const queryClient = reactQuery.useQueryClient();
|
|
24873
25012
|
const internalEnabled = !!symmioClient && !!userAddress;
|
|
24874
25013
|
const signedQuery = reactQuery.useQuery({
|
|
24875
25014
|
...options?.query,
|
|
24876
|
-
queryKey: symmKeys.signature(userAddress),
|
|
25015
|
+
queryKey: symmKeys.signature(userAddress, chainId),
|
|
24877
25016
|
queryFn: () => symmioClient.signature.hasSigned(userAddress),
|
|
24878
25017
|
enabled: internalEnabled && (options?.query?.enabled ?? true)
|
|
24879
25018
|
});
|
|
@@ -24885,7 +25024,7 @@ function useSymmSignature(userAddress, options) {
|
|
|
24885
25024
|
},
|
|
24886
25025
|
onSuccess: () => {
|
|
24887
25026
|
queryClient.invalidateQueries({
|
|
24888
|
-
queryKey: symmKeys.signature(userAddress)
|
|
25027
|
+
queryKey: symmKeys.signature(userAddress, chainId)
|
|
24889
25028
|
});
|
|
24890
25029
|
}
|
|
24891
25030
|
});
|
|
@@ -24896,7 +25035,7 @@ function useSymmSignature(userAddress, options) {
|
|
|
24896
25035
|
};
|
|
24897
25036
|
}
|
|
24898
25037
|
function useSymmAvailableMargin(params) {
|
|
24899
|
-
const { symmioClient } = useSymmContext();
|
|
25038
|
+
const { symmioClient, chainId } = useSymmContext();
|
|
24900
25039
|
const { accountAddress, upnl } = params;
|
|
24901
25040
|
const resolvedUpnl = upnl ?? 0n;
|
|
24902
25041
|
const selectWithUpnl = react.useCallback(
|
|
@@ -24910,7 +25049,7 @@ function useSymmAvailableMargin(params) {
|
|
|
24910
25049
|
const internalEnabled = !!symmioClient && !!accountAddress;
|
|
24911
25050
|
const query = reactQuery.useQuery({
|
|
24912
25051
|
...params.query,
|
|
24913
|
-
queryKey: symmKeys.availableMargin(accountAddress,
|
|
25052
|
+
queryKey: symmKeys.availableMargin(accountAddress, chainId),
|
|
24914
25053
|
queryFn: () => symmioClient.stats.getPartyAStats(accountAddress),
|
|
24915
25054
|
select: selectWithUpnl,
|
|
24916
25055
|
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
@@ -25133,6 +25272,40 @@ function useSymmTpsl() {
|
|
|
25133
25272
|
});
|
|
25134
25273
|
return { setTpsl, cancelTpsl };
|
|
25135
25274
|
}
|
|
25275
|
+
function useSymmTpslOrders(params) {
|
|
25276
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25277
|
+
const { accountAddress, mainAddress, positionId, type, status } = params;
|
|
25278
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25279
|
+
const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress || positionId);
|
|
25280
|
+
const request = {
|
|
25281
|
+
address: accountAddress,
|
|
25282
|
+
mainAddress,
|
|
25283
|
+
positionId,
|
|
25284
|
+
type,
|
|
25285
|
+
status,
|
|
25286
|
+
chainId
|
|
25287
|
+
};
|
|
25288
|
+
const query = reactQuery.useQuery({
|
|
25289
|
+
...params.query,
|
|
25290
|
+
queryKey: symmKeys.tpslOrdersList({
|
|
25291
|
+
accountAddress,
|
|
25292
|
+
mainAddress,
|
|
25293
|
+
positionId,
|
|
25294
|
+
type,
|
|
25295
|
+
status,
|
|
25296
|
+
chainId
|
|
25297
|
+
}),
|
|
25298
|
+
queryFn: () => symmCoreClient.orders.getTpslOrders(request),
|
|
25299
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25300
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25301
|
+
});
|
|
25302
|
+
return {
|
|
25303
|
+
tpslOrders: query.data?.data?.tpslOrders ?? [],
|
|
25304
|
+
total: query.data?.data?.total ?? 0,
|
|
25305
|
+
isLoading: query.isLoading,
|
|
25306
|
+
refetch: query.refetch
|
|
25307
|
+
};
|
|
25308
|
+
}
|
|
25136
25309
|
function useSymmTwap(params) {
|
|
25137
25310
|
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25138
25311
|
const queryClient = reactQuery.useQueryClient();
|
|
@@ -25165,6 +25338,90 @@ function useSymmTwap(params) {
|
|
|
25165
25338
|
cancelTwap
|
|
25166
25339
|
};
|
|
25167
25340
|
}
|
|
25341
|
+
function useSymmTriggerConfig(params) {
|
|
25342
|
+
const { symmCoreClient } = useSymmContext();
|
|
25343
|
+
const queryClient = reactQuery.useQueryClient();
|
|
25344
|
+
const { orderId } = params;
|
|
25345
|
+
const internalEnabled = !!symmCoreClient && !!orderId;
|
|
25346
|
+
const query = reactQuery.useQuery({
|
|
25347
|
+
...params.query,
|
|
25348
|
+
queryKey: symmKeys.triggerConfig(orderId),
|
|
25349
|
+
queryFn: () => symmCoreClient.orders.getTriggerConfig(orderId),
|
|
25350
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25351
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25352
|
+
});
|
|
25353
|
+
const setTriggerConfig = reactQuery.useMutation({
|
|
25354
|
+
mutationFn: async (request) => {
|
|
25355
|
+
if (!symmCoreClient || !orderId) {
|
|
25356
|
+
throw new Error("symm-core client or orderId not available");
|
|
25357
|
+
}
|
|
25358
|
+
return symmCoreClient.orders.setTriggerConfig(orderId, request);
|
|
25359
|
+
},
|
|
25360
|
+
onSuccess: () => {
|
|
25361
|
+
queryClient.invalidateQueries({
|
|
25362
|
+
queryKey: symmKeys.triggerConfig(orderId)
|
|
25363
|
+
});
|
|
25364
|
+
invalidateOrders(queryClient);
|
|
25365
|
+
}
|
|
25366
|
+
});
|
|
25367
|
+
const clearTriggerConfig = reactQuery.useMutation({
|
|
25368
|
+
mutationFn: async () => {
|
|
25369
|
+
if (!symmCoreClient || !orderId) {
|
|
25370
|
+
throw new Error("symm-core client or orderId not available");
|
|
25371
|
+
}
|
|
25372
|
+
return symmCoreClient.orders.clearTriggerConfig(orderId);
|
|
25373
|
+
},
|
|
25374
|
+
onSuccess: () => {
|
|
25375
|
+
queryClient.invalidateQueries({
|
|
25376
|
+
queryKey: symmKeys.triggerConfig(orderId)
|
|
25377
|
+
});
|
|
25378
|
+
invalidateOrders(queryClient);
|
|
25379
|
+
}
|
|
25380
|
+
});
|
|
25381
|
+
return {
|
|
25382
|
+
triggerConfig: query.data?.data?.triggerConfig ?? null,
|
|
25383
|
+
isLoading: query.isLoading,
|
|
25384
|
+
refetch: query.refetch,
|
|
25385
|
+
setTriggerConfig,
|
|
25386
|
+
clearTriggerConfig
|
|
25387
|
+
};
|
|
25388
|
+
}
|
|
25389
|
+
function useSymmTriggerOrders(params) {
|
|
25390
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25391
|
+
const { accountAddress, mainAddress, status, limit, offset } = params;
|
|
25392
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25393
|
+
const internalEnabled = !!symmCoreClient && !!(accountAddress || mainAddress);
|
|
25394
|
+
const request = {
|
|
25395
|
+
address: accountAddress,
|
|
25396
|
+
mainAddress,
|
|
25397
|
+
chainId,
|
|
25398
|
+
status,
|
|
25399
|
+
limit,
|
|
25400
|
+
offset
|
|
25401
|
+
};
|
|
25402
|
+
const query = reactQuery.useQuery({
|
|
25403
|
+
...params.query,
|
|
25404
|
+
queryKey: symmKeys.triggerOrders({
|
|
25405
|
+
accountAddress,
|
|
25406
|
+
mainAddress,
|
|
25407
|
+
chainId,
|
|
25408
|
+
status,
|
|
25409
|
+
limit,
|
|
25410
|
+
offset
|
|
25411
|
+
}),
|
|
25412
|
+
queryFn: () => symmCoreClient.orders.listTriggerOrders(request),
|
|
25413
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25414
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25415
|
+
});
|
|
25416
|
+
return {
|
|
25417
|
+
orders: query.data?.data?.orders ?? [],
|
|
25418
|
+
total: query.data?.data?.total ?? 0,
|
|
25419
|
+
limit: query.data?.data?.limit ?? limit ?? 0,
|
|
25420
|
+
offset: query.data?.data?.offset ?? offset ?? 0,
|
|
25421
|
+
isLoading: query.isLoading,
|
|
25422
|
+
refetch: query.refetch
|
|
25423
|
+
};
|
|
25424
|
+
}
|
|
25168
25425
|
function useSymmMarkets(params) {
|
|
25169
25426
|
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25170
25427
|
const chainId = params?.chainId ?? ctxChainId;
|
|
@@ -25188,6 +25445,66 @@ function useSymmMarkets(params) {
|
|
|
25188
25445
|
refetch: query.refetch
|
|
25189
25446
|
};
|
|
25190
25447
|
}
|
|
25448
|
+
function useSymmHedgerMarketById(params) {
|
|
25449
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25450
|
+
const { id } = params;
|
|
25451
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25452
|
+
const internalEnabled = !!symmCoreClient && id != null;
|
|
25453
|
+
const query = reactQuery.useQuery({
|
|
25454
|
+
...params.query,
|
|
25455
|
+
queryKey: symmKeys.hedgerMarketById(id, chainId),
|
|
25456
|
+
queryFn: () => symmCoreClient.markets.getById(id, chainId),
|
|
25457
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25458
|
+
staleTime: params.query?.staleTime ?? 3e4
|
|
25459
|
+
});
|
|
25460
|
+
return {
|
|
25461
|
+
market: query.data?.data?.markets?.[0] ?? null,
|
|
25462
|
+
markets: query.data?.data?.markets ?? [],
|
|
25463
|
+
isLoading: query.isLoading,
|
|
25464
|
+
refetch: query.refetch
|
|
25465
|
+
};
|
|
25466
|
+
}
|
|
25467
|
+
function useSymmHedgerMarketBySymbol(params) {
|
|
25468
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25469
|
+
const { symbol } = params;
|
|
25470
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25471
|
+
const internalEnabled = !!symmCoreClient && !!symbol;
|
|
25472
|
+
const query = reactQuery.useQuery({
|
|
25473
|
+
...params.query,
|
|
25474
|
+
queryKey: symmKeys.hedgerMarketBySymbol(symbol, chainId),
|
|
25475
|
+
queryFn: () => symmCoreClient.markets.getBySymbol(symbol, chainId),
|
|
25476
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25477
|
+
staleTime: params.query?.staleTime ?? 3e4
|
|
25478
|
+
});
|
|
25479
|
+
return {
|
|
25480
|
+
market: query.data?.data?.markets?.[0] ?? null,
|
|
25481
|
+
markets: query.data?.data?.markets ?? [],
|
|
25482
|
+
isLoading: query.isLoading,
|
|
25483
|
+
refetch: query.refetch
|
|
25484
|
+
};
|
|
25485
|
+
}
|
|
25486
|
+
function useSymmLockedParams(params) {
|
|
25487
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25488
|
+
const { marketName, leverage } = params;
|
|
25489
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25490
|
+
const internalEnabled = !!symmCoreClient && !!marketName && leverage != null;
|
|
25491
|
+
const query = reactQuery.useQuery({
|
|
25492
|
+
...params.query,
|
|
25493
|
+
queryKey: symmKeys.lockedParams(marketName, leverage, chainId),
|
|
25494
|
+
queryFn: () => symmCoreClient.markets.getLockedParams({
|
|
25495
|
+
marketName,
|
|
25496
|
+
leverage,
|
|
25497
|
+
chainId
|
|
25498
|
+
}),
|
|
25499
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25500
|
+
staleTime: params.query?.staleTime ?? 3e4
|
|
25501
|
+
});
|
|
25502
|
+
return {
|
|
25503
|
+
lockedParams: query.data?.data ?? null,
|
|
25504
|
+
isLoading: query.isLoading,
|
|
25505
|
+
refetch: query.refetch
|
|
25506
|
+
};
|
|
25507
|
+
}
|
|
25191
25508
|
var EMPTY_MARKETS = [];
|
|
25192
25509
|
var EMPTY_SYMBOLS = [];
|
|
25193
25510
|
var EMPTY_MAP_BY_ID = /* @__PURE__ */ new Map();
|
|
@@ -25244,6 +25561,72 @@ function useSymmFunding(params) {
|
|
|
25244
25561
|
isLoading: query.isLoading
|
|
25245
25562
|
};
|
|
25246
25563
|
}
|
|
25564
|
+
function useSymmFundingHistory(params) {
|
|
25565
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25566
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25567
|
+
const {
|
|
25568
|
+
period,
|
|
25569
|
+
longSymbols,
|
|
25570
|
+
shortSymbols,
|
|
25571
|
+
interval,
|
|
25572
|
+
weightMode,
|
|
25573
|
+
includeContributions
|
|
25574
|
+
} = params;
|
|
25575
|
+
const internalEnabled = !!symmCoreClient;
|
|
25576
|
+
const request = {
|
|
25577
|
+
chainId,
|
|
25578
|
+
period,
|
|
25579
|
+
longSymbols,
|
|
25580
|
+
shortSymbols,
|
|
25581
|
+
interval,
|
|
25582
|
+
weightMode,
|
|
25583
|
+
includeContributions
|
|
25584
|
+
};
|
|
25585
|
+
const query = reactQuery.useQuery({
|
|
25586
|
+
...params.query,
|
|
25587
|
+
queryKey: symmKeys.fundingHistory(request),
|
|
25588
|
+
queryFn: () => symmCoreClient.funding.getHistory(request),
|
|
25589
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25590
|
+
staleTime: params.query?.staleTime ?? 3e4
|
|
25591
|
+
});
|
|
25592
|
+
return {
|
|
25593
|
+
history: query.data?.data ?? null,
|
|
25594
|
+
isLoading: query.isLoading,
|
|
25595
|
+
refetch: query.refetch
|
|
25596
|
+
};
|
|
25597
|
+
}
|
|
25598
|
+
function useSymmFundingPayments(params) {
|
|
25599
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25600
|
+
const { address, positionId, limit, offset } = params;
|
|
25601
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25602
|
+
const internalEnabled = !!symmCoreClient && !!(address || positionId);
|
|
25603
|
+
const request = {
|
|
25604
|
+
address,
|
|
25605
|
+
positionId,
|
|
25606
|
+
chainId,
|
|
25607
|
+
limit,
|
|
25608
|
+
offset
|
|
25609
|
+
};
|
|
25610
|
+
const query = reactQuery.useQuery({
|
|
25611
|
+
...params.query,
|
|
25612
|
+
queryKey: symmKeys.fundingPayments({
|
|
25613
|
+
address,
|
|
25614
|
+
positionId,
|
|
25615
|
+
chainId,
|
|
25616
|
+
limit,
|
|
25617
|
+
offset
|
|
25618
|
+
}),
|
|
25619
|
+
queryFn: () => symmCoreClient.funding.getPayments(request),
|
|
25620
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25621
|
+
staleTime: params.query?.staleTime ?? 3e4
|
|
25622
|
+
});
|
|
25623
|
+
return {
|
|
25624
|
+
payments: query.data?.data?.payments ?? [],
|
|
25625
|
+
total: query.data?.data?.total ?? 0,
|
|
25626
|
+
isLoading: query.isLoading,
|
|
25627
|
+
refetch: query.refetch
|
|
25628
|
+
};
|
|
25629
|
+
}
|
|
25247
25630
|
function useSymmPortfolio(params) {
|
|
25248
25631
|
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25249
25632
|
const { accountAddress, mainAddress } = params;
|
|
@@ -25293,11 +25676,12 @@ function useSymmNotifications(params) {
|
|
|
25293
25676
|
staleTime: params.query?.staleTime ?? 1e4
|
|
25294
25677
|
});
|
|
25295
25678
|
const markRead = reactQuery.useMutation({
|
|
25296
|
-
mutationFn: async ({ id }) => {
|
|
25679
|
+
mutationFn: async ({ id, timestamp }) => {
|
|
25297
25680
|
if (!symmCoreClient || !userAddress)
|
|
25298
25681
|
throw new Error("symm-core client not available");
|
|
25299
25682
|
return symmCoreClient.notifications.markRead({
|
|
25300
25683
|
id,
|
|
25684
|
+
timestamp,
|
|
25301
25685
|
userAddress,
|
|
25302
25686
|
chainId
|
|
25303
25687
|
});
|
|
@@ -25319,6 +25703,78 @@ function useSymmNotifications(params) {
|
|
|
25319
25703
|
refetch: notificationsQuery.refetch
|
|
25320
25704
|
};
|
|
25321
25705
|
}
|
|
25706
|
+
function useSymmPendingIds(params) {
|
|
25707
|
+
const { symmCoreClient, chainId: ctxChainId } = useSymmContext();
|
|
25708
|
+
const { accountAddress } = params;
|
|
25709
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25710
|
+
const internalEnabled = !!symmCoreClient && !!accountAddress;
|
|
25711
|
+
const query = reactQuery.useQuery({
|
|
25712
|
+
...params.query,
|
|
25713
|
+
queryKey: symmKeys.pendingIds(accountAddress, chainId),
|
|
25714
|
+
queryFn: () => symmCoreClient.positions.getPendingIds({
|
|
25715
|
+
address: accountAddress,
|
|
25716
|
+
chainId
|
|
25717
|
+
}),
|
|
25718
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25719
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25720
|
+
});
|
|
25721
|
+
return {
|
|
25722
|
+
pendingIds: query.data?.data?.pendingIds ?? [],
|
|
25723
|
+
isLoading: query.isLoading,
|
|
25724
|
+
refetch: query.refetch
|
|
25725
|
+
};
|
|
25726
|
+
}
|
|
25727
|
+
function useSymmPendingInstantOpens(params) {
|
|
25728
|
+
const {
|
|
25729
|
+
symmCoreClient,
|
|
25730
|
+
chainId: ctxChainId,
|
|
25731
|
+
authToken: ctxAuthToken,
|
|
25732
|
+
refreshAuth
|
|
25733
|
+
} = useSymmContext();
|
|
25734
|
+
const { accountAddress, authToken: providedAuthToken } = params;
|
|
25735
|
+
const chainId = params.chainId ?? ctxChainId;
|
|
25736
|
+
const internalEnabled = !!symmCoreClient && !!accountAddress;
|
|
25737
|
+
const query = reactQuery.useQuery({
|
|
25738
|
+
...params.query,
|
|
25739
|
+
queryKey: symmKeys.pendingInstantOpens(accountAddress, chainId),
|
|
25740
|
+
queryFn: async () => {
|
|
25741
|
+
const authToken = providedAuthToken ?? ctxAuthToken ?? await refreshAuth(accountAddress);
|
|
25742
|
+
if (!authToken) {
|
|
25743
|
+
throw new Error("failed to acquire auth token for pending instant opens");
|
|
25744
|
+
}
|
|
25745
|
+
return symmCoreClient.positions.getPendingInstantOpens({
|
|
25746
|
+
accountAddress,
|
|
25747
|
+
chainId,
|
|
25748
|
+
authToken
|
|
25749
|
+
});
|
|
25750
|
+
},
|
|
25751
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25752
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25753
|
+
});
|
|
25754
|
+
return {
|
|
25755
|
+
pendingOpens: query.data?.data?.pendingOpens ?? [],
|
|
25756
|
+
total: query.data?.data?.total ?? 0,
|
|
25757
|
+
isLoading: query.isLoading,
|
|
25758
|
+
refetch: query.refetch
|
|
25759
|
+
};
|
|
25760
|
+
}
|
|
25761
|
+
function useSymmTwapOrder(params) {
|
|
25762
|
+
const { symmCoreClient } = useSymmContext();
|
|
25763
|
+
const { orderId } = params;
|
|
25764
|
+
const internalEnabled = !!symmCoreClient && !!orderId;
|
|
25765
|
+
const query = reactQuery.useQuery({
|
|
25766
|
+
...params.query,
|
|
25767
|
+
queryKey: symmKeys.twapOrder(orderId),
|
|
25768
|
+
queryFn: () => symmCoreClient.orders.getTwapOrder(orderId),
|
|
25769
|
+
enabled: internalEnabled && (params.query?.enabled ?? true),
|
|
25770
|
+
staleTime: params.query?.staleTime ?? 5e3
|
|
25771
|
+
});
|
|
25772
|
+
return {
|
|
25773
|
+
order: query.data?.data ?? null,
|
|
25774
|
+
isLoading: query.isLoading,
|
|
25775
|
+
refetch: query.refetch
|
|
25776
|
+
};
|
|
25777
|
+
}
|
|
25322
25778
|
function asUnsubscribeFn(value) {
|
|
25323
25779
|
return typeof value === "function" ? value : null;
|
|
25324
25780
|
}
|
|
@@ -25376,17 +25832,20 @@ function useSymmWs(params) {
|
|
|
25376
25832
|
}));
|
|
25377
25833
|
if (notificationsUnsub) unsubscribers.push(notificationsUnsub);
|
|
25378
25834
|
const tpslUnsub = asUnsubscribeFn(ws.subscribeToTpsl(addr, chainId, () => {
|
|
25379
|
-
queryClient.invalidateQueries({
|
|
25380
|
-
|
|
25381
|
-
});
|
|
25835
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "tpslOrders"] });
|
|
25836
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
|
|
25382
25837
|
}));
|
|
25383
25838
|
if (tpslUnsub) unsubscribers.push(tpslUnsub);
|
|
25384
25839
|
const twapUnsub = asUnsubscribeFn(ws.subscribeToTwapOrders(addr, chainId, () => {
|
|
25385
|
-
queryClient.invalidateQueries({
|
|
25386
|
-
|
|
25387
|
-
});
|
|
25840
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "twapOrders"] });
|
|
25841
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
|
|
25388
25842
|
}));
|
|
25389
25843
|
if (twapUnsub) unsubscribers.push(twapUnsub);
|
|
25844
|
+
const triggerOrdersUnsub = asUnsubscribeFn(ws.subscribeToTriggerOrders(addr, chainId, () => {
|
|
25845
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "triggerOrders"] });
|
|
25846
|
+
queryClient.invalidateQueries({ queryKey: ["symm", "openOrders"] });
|
|
25847
|
+
}));
|
|
25848
|
+
if (triggerOrdersUnsub) unsubscribers.push(triggerOrdersUnsub);
|
|
25390
25849
|
const executionsUnsub = asUnsubscribeFn(ws.subscribeToExecutions(addr, chainId, () => {
|
|
25391
25850
|
queryClient.invalidateQueries({
|
|
25392
25851
|
queryKey: symmKeys.positions(accountAddress, chainId)
|
|
@@ -26432,32 +26891,48 @@ exports.symmKeys = symmKeys;
|
|
|
26432
26891
|
exports.useSymmAccountData = useSymmAccountData;
|
|
26433
26892
|
exports.useSymmAccountSummary = useSymmAccountSummary;
|
|
26434
26893
|
exports.useSymmAccounts = useSymmAccounts;
|
|
26894
|
+
exports.useSymmAccountsApi = useSymmAccountsApi;
|
|
26895
|
+
exports.useSymmAccountsLength = useSymmAccountsLength;
|
|
26896
|
+
exports.useSymmAccountsWithPositions = useSymmAccountsWithPositions;
|
|
26435
26897
|
exports.useSymmApproval = useSymmApproval;
|
|
26436
26898
|
exports.useSymmAuth = useSymmAuth;
|
|
26437
26899
|
exports.useSymmAvailableMargin = useSymmAvailableMargin;
|
|
26438
26900
|
exports.useSymmBalances = useSymmBalances;
|
|
26901
|
+
exports.useSymmCancelClose = useSymmCancelClose;
|
|
26439
26902
|
exports.useSymmChartCandles = useSymmChartCandles;
|
|
26440
26903
|
exports.useSymmChartSelection = useSymmChartSelection;
|
|
26904
|
+
exports.useSymmCloseOrder = useSymmCloseOrder;
|
|
26441
26905
|
exports.useSymmCollateral = useSymmCollateral;
|
|
26442
26906
|
exports.useSymmContext = useSymmContext;
|
|
26443
26907
|
exports.useSymmCoreClient = useSymmCoreClient;
|
|
26444
26908
|
exports.useSymmDelegation = useSymmDelegation;
|
|
26445
26909
|
exports.useSymmDeposit = useSymmDeposit;
|
|
26446
26910
|
exports.useSymmFunding = useSymmFunding;
|
|
26911
|
+
exports.useSymmFundingHistory = useSymmFundingHistory;
|
|
26912
|
+
exports.useSymmFundingPayments = useSymmFundingPayments;
|
|
26913
|
+
exports.useSymmHedgerMarketById = useSymmHedgerMarketById;
|
|
26914
|
+
exports.useSymmHedgerMarketBySymbol = useSymmHedgerMarketBySymbol;
|
|
26447
26915
|
exports.useSymmHedgerMarkets = useSymmHedgerMarkets;
|
|
26448
26916
|
exports.useSymmInstantTrade = useSymmInstantTrade;
|
|
26917
|
+
exports.useSymmLockedParams = useSymmLockedParams;
|
|
26449
26918
|
exports.useSymmMarkets = useSymmMarkets;
|
|
26450
26919
|
exports.useSymmNotifications = useSymmNotifications;
|
|
26451
26920
|
exports.useSymmOpenOrders = useSymmOpenOrders;
|
|
26921
|
+
exports.useSymmPendingIds = useSymmPendingIds;
|
|
26922
|
+
exports.useSymmPendingInstantOpens = useSymmPendingInstantOpens;
|
|
26452
26923
|
exports.useSymmPerformanceOverlays = useSymmPerformanceOverlays;
|
|
26453
26924
|
exports.useSymmPortfolio = useSymmPortfolio;
|
|
26454
26925
|
exports.useSymmPositions = useSymmPositions;
|
|
26455
26926
|
exports.useSymmSignature = useSymmSignature;
|
|
26456
26927
|
exports.useSymmTokenSelectionMetadata = useSymmTokenSelectionMetadata;
|
|
26457
26928
|
exports.useSymmTpsl = useSymmTpsl;
|
|
26929
|
+
exports.useSymmTpslOrders = useSymmTpslOrders;
|
|
26458
26930
|
exports.useSymmTrade = useSymmTrade;
|
|
26459
26931
|
exports.useSymmTradeHistory = useSymmTradeHistory;
|
|
26932
|
+
exports.useSymmTriggerConfig = useSymmTriggerConfig;
|
|
26933
|
+
exports.useSymmTriggerOrders = useSymmTriggerOrders;
|
|
26460
26934
|
exports.useSymmTwap = useSymmTwap;
|
|
26935
|
+
exports.useSymmTwapOrder = useSymmTwapOrder;
|
|
26461
26936
|
exports.useSymmWithdraw = useSymmWithdraw;
|
|
26462
26937
|
exports.useSymmWs = useSymmWs;
|
|
26463
26938
|
exports.useSymmioClient = useSymmioClient;
|