@silentswap/react 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +48 -0
  2. package/dist/contexts/AssetsContext.d.ts +24 -0
  3. package/dist/contexts/AssetsContext.js +83 -0
  4. package/dist/contexts/BalancesContext.d.ts +28 -0
  5. package/dist/contexts/BalancesContext.js +533 -0
  6. package/dist/contexts/OrdersContext.d.ts +53 -0
  7. package/dist/contexts/OrdersContext.js +240 -0
  8. package/dist/contexts/PricesContext.d.ts +12 -0
  9. package/dist/contexts/PricesContext.js +109 -0
  10. package/dist/contexts/SilentSwapContext.d.ts +58 -0
  11. package/dist/contexts/SilentSwapContext.js +205 -0
  12. package/dist/hooks/silent/orderTrackingWebSocketManager.d.ts +48 -0
  13. package/dist/hooks/silent/orderTrackingWebSocketManager.js +284 -0
  14. package/dist/hooks/silent/solana-transaction.d.ts +60 -0
  15. package/dist/hooks/silent/solana-transaction.js +236 -0
  16. package/dist/hooks/silent/useAuth.d.ts +90 -0
  17. package/dist/hooks/silent/useAuth.js +269 -0
  18. package/dist/hooks/silent/useBridgeExecution.d.ts +39 -0
  19. package/dist/hooks/silent/useBridgeExecution.js +877 -0
  20. package/dist/hooks/silent/useOrderSigning.d.ts +34 -0
  21. package/dist/hooks/silent/useOrderSigning.js +133 -0
  22. package/dist/hooks/silent/useOrderTracking.d.ts +174 -0
  23. package/dist/hooks/silent/useOrderTracking.js +524 -0
  24. package/dist/hooks/silent/useQuoteCalculation.d.ts +50 -0
  25. package/dist/hooks/silent/useQuoteCalculation.js +331 -0
  26. package/dist/hooks/silent/useQuoteFetching.d.ts +18 -0
  27. package/dist/hooks/silent/useQuoteFetching.js +54 -0
  28. package/dist/hooks/silent/useRefund.d.ts +26 -0
  29. package/dist/hooks/silent/useRefund.js +134 -0
  30. package/dist/hooks/silent/useSilentClient.d.ts +16 -0
  31. package/dist/hooks/silent/useSilentClient.js +32 -0
  32. package/dist/hooks/silent/useSilentOrders.d.ts +174 -0
  33. package/dist/hooks/silent/useSilentOrders.js +73 -0
  34. package/dist/hooks/silent/useSilentQuote.d.ts +88 -0
  35. package/dist/hooks/silent/useSilentQuote.js +381 -0
  36. package/dist/hooks/silent/useWallet.d.ts +76 -0
  37. package/dist/hooks/silent/useWallet.js +203 -0
  38. package/dist/hooks/useAssetPrice.d.ts +8 -0
  39. package/dist/hooks/useAssetPrice.js +47 -0
  40. package/dist/hooks/useContacts.d.ts +52 -0
  41. package/dist/hooks/useContacts.js +259 -0
  42. package/dist/hooks/useEgressEstimates.d.ts +32 -0
  43. package/dist/hooks/useEgressEstimates.js +230 -0
  44. package/dist/hooks/useHiddenSwapFees.d.ts +22 -0
  45. package/dist/hooks/useHiddenSwapFees.js +81 -0
  46. package/dist/hooks/useOrderEstimates.d.ts +37 -0
  47. package/dist/hooks/useOrderEstimates.js +393 -0
  48. package/dist/hooks/useOutputAssetInfo.d.ts +12 -0
  49. package/dist/hooks/useOutputAssetInfo.js +38 -0
  50. package/dist/hooks/usePrices.d.ts +60 -0
  51. package/dist/hooks/usePrices.js +188 -0
  52. package/dist/hooks/useQuote.d.ts +73 -0
  53. package/dist/hooks/useQuote.js +507 -0
  54. package/dist/hooks/useResetSwapForm.d.ts +16 -0
  55. package/dist/hooks/useResetSwapForm.js +68 -0
  56. package/dist/hooks/useSlippageUsd.d.ts +11 -0
  57. package/dist/hooks/useSlippageUsd.js +19 -0
  58. package/dist/hooks/useSolanaAdapter.d.ts +15 -0
  59. package/dist/hooks/useSolanaAdapter.js +55 -0
  60. package/dist/hooks/useStatus.d.ts +25 -0
  61. package/dist/hooks/useStatus.js +60 -0
  62. package/dist/hooks/useSwap.d.ts +67 -0
  63. package/dist/hooks/useSwap.js +285 -0
  64. package/dist/hooks/useTransaction.d.ts +119 -0
  65. package/dist/hooks/useTransaction.js +353 -0
  66. package/dist/hooks/useTransactionAddress.d.ts +11 -0
  67. package/dist/hooks/useTransactionAddress.js +26 -0
  68. package/dist/hooks/useUsdValue.d.ts +7 -0
  69. package/dist/hooks/useUsdValue.js +19 -0
  70. package/dist/index.d.ts +54 -0
  71. package/dist/index.js +41 -0
  72. package/dist/stories/SilentSwapOverview.stories.d.ts +10 -0
  73. package/dist/stories/SilentSwapOverview.stories.js +364 -0
  74. package/dist/stories/useAuth.stories.d.ts +6 -0
  75. package/dist/stories/useAuth.stories.js +55 -0
  76. package/dist/stories/useSilentClient.stories.d.ts +9 -0
  77. package/dist/stories/useSilentClient.stories.js +39 -0
  78. package/dist/stories/useSilentOrders.stories.d.ts +1 -0
  79. package/dist/stories/useSilentOrders.stories.js +1 -0
  80. package/dist/stories/useSilentQuote.stories.d.ts +6 -0
  81. package/dist/stories/useSilentQuote.stories.js +267 -0
  82. package/dist/stories/useTransaction.stories.d.ts +6 -0
  83. package/dist/stories/useTransaction.stories.js +121 -0
  84. package/dist/utils/formatters.d.ts +33 -0
  85. package/dist/utils/formatters.js +82 -0
  86. package/package.json +67 -0
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # @silentswap/react
2
+
3
+ React hooks and utilities for integrating with SilentSwap SDK.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ bun add @silentswap/react @silentswap/sdk
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```tsx
14
+ import { useSilentClient, useSilentOrders, useAuth } from '@silentswap/react';
15
+
16
+ function MyComponent() {
17
+ // Create client
18
+ const { client } = useSilentClient({
19
+ config: {
20
+ environment: 'MAINNET',
21
+ },
22
+ });
23
+
24
+ // Use order operations
25
+ const { getQuote, createOrder, isLoading, error } = useSilentOrders({
26
+ client,
27
+ });
28
+
29
+ // Use auth utilities
30
+ const { createSignInMessage, createEip712DocForOrder } = useAuth();
31
+
32
+ // ... your component logic
33
+ }
34
+ ```
35
+
36
+ ## Hooks
37
+
38
+ ### `useSilentClient`
39
+
40
+ Creates and manages a SilentSwap client instance.
41
+
42
+ ### `useSilentOrders`
43
+
44
+ Provides methods for order operations including quotes, authentication, and order creation.
45
+
46
+ ### `useAuth`
47
+
48
+ Provides authentication utilities for sign-in messages and EIP-712 document creation.
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { type AssetInfo, type ChainInfo } from '@silentswap/sdk';
3
+ export type Chain = ChainInfo;
4
+ export type { ChainInfo };
5
+ export type AssetsContextType = {
6
+ assets: Record<string, AssetInfo>;
7
+ chains: Record<string, Chain>;
8
+ loading: boolean;
9
+ getAsset: (caip19: string) => AssetInfo | undefined;
10
+ getFilteredAssets: (filter?: {
11
+ ingress?: boolean;
12
+ egress?: boolean;
13
+ }) => AssetInfo[];
14
+ };
15
+ /**
16
+ * Provider for asset and chain metadata from the SDK
17
+ */
18
+ export declare const AssetsProvider: React.FC<{
19
+ children: React.ReactNode;
20
+ }>;
21
+ /**
22
+ * Hook to access asset and chain metadata
23
+ */
24
+ export declare const useAssetsContext: () => AssetsContextType;
@@ -0,0 +1,83 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useState, useCallback, useMemo, useEffect } from 'react';
4
+ import { getAllAssetsArray, getAllChains } from '@silentswap/sdk';
5
+ const AssetsContext = createContext(undefined);
6
+ // Global assets store (similar to Svelte's data.ts)
7
+ let assetsStore = {};
8
+ let chainsStore = {};
9
+ let assetsLoaded = false;
10
+ /**
11
+ * Provider for asset and chain metadata from the SDK
12
+ */
13
+ export const AssetsProvider = ({ children }) => {
14
+ const [assets, setAssets] = useState({});
15
+ const [chains, setChains] = useState({});
16
+ const [loading, setLoading] = useState(true);
17
+ useEffect(() => {
18
+ const loadAssetsData = () => {
19
+ if (assetsLoaded) {
20
+ setAssets(assetsStore);
21
+ setChains(chainsStore);
22
+ setLoading(false);
23
+ return;
24
+ }
25
+ try {
26
+ // Use SDK methods to get assets and chains
27
+ const allAssets = getAllAssetsArray();
28
+ const allChains = getAllChains();
29
+ // Convert to our format
30
+ const assetsMap = {};
31
+ allAssets.forEach((asset) => {
32
+ assetsMap[asset.caip19] = asset;
33
+ });
34
+ const chainsMap = {};
35
+ Object.entries(allChains).forEach(([caip2, chain]) => {
36
+ chainsMap[caip2] = chain;
37
+ });
38
+ // Store globally
39
+ assetsStore = assetsMap;
40
+ chainsStore = chainsMap;
41
+ assetsLoaded = true;
42
+ setAssets(assetsMap);
43
+ setChains(chainsMap);
44
+ setLoading(false);
45
+ }
46
+ catch (error) {
47
+ console.error('Failed to load assets:', error);
48
+ setLoading(false);
49
+ }
50
+ };
51
+ loadAssetsData();
52
+ }, []);
53
+ const getAsset = useCallback((caip19) => {
54
+ return assets[caip19];
55
+ }, [assets]);
56
+ const getFilteredAssets = useCallback((filter) => {
57
+ let filteredAssets = Object.values(assets);
58
+ // Apply ingress filter (exclude blacklisted chains)
59
+ if (filter?.ingress) {
60
+ // For now, just return all - implement blacklist logic if needed
61
+ filteredAssets = filteredAssets;
62
+ }
63
+ return filteredAssets;
64
+ }, [assets]);
65
+ const value = useMemo(() => ({
66
+ assets,
67
+ chains,
68
+ loading,
69
+ getAsset,
70
+ getFilteredAssets,
71
+ }), [assets, chains, loading, getAsset, getFilteredAssets]);
72
+ return _jsx(AssetsContext.Provider, { value: value, children: children });
73
+ };
74
+ /**
75
+ * Hook to access asset and chain metadata
76
+ */
77
+ export const useAssetsContext = () => {
78
+ const context = useContext(AssetsContext);
79
+ if (context === undefined) {
80
+ throw new Error('useAssetsContext must be used within an AssetsProvider');
81
+ }
82
+ return context;
83
+ };
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { type AssetInfo } from '@silentswap/sdk';
3
+ export type UserBalance = {
4
+ asset: AssetInfo;
5
+ balance: bigint;
6
+ usdValue: number;
7
+ };
8
+ export type BalancesContextType = {
9
+ balances: Record<string, UserBalance>;
10
+ loading: boolean;
11
+ totalUsdValue: number;
12
+ errors: Record<string, string>;
13
+ refetch: () => Promise<void>;
14
+ refetchChains: (chainIds: (number | 'solana')[]) => Promise<void>;
15
+ };
16
+ /**
17
+ * Provider for user balances across all supported chains
18
+ */
19
+ export declare const BalancesProvider: React.FC<{
20
+ children: React.ReactNode;
21
+ evmAddress?: string;
22
+ solAddress?: string;
23
+ solanaRpcUrl?: string;
24
+ }>;
25
+ /**
26
+ * Hook to access user balances
27
+ */
28
+ export declare const useBalancesContext: () => BalancesContextType;