@varity-labs/ui-kit 2.0.0-beta.6 → 2.0.0-beta.8

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 (242) hide show
  1. package/README.md +14 -16
  2. package/dist/components/PaymentWidget/PaymentWidget.d.ts +7 -19
  3. package/dist/components/PaymentWidget/PaymentWidget.d.ts.map +1 -1
  4. package/dist/components/PaymentWidget/PaymentWidget.js +10 -176
  5. package/dist/components/PaymentWidget/PaymentWidget.js.map +1 -1
  6. package/dist/components/PaymentWidget/useSeamlessPayment.d.ts +8 -34
  7. package/dist/components/PaymentWidget/useSeamlessPayment.d.ts.map +1 -1
  8. package/dist/components/PaymentWidget/useSeamlessPayment.js +12 -158
  9. package/dist/components/PaymentWidget/useSeamlessPayment.js.map +1 -1
  10. package/dist/components/PaymentWidget/useVarityPayment.d.ts +5 -6
  11. package/dist/components/PaymentWidget/useVarityPayment.d.ts.map +1 -1
  12. package/dist/components/PaymentWidget/useVarityPayment.js +11 -147
  13. package/dist/components/PaymentWidget/useVarityPayment.js.map +1 -1
  14. package/dist/providers/PrivyStack.d.ts +14 -9
  15. package/dist/providers/PrivyStack.d.ts.map +1 -1
  16. package/dist/providers/PrivyStack.js +2 -4
  17. package/dist/providers/PrivyStack.js.map +1 -1
  18. package/dist/providers/VarityDashboardProvider.d.ts +2 -2
  19. package/dist/providers/VarityDashboardProvider.d.ts.map +1 -1
  20. package/dist/providers/VarityDashboardProvider.js +3 -26
  21. package/dist/providers/VarityDashboardProvider.js.map +1 -1
  22. package/dist/providers/WalletSyncProvider.d.ts +3 -7
  23. package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
  24. package/dist/providers/WalletSyncProvider.js +6 -14
  25. package/dist/providers/WalletSyncProvider.js.map +1 -1
  26. package/package.json +5 -6
  27. package/dist/components/Analytics/__tests__/DataTable.test.d.ts +0 -2
  28. package/dist/components/Analytics/__tests__/DataTable.test.d.ts.map +0 -1
  29. package/dist/components/Analytics/__tests__/DataTable.test.js +0 -113
  30. package/dist/components/Analytics/__tests__/DataTable.test.js.map +0 -1
  31. package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts +0 -2
  32. package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts.map +0 -1
  33. package/dist/components/Dashboard/__tests__/EmptyState.test.js +0 -81
  34. package/dist/components/Dashboard/__tests__/EmptyState.test.js.map +0 -1
  35. package/dist/components/Dashboard/__tests__/KPICard.test.d.ts +0 -2
  36. package/dist/components/Dashboard/__tests__/KPICard.test.d.ts.map +0 -1
  37. package/dist/components/Dashboard/__tests__/KPICard.test.js +0 -78
  38. package/dist/components/Dashboard/__tests__/KPICard.test.js.map +0 -1
  39. package/dist/components/InAppWallet/EmailLoginButton.d.ts +0 -27
  40. package/dist/components/InAppWallet/EmailLoginButton.d.ts.map +0 -1
  41. package/dist/components/InAppWallet/EmailLoginButton.js +0 -84
  42. package/dist/components/InAppWallet/EmailLoginButton.js.map +0 -1
  43. package/dist/components/InAppWallet/InAppWalletProvider.d.ts +0 -54
  44. package/dist/components/InAppWallet/InAppWalletProvider.d.ts.map +0 -1
  45. package/dist/components/InAppWallet/InAppWalletProvider.js +0 -225
  46. package/dist/components/InAppWallet/InAppWalletProvider.js.map +0 -1
  47. package/dist/components/InAppWallet/OnboardingFlow.d.ts +0 -25
  48. package/dist/components/InAppWallet/OnboardingFlow.d.ts.map +0 -1
  49. package/dist/components/InAppWallet/OnboardingFlow.js +0 -159
  50. package/dist/components/InAppWallet/OnboardingFlow.js.map +0 -1
  51. package/dist/components/InAppWallet/SocialLoginButtons.d.ts +0 -28
  52. package/dist/components/InAppWallet/SocialLoginButtons.d.ts.map +0 -1
  53. package/dist/components/InAppWallet/SocialLoginButtons.js +0 -128
  54. package/dist/components/InAppWallet/SocialLoginButtons.js.map +0 -1
  55. package/dist/components/InAppWallet/index.d.ts +0 -15
  56. package/dist/components/InAppWallet/index.d.ts.map +0 -1
  57. package/dist/components/InAppWallet/index.js +0 -14
  58. package/dist/components/InAppWallet/index.js.map +0 -1
  59. package/dist/components/Payments/CheckoutModal.d.ts +0 -19
  60. package/dist/components/Payments/CheckoutModal.d.ts.map +0 -1
  61. package/dist/components/Payments/CheckoutModal.js +0 -194
  62. package/dist/components/Payments/CheckoutModal.js.map +0 -1
  63. package/dist/components/Payments/SubscriptionWidget.d.ts +0 -17
  64. package/dist/components/Payments/SubscriptionWidget.d.ts.map +0 -1
  65. package/dist/components/Payments/SubscriptionWidget.js +0 -89
  66. package/dist/components/Payments/SubscriptionWidget.js.map +0 -1
  67. package/dist/components/Payments/constants.d.ts +0 -59
  68. package/dist/components/Payments/constants.d.ts.map +0 -1
  69. package/dist/components/Payments/constants.js +0 -145
  70. package/dist/components/Payments/constants.js.map +0 -1
  71. package/dist/components/Payments/index.d.ts +0 -10
  72. package/dist/components/Payments/index.d.ts.map +0 -1
  73. package/dist/components/Payments/index.js +0 -12
  74. package/dist/components/Payments/index.js.map +0 -1
  75. package/dist/components/Payments/types.d.ts +0 -119
  76. package/dist/components/Payments/types.d.ts.map +0 -1
  77. package/dist/components/Payments/types.js +0 -27
  78. package/dist/components/Payments/types.js.map +0 -1
  79. package/dist/components/Payments/usePayments.d.ts +0 -33
  80. package/dist/components/Payments/usePayments.d.ts.map +0 -1
  81. package/dist/components/Payments/usePayments.js +0 -249
  82. package/dist/components/Payments/usePayments.js.map +0 -1
  83. package/dist/components/Privy/__tests__/InitScreens.test.d.ts +0 -2
  84. package/dist/components/Privy/__tests__/InitScreens.test.d.ts.map +0 -1
  85. package/dist/components/Privy/__tests__/InitScreens.test.js +0 -74
  86. package/dist/components/Privy/__tests__/InitScreens.test.js.map +0 -1
  87. package/dist/components/SIWE/AuthStatus.d.ts +0 -15
  88. package/dist/components/SIWE/AuthStatus.d.ts.map +0 -1
  89. package/dist/components/SIWE/AuthStatus.js +0 -47
  90. package/dist/components/SIWE/AuthStatus.js.map +0 -1
  91. package/dist/components/SIWE/ProtectedRoute.d.ts +0 -17
  92. package/dist/components/SIWE/ProtectedRoute.d.ts.map +0 -1
  93. package/dist/components/SIWE/ProtectedRoute.js +0 -52
  94. package/dist/components/SIWE/ProtectedRoute.js.map +0 -1
  95. package/dist/components/SIWE/SIWEButton.d.ts +0 -22
  96. package/dist/components/SIWE/SIWEButton.d.ts.map +0 -1
  97. package/dist/components/SIWE/SIWEButton.js +0 -106
  98. package/dist/components/SIWE/SIWEButton.js.map +0 -1
  99. package/dist/components/SIWE/SIWEModal.d.ts +0 -19
  100. package/dist/components/SIWE/SIWEModal.d.ts.map +0 -1
  101. package/dist/components/SIWE/SIWEModal.js +0 -75
  102. package/dist/components/SIWE/SIWEModal.js.map +0 -1
  103. package/dist/components/SIWE/SIWEProvider.d.ts +0 -38
  104. package/dist/components/SIWE/SIWEProvider.d.ts.map +0 -1
  105. package/dist/components/SIWE/SIWEProvider.js +0 -227
  106. package/dist/components/SIWE/SIWEProvider.js.map +0 -1
  107. package/dist/components/SIWE/index.d.ts +0 -15
  108. package/dist/components/SIWE/index.d.ts.map +0 -1
  109. package/dist/components/SIWE/index.js +0 -10
  110. package/dist/components/SIWE/index.js.map +0 -1
  111. package/dist/core/VarityClient.d.ts +0 -76
  112. package/dist/core/VarityClient.d.ts.map +0 -1
  113. package/dist/core/VarityClient.js +0 -99
  114. package/dist/core/VarityClient.js.map +0 -1
  115. package/dist/core/config.d.ts +0 -136
  116. package/dist/core/config.d.ts.map +0 -1
  117. package/dist/core/config.js +0 -156
  118. package/dist/core/config.js.map +0 -1
  119. package/dist/hooks/useAnalytics.d.ts +0 -94
  120. package/dist/hooks/useAnalytics.d.ts.map +0 -1
  121. package/dist/hooks/useAnalytics.js +0 -116
  122. package/dist/hooks/useAnalytics.js.map +0 -1
  123. package/dist/hooks/useAuth.d.ts +0 -71
  124. package/dist/hooks/useAuth.d.ts.map +0 -1
  125. package/dist/hooks/useAuth.js +0 -198
  126. package/dist/hooks/useAuth.js.map +0 -1
  127. package/dist/hooks/useDashboard.d.ts +0 -110
  128. package/dist/hooks/useDashboard.d.ts.map +0 -1
  129. package/dist/hooks/useDashboard.js +0 -201
  130. package/dist/hooks/useDashboard.js.map +0 -1
  131. package/dist/hooks/useVarityAPI.d.ts +0 -88
  132. package/dist/hooks/useVarityAPI.d.ts.map +0 -1
  133. package/dist/hooks/useVarityAPI.js +0 -138
  134. package/dist/hooks/useVarityAPI.js.map +0 -1
  135. package/dist/hooks/useWalletAuth.d.ts +0 -108
  136. package/dist/hooks/useWalletAuth.d.ts.map +0 -1
  137. package/dist/hooks/useWalletAuth.js +0 -415
  138. package/dist/hooks/useWalletAuth.js.map +0 -1
  139. package/dist/hooks/web3/index.d.ts +0 -5
  140. package/dist/hooks/web3/index.d.ts.map +0 -1
  141. package/dist/hooks/web3/index.js +0 -6
  142. package/dist/hooks/web3/index.js.map +0 -1
  143. package/dist/hooks/web3/useAddressValidation.d.ts +0 -37
  144. package/dist/hooks/web3/useAddressValidation.d.ts.map +0 -1
  145. package/dist/hooks/web3/useAddressValidation.js +0 -59
  146. package/dist/hooks/web3/useAddressValidation.js.map +0 -1
  147. package/dist/hooks/web3/useBlockExplorer.d.ts +0 -37
  148. package/dist/hooks/web3/useBlockExplorer.d.ts.map +0 -1
  149. package/dist/hooks/web3/useBlockExplorer.js +0 -59
  150. package/dist/hooks/web3/useBlockExplorer.js.map +0 -1
  151. package/dist/hooks/web3/useUSDCFormat.d.ts +0 -34
  152. package/dist/hooks/web3/useUSDCFormat.d.ts.map +0 -1
  153. package/dist/hooks/web3/useUSDCFormat.js +0 -43
  154. package/dist/hooks/web3/useUSDCFormat.js.map +0 -1
  155. package/dist/hooks/web3/useVarityWallet.d.ts +0 -48
  156. package/dist/hooks/web3/useVarityWallet.d.ts.map +0 -1
  157. package/dist/hooks/web3/useVarityWallet.js +0 -70
  158. package/dist/hooks/web3/useVarityWallet.js.map +0 -1
  159. package/dist/modules/cache/index.d.ts +0 -12
  160. package/dist/modules/cache/index.d.ts.map +0 -1
  161. package/dist/modules/cache/index.js +0 -13
  162. package/dist/modules/cache/index.js.map +0 -1
  163. package/dist/providers/ChainContext.d.ts +0 -65
  164. package/dist/providers/ChainContext.d.ts.map +0 -1
  165. package/dist/providers/ChainContext.js +0 -92
  166. package/dist/providers/ChainContext.js.map +0 -1
  167. package/dist/providers/VarityProvider.d.ts +0 -32
  168. package/dist/providers/VarityProvider.d.ts.map +0 -1
  169. package/dist/providers/VarityProvider.js +0 -56
  170. package/dist/providers/VarityProvider.js.map +0 -1
  171. package/dist/providers/WalletContext.d.ts +0 -68
  172. package/dist/providers/WalletContext.d.ts.map +0 -1
  173. package/dist/providers/WalletContext.js +0 -98
  174. package/dist/providers/WalletContext.js.map +0 -1
  175. package/dist/providers/index.d.ts +0 -48
  176. package/dist/providers/index.d.ts.map +0 -1
  177. package/dist/providers/index.js +0 -53
  178. package/dist/providers/index.js.map +0 -1
  179. package/dist/types/api-extensions.d.ts +0 -92
  180. package/dist/types/api-extensions.d.ts.map +0 -1
  181. package/dist/types/api-extensions.js +0 -7
  182. package/dist/types/api-extensions.js.map +0 -1
  183. package/dist/wallets/SimpleSmartWallet.d.ts +0 -68
  184. package/dist/wallets/SimpleSmartWallet.d.ts.map +0 -1
  185. package/dist/wallets/SimpleSmartWallet.js +0 -74
  186. package/dist/wallets/SimpleSmartWallet.js.map +0 -1
  187. package/dist/wallets/SmartWalletProvider.d.ts +0 -217
  188. package/dist/wallets/SmartWalletProvider.d.ts.map +0 -1
  189. package/dist/wallets/SmartWalletProvider.js +0 -366
  190. package/dist/wallets/SmartWalletProvider.js.map +0 -1
  191. package/dist/wallets/config.d.ts +0 -222
  192. package/dist/wallets/config.d.ts.map +0 -1
  193. package/dist/wallets/config.js +0 -206
  194. package/dist/wallets/config.js.map +0 -1
  195. package/dist/wallets/index.d.ts +0 -9
  196. package/dist/wallets/index.d.ts.map +0 -1
  197. package/dist/wallets/index.js +0 -9
  198. package/dist/wallets/index.js.map +0 -1
  199. package/dist/web3/AddressDisplay/AddressDisplay.d.ts +0 -33
  200. package/dist/web3/AddressDisplay/AddressDisplay.d.ts.map +0 -1
  201. package/dist/web3/AddressDisplay/AddressDisplay.js +0 -42
  202. package/dist/web3/AddressDisplay/AddressDisplay.js.map +0 -1
  203. package/dist/web3/AddressInput/AddressInput.d.ts +0 -36
  204. package/dist/web3/AddressInput/AddressInput.d.ts.map +0 -1
  205. package/dist/web3/AddressInput/AddressInput.js +0 -54
  206. package/dist/web3/AddressInput/AddressInput.js.map +0 -1
  207. package/dist/web3/AmountInput/AmountInput.d.ts +0 -41
  208. package/dist/web3/AmountInput/AmountInput.d.ts.map +0 -1
  209. package/dist/web3/AmountInput/AmountInput.js +0 -74
  210. package/dist/web3/AmountInput/AmountInput.js.map +0 -1
  211. package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts +0 -30
  212. package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts.map +0 -1
  213. package/dist/web3/BalanceDisplay/BalanceDisplay.js +0 -35
  214. package/dist/web3/BalanceDisplay/BalanceDisplay.js.map +0 -1
  215. package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts +0 -41
  216. package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts.map +0 -1
  217. package/dist/web3/BlockExplorerLink/BlockExplorerLink.js +0 -46
  218. package/dist/web3/BlockExplorerLink/BlockExplorerLink.js.map +0 -1
  219. package/dist/web3/ConnectWallet/ConnectWallet.d.ts +0 -35
  220. package/dist/web3/ConnectWallet/ConnectWallet.d.ts.map +0 -1
  221. package/dist/web3/ConnectWallet/ConnectWallet.js +0 -58
  222. package/dist/web3/ConnectWallet/ConnectWallet.js.map +0 -1
  223. package/dist/web3/DisconnectButton/DisconnectButton.d.ts +0 -30
  224. package/dist/web3/DisconnectButton/DisconnectButton.d.ts.map +0 -1
  225. package/dist/web3/DisconnectButton/DisconnectButton.js +0 -48
  226. package/dist/web3/DisconnectButton/DisconnectButton.js.map +0 -1
  227. package/dist/web3/WalletBalance/WalletBalance.d.ts +0 -27
  228. package/dist/web3/WalletBalance/WalletBalance.d.ts.map +0 -1
  229. package/dist/web3/WalletBalance/WalletBalance.js +0 -49
  230. package/dist/web3/WalletBalance/WalletBalance.js.map +0 -1
  231. package/dist/web3/WalletDropdown/WalletDropdown.d.ts +0 -29
  232. package/dist/web3/WalletDropdown/WalletDropdown.d.ts.map +0 -1
  233. package/dist/web3/WalletDropdown/WalletDropdown.js +0 -93
  234. package/dist/web3/WalletDropdown/WalletDropdown.js.map +0 -1
  235. package/dist/web3/WalletInfo/WalletInfo.d.ts +0 -31
  236. package/dist/web3/WalletInfo/WalletInfo.d.ts.map +0 -1
  237. package/dist/web3/WalletInfo/WalletInfo.js +0 -41
  238. package/dist/web3/WalletInfo/WalletInfo.js.map +0 -1
  239. package/dist/web3/index.d.ts +0 -11
  240. package/dist/web3/index.d.ts.map +0 -1
  241. package/dist/web3/index.js +0 -14
  242. package/dist/web3/index.js.map +0 -1
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- /**
3
- * Protected Route Component
4
- * Wrapper for routes that require authentication
5
- */
6
- interface ProtectedRouteProps {
7
- children: React.ReactNode;
8
- fallback?: React.ReactNode;
9
- redirectTo?: string;
10
- clientId: string;
11
- onUnauthorized?: () => void;
12
- requireAuth?: boolean;
13
- loadingComponent?: React.ReactNode;
14
- }
15
- export declare const ProtectedRoute: React.FC<ProtectedRouteProps>;
16
- export default ProtectedRoute;
17
- //# sourceMappingURL=ProtectedRoute.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../../src/components/SIWE/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD;;;GAGG;AAEH,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuDxD,CAAC;AAiDF,eAAe,cAAc,CAAC"}
@@ -1,52 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { useSIWE } from './SIWEProvider';
3
- import { SIWEModal } from './SIWEModal';
4
- export const ProtectedRoute = ({ children, fallback, redirectTo, clientId, onUnauthorized, requireAuth = true, loadingComponent, }) => {
5
- const { isAuthenticated, isLoading } = useSIWE();
6
- const [showAuthModal, setShowAuthModal] = useState(false);
7
- useEffect(() => {
8
- if (!isLoading && !isAuthenticated && requireAuth) {
9
- if (redirectTo) {
10
- window.location.href = redirectTo;
11
- }
12
- else if (onUnauthorized) {
13
- onUnauthorized();
14
- }
15
- else {
16
- setShowAuthModal(true);
17
- }
18
- }
19
- }, [isAuthenticated, isLoading, requireAuth, redirectTo, onUnauthorized]);
20
- // Show loading state
21
- if (isLoading) {
22
- return loadingComponent ? (React.createElement(React.Fragment, null, loadingComponent)) : (React.createElement(DefaultLoadingScreen, null));
23
- }
24
- // Show unauthorized fallback
25
- if (!isAuthenticated && requireAuth) {
26
- return (React.createElement(React.Fragment, null,
27
- fallback || (React.createElement(DefaultUnauthorizedScreen, { onLogin: () => setShowAuthModal(true) })),
28
- React.createElement(SIWEModal, { isOpen: showAuthModal, onClose: () => setShowAuthModal(false), clientId: clientId, requireAuth: requireAuth, onSuccess: () => setShowAuthModal(false) })));
29
- }
30
- // Render protected content
31
- return React.createElement(React.Fragment, null, children);
32
- };
33
- /**
34
- * Default Loading Screen
35
- */
36
- const DefaultLoadingScreen = () => (React.createElement("div", { className: "min-h-screen flex items-center justify-center bg-gray-900" },
37
- React.createElement("div", { className: "text-center" },
38
- React.createElement("div", { className: "inline-block animate-spin rounded-full h-12 w-12 border-b-2 border-blue-500 mb-4" }),
39
- React.createElement("p", { className: "text-gray-400" }, "Loading..."))));
40
- /**
41
- * Default Unauthorized Screen
42
- */
43
- const DefaultUnauthorizedScreen = ({ onLogin }) => (React.createElement("div", { className: "min-h-screen flex items-center justify-center bg-gray-900" },
44
- React.createElement("div", { className: "text-center max-w-md px-4" },
45
- React.createElement("div", { className: "mb-8" },
46
- React.createElement("svg", { className: "w-20 h-20 text-gray-600 mx-auto mb-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
47
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" }))),
48
- React.createElement("h1", { className: "text-3xl font-bold text-white mb-4" }, "Authentication Required"),
49
- React.createElement("p", { className: "text-gray-400 mb-8" }, "You need to sign in with your Ethereum wallet to access this page."),
50
- React.createElement("button", { onClick: onLogin, className: "px-8 py-3 bg-blue-600 hover:bg-blue-700 text-white font-semibold rounded-lg transition-colors" }, "Sign In with Ethereum"))));
51
- export default ProtectedRoute;
52
- //# sourceMappingURL=ProtectedRoute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProtectedRoute.js","sourceRoot":"","sources":["../../../src/components/SIWE/ProtectedRoute.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- /**
3
- * SIWE Button Component
4
- * Combines wallet connection with SIWE authentication
5
- */
6
- interface SIWEButtonProps {
7
- clientId: string;
8
- className?: string;
9
- loginText?: string;
10
- logoutText?: string;
11
- connectWalletText?: string;
12
- loadingText?: string;
13
- onLoginStart?: () => void;
14
- onLoginComplete?: () => void;
15
- onLogoutComplete?: () => void;
16
- theme?: 'light' | 'dark';
17
- variant?: 'primary' | 'secondary' | 'outline';
18
- size?: 'sm' | 'md' | 'lg';
19
- }
20
- export declare const SIWEButton: React.FC<SIWEButtonProps>;
21
- export default SIWEButton;
22
- //# sourceMappingURL=SIWEButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEButton.d.ts","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC;;;GAGG;AAEH,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuIhD,CAAC;AAmEF,eAAe,UAAU,CAAC"}
@@ -1,106 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { ConnectButton, useActiveAccount } from 'thirdweb/react';
3
- import { createThirdwebClient } from 'thirdweb';
4
- import { useSIWE } from './SIWEProvider';
5
- export const SIWEButton = ({ clientId, className = '', loginText = 'Sign In with Ethereum', logoutText = 'Sign Out', connectWalletText = 'Connect Wallet', loadingText = 'Signing in...', onLoginStart, onLoginComplete, onLogoutComplete, theme = 'dark', variant = 'primary', size = 'md', }) => {
6
- const { isAuthenticated, isLoading, login, logout, error } = useSIWE();
7
- const account = useActiveAccount();
8
- const [isProcessing, setIsProcessing] = useState(false);
9
- const client = createThirdwebClient({ clientId });
10
- // Handle SIWE login
11
- const handleLogin = async () => {
12
- setIsProcessing(true);
13
- onLoginStart?.();
14
- try {
15
- await login();
16
- onLoginComplete?.();
17
- }
18
- catch (error) {
19
- console.error('SIWE login failed:', error);
20
- }
21
- finally {
22
- setIsProcessing(false);
23
- }
24
- };
25
- // Handle logout
26
- const handleLogout = async () => {
27
- setIsProcessing(true);
28
- try {
29
- await logout();
30
- onLogoutComplete?.();
31
- }
32
- catch (error) {
33
- console.error('Logout failed:', error);
34
- }
35
- finally {
36
- setIsProcessing(false);
37
- }
38
- };
39
- // Get button styles based on variant and size
40
- const getButtonStyles = () => {
41
- const baseStyles = 'font-semibold rounded-lg transition-all duration-200 flex items-center justify-center gap-2';
42
- const sizeStyles = {
43
- sm: 'px-4 py-2 text-sm',
44
- md: 'px-6 py-3 text-base',
45
- lg: 'px-8 py-4 text-lg',
46
- };
47
- const variantStyles = {
48
- primary: theme === 'dark'
49
- ? 'bg-blue-600 hover:bg-blue-700 text-white'
50
- : 'bg-blue-500 hover:bg-blue-600 text-white',
51
- secondary: theme === 'dark'
52
- ? 'bg-gray-700 hover:bg-gray-600 text-white'
53
- : 'bg-gray-200 hover:bg-gray-300 text-gray-900',
54
- outline: theme === 'dark'
55
- ? 'border-2 border-blue-600 text-blue-600 hover:bg-blue-600 hover:text-white'
56
- : 'border-2 border-blue-500 text-blue-500 hover:bg-blue-500 hover:text-white',
57
- };
58
- return `${baseStyles} ${sizeStyles[size]} ${variantStyles[variant]} ${className}`;
59
- };
60
- // If wallet is not connected, show connect button
61
- if (!account) {
62
- return (React.createElement("div", { className: className },
63
- React.createElement(ConnectButton, { client: client, theme: theme, connectButton: {
64
- label: connectWalletText,
65
- } })));
66
- }
67
- // If authenticated, show sign out button
68
- if (isAuthenticated) {
69
- return (React.createElement("button", { onClick: handleLogout, disabled: isProcessing, className: getButtonStyles() }, isProcessing ? (React.createElement(React.Fragment, null,
70
- React.createElement(LoadingSpinner, null),
71
- loadingText)) : (React.createElement(React.Fragment, null,
72
- React.createElement(CheckIcon, null),
73
- logoutText))));
74
- }
75
- // If wallet connected but not authenticated, show SIWE button
76
- return (React.createElement("div", { className: "space-y-2" },
77
- React.createElement("button", { onClick: handleLogin, disabled: isLoading || isProcessing, className: getButtonStyles() }, isLoading || isProcessing ? (React.createElement(React.Fragment, null,
78
- React.createElement(LoadingSpinner, null),
79
- loadingText)) : (React.createElement(React.Fragment, null,
80
- React.createElement(EthereumIcon, null),
81
- loginText))),
82
- error && (React.createElement("p", { className: "text-sm text-red-500 mt-2" }, error))));
83
- };
84
- /**
85
- * Loading Spinner Icon
86
- */
87
- const LoadingSpinner = () => (React.createElement("svg", { className: "animate-spin h-5 w-5", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" },
88
- React.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
89
- React.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })));
90
- /**
91
- * Ethereum Icon
92
- */
93
- const EthereumIcon = () => (React.createElement("svg", { className: "h-5 w-5", viewBox: "0 0 256 417", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94
- React.createElement("path", { d: "M127.961 0l-2.795 9.5v275.668l2.795 2.79 127.962-75.638z", fillOpacity: ".602" }),
95
- React.createElement("path", { d: "M127.962 0L0 212.32l127.962 75.639V0z" }),
96
- React.createElement("path", { d: "M127.961 312.187l-1.575 1.92v98.199l1.575 4.6L256 236.587z", fillOpacity: ".602" }),
97
- React.createElement("path", { d: "M127.962 416.905v-104.72L0 236.585z" }),
98
- React.createElement("path", { d: "M127.961 287.958l127.96-75.637-127.96-58.162z", fillOpacity: ".2" }),
99
- React.createElement("path", { d: "M0 212.32l127.96 75.638v-133.8z", fillOpacity: ".602" })));
100
- /**
101
- * Check Icon
102
- */
103
- const CheckIcon = () => (React.createElement("svg", { className: "h-5 w-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
104
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })));
105
- export default SIWEButton;
106
- //# sourceMappingURL=SIWEButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEButton.js","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEButton.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- /**
3
- * SIWE Modal Component
4
- * Full-screen authentication modal with SIWE flow
5
- */
6
- interface SIWEModalProps {
7
- isOpen: boolean;
8
- onClose: () => void;
9
- clientId: string;
10
- title?: string;
11
- description?: string;
12
- logoUrl?: string;
13
- onSuccess?: () => void;
14
- theme?: 'light' | 'dark';
15
- requireAuth?: boolean;
16
- }
17
- export declare const SIWEModal: React.FC<SIWEModalProps>;
18
- export default SIWEModal;
19
- //# sourceMappingURL=SIWEModal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEModal.d.ts","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD;;;GAGG;AAEH,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmJ9C,CAAC;AA+CF,eAAe,SAAS,CAAC"}
@@ -1,75 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { useActiveAccount } from 'thirdweb/react';
3
- import { useSIWE } from './SIWEProvider';
4
- import { SIWEButton } from './SIWEButton';
5
- export const SIWEModal = ({ isOpen, onClose, clientId, title = 'Sign In to Varity', description = 'Connect your wallet and sign the message to authenticate', logoUrl, onSuccess, theme = 'dark', requireAuth = false, }) => {
6
- const { isAuthenticated } = useSIWE();
7
- const account = useActiveAccount();
8
- const [showSuccess, setShowSuccess] = useState(false);
9
- // Close modal when authenticated
10
- useEffect(() => {
11
- if (isAuthenticated && isOpen) {
12
- setShowSuccess(true);
13
- setTimeout(() => {
14
- onSuccess?.();
15
- onClose();
16
- setShowSuccess(false);
17
- }, 2000);
18
- }
19
- }, [isAuthenticated, isOpen, onSuccess, onClose]);
20
- // Don't render if not open
21
- if (!isOpen)
22
- return null;
23
- const bgColor = theme === 'dark' ? 'bg-gray-900' : 'bg-white';
24
- const textColor = theme === 'dark' ? 'text-white' : 'text-gray-900';
25
- const borderColor = theme === 'dark' ? 'border-gray-700' : 'border-gray-200';
26
- return (React.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center" },
27
- React.createElement("div", { className: "absolute inset-0 bg-black bg-opacity-50", onClick: !requireAuth ? onClose : undefined }),
28
- React.createElement("div", { className: `relative w-full max-w-md mx-4 rounded-2xl shadow-2xl ${bgColor} ${textColor} border ${borderColor}` },
29
- !requireAuth && (React.createElement("button", { onClick: onClose, className: "absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors" },
30
- React.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
31
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })))),
32
- React.createElement("div", { className: "p-8" },
33
- logoUrl && (React.createElement("div", { className: "flex justify-center mb-6" },
34
- React.createElement("img", { src: logoUrl, alt: "Logo", className: "h-16 w-auto" }))),
35
- React.createElement("h2", { className: "text-2xl font-bold text-center mb-2" }, title),
36
- React.createElement("p", { className: `text-center mb-8 ${theme === 'dark' ? 'text-gray-400' : 'text-gray-600'}` }, description),
37
- showSuccess ? (React.createElement("div", { className: "text-center py-8" },
38
- React.createElement("div", { className: "inline-flex items-center justify-center w-16 h-16 rounded-full bg-green-500 text-white mb-4" },
39
- React.createElement("svg", { className: "w-8 h-8", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
40
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }))),
41
- React.createElement("p", { className: "text-xl font-semibold text-green-500" }, "Successfully Authenticated!"))) : (React.createElement(React.Fragment, null,
42
- React.createElement("div", { className: "space-y-4 mb-8" },
43
- React.createElement(Step, { number: 1, title: "Connect Wallet", description: "Connect your Ethereum wallet", isComplete: !!account, theme: theme }),
44
- React.createElement(Step, { number: 2, title: "Sign Message", description: "Sign the authentication message", isComplete: isAuthenticated, isActive: !!account && !isAuthenticated, theme: theme }),
45
- React.createElement(Step, { number: 3, title: "Access Dashboard", description: "Start using the platform", isComplete: isAuthenticated, theme: theme })),
46
- React.createElement("div", { className: "flex justify-center" },
47
- React.createElement(SIWEButton, { clientId: clientId, theme: theme, variant: "primary", size: "lg", className: "w-full", onLoginComplete: () => {
48
- setShowSuccess(true);
49
- } })))),
50
- React.createElement("div", { className: `mt-6 p-4 rounded-lg ${theme === 'dark' ? 'bg-gray-800' : 'bg-gray-100'}` },
51
- React.createElement("div", { className: "flex items-start gap-3" },
52
- React.createElement("svg", { className: "w-5 h-5 text-blue-500 mt-0.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
53
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" })),
54
- React.createElement("div", null,
55
- React.createElement("p", { className: `text-sm font-semibold mb-1 ${theme === 'dark' ? 'text-gray-300' : 'text-gray-700'}` }, "Secure Authentication"),
56
- React.createElement("p", { className: `text-xs ${theme === 'dark' ? 'text-gray-500' : 'text-gray-600'}` }, "Your wallet signature is used to verify ownership. We never have access to your private keys."))))))));
57
- };
58
- const Step = ({ number, title, description, isComplete, isActive, theme }) => {
59
- const bgColor = isComplete
60
- ? 'bg-green-500'
61
- : isActive
62
- ? 'bg-blue-500'
63
- : theme === 'dark'
64
- ? 'bg-gray-700'
65
- : 'bg-gray-300';
66
- const textColor = theme === 'dark' ? 'text-gray-400' : 'text-gray-600';
67
- return (React.createElement("div", { className: "flex items-center gap-4" },
68
- React.createElement("div", { className: `flex-shrink-0 w-10 h-10 rounded-full ${bgColor} flex items-center justify-center text-white font-bold` }, isComplete ? (React.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
69
- React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }))) : (number)),
70
- React.createElement("div", { className: "flex-1" },
71
- React.createElement("p", { className: `font-semibold ${isComplete || isActive ? 'text-current' : textColor}` }, title),
72
- React.createElement("p", { className: `text-sm ${textColor}` }, description))));
73
- };
74
- export default SIWEModal;
75
- //# sourceMappingURL=SIWEModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEModal.js","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEModal.tsx"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- interface AuthUser {
3
- address: string;
4
- chainId: number;
5
- ens?: string;
6
- }
7
- interface AuthState {
8
- isAuthenticated: boolean;
9
- isLoading: boolean;
10
- user: AuthUser | null;
11
- accessToken: string | null;
12
- refreshToken: string | null;
13
- error: string | null;
14
- }
15
- interface AuthContextValue extends AuthState {
16
- login: () => Promise<void>;
17
- logout: () => Promise<void>;
18
- refreshAccessToken: () => Promise<void>;
19
- }
20
- interface SIWEProviderProps {
21
- children: ReactNode;
22
- apiUrl: string;
23
- chainId?: number;
24
- onLoginSuccess?: (user: AuthUser) => void;
25
- onLoginError?: (error: Error) => void;
26
- onLogoutSuccess?: () => void;
27
- }
28
- /**
29
- * SIWE Provider Component
30
- * Manages authentication state and provides login/logout functionality
31
- */
32
- export declare const SIWEProvider: React.FC<SIWEProviderProps>;
33
- /**
34
- * Custom hook to use SIWE authentication context
35
- */
36
- export declare const useSIWE: () => AuthContextValue;
37
- export default SIWEProvider;
38
- //# sourceMappingURL=SIWEProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEProvider.d.ts","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA+D,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBtG,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,UAAU,gBAAiB,SAAQ,SAAS;IAC1C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAID;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmOpD,CAAC;AAkBF;;GAEG;AACH,eAAO,MAAM,OAAO,wBAMnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,227 +0,0 @@
1
- import React, { createContext, useContext, useState, useEffect, useCallback } from 'react';
2
- import axios from 'axios';
3
- import { useActiveAccount, useActiveWallet } from 'thirdweb/react';
4
- const AuthContext = createContext(undefined);
5
- /**
6
- * SIWE Provider Component
7
- * Manages authentication state and provides login/logout functionality
8
- */
9
- export const SIWEProvider = ({ children, apiUrl, chainId = 33529, // Varity L3 Chain ID
10
- onLoginSuccess, onLoginError, onLogoutSuccess, }) => {
11
- const [authState, setAuthState] = useState({
12
- isAuthenticated: false,
13
- isLoading: false,
14
- user: null,
15
- accessToken: null,
16
- refreshToken: null,
17
- error: null,
18
- });
19
- const account = useActiveAccount();
20
- const wallet = useActiveWallet();
21
- const apiClient = axios.create({ baseURL: apiUrl });
22
- const clearStoredAuth = useCallback(() => {
23
- localStorage.removeItem('varity_access_token');
24
- localStorage.removeItem('varity_refresh_token');
25
- localStorage.removeItem('varity_user');
26
- }, []);
27
- // Load tokens from localStorage on mount
28
- useEffect(() => {
29
- const loadStoredAuth = () => {
30
- try {
31
- const accessToken = localStorage.getItem('varity_access_token');
32
- const refreshToken = localStorage.getItem('varity_refresh_token');
33
- const userStr = localStorage.getItem('varity_user');
34
- if (accessToken && refreshToken && userStr) {
35
- const user = JSON.parse(userStr);
36
- setAuthState({
37
- isAuthenticated: true,
38
- isLoading: false,
39
- user,
40
- accessToken,
41
- refreshToken,
42
- error: null,
43
- });
44
- }
45
- }
46
- catch (error) {
47
- console.error('Failed to load stored auth:', error);
48
- clearStoredAuth();
49
- }
50
- };
51
- loadStoredAuth();
52
- }, [clearStoredAuth]);
53
- // Setup axios interceptor for adding auth token
54
- useEffect(() => {
55
- if (authState.accessToken) {
56
- const interceptorId = apiClient.interceptors.request.use((config) => {
57
- config.headers.Authorization = `Bearer ${authState.accessToken}`;
58
- return config;
59
- }, (error) => Promise.reject(error));
60
- return () => {
61
- apiClient.interceptors.request.eject(interceptorId);
62
- };
63
- }
64
- // eslint-disable-next-line react-hooks/exhaustive-deps
65
- }, [authState.accessToken]);
66
- const saveAuthToStorage = useCallback((accessToken, refreshToken, user) => {
67
- localStorage.setItem('varity_access_token', accessToken);
68
- localStorage.setItem('varity_refresh_token', refreshToken);
69
- localStorage.setItem('varity_user', JSON.stringify(user));
70
- }, []);
71
- /**
72
- * Login with SIWE
73
- * 1. Get nonce from backend
74
- * 2. Sign SIWE message with wallet
75
- * 3. Submit signature to backend
76
- * 4. Receive JWT tokens
77
- */
78
- const login = useCallback(async () => {
79
- if (!account || !wallet) {
80
- const error = new Error('Wallet not connected');
81
- setAuthState(prev => ({ ...prev, error: error.message }));
82
- onLoginError?.(error);
83
- return;
84
- }
85
- try {
86
- setAuthState(prev => ({ ...prev, isLoading: true, error: null }));
87
- // Step 1: Get nonce from backend
88
- const nonceResponse = await apiClient.post('/api/v1/auth/nonce', {
89
- address: account.address,
90
- chainId,
91
- });
92
- const siweMessage = nonceResponse.data.data.message;
93
- // Step 2: Create EIP-4361 formatted message
94
- const messageToSign = formatSiweMessage(siweMessage);
95
- // Step 3: Sign message with wallet (v5 API uses account.signMessage)
96
- const signature = await account.signMessage({
97
- message: messageToSign,
98
- });
99
- // Step 4: Submit signature to backend for verification
100
- const loginResponse = await apiClient.post('/api/v1/auth/login', {
101
- message: siweMessage,
102
- signature,
103
- });
104
- const { accessToken, refreshToken, user } = loginResponse.data.data;
105
- // Save tokens to localStorage
106
- saveAuthToStorage(accessToken, refreshToken, user);
107
- // Update state
108
- setAuthState({
109
- isAuthenticated: true,
110
- isLoading: false,
111
- user,
112
- accessToken,
113
- refreshToken,
114
- error: null,
115
- });
116
- onLoginSuccess?.(user);
117
- }
118
- catch (error) {
119
- const errorMessage = error.response?.data?.message || error.message || 'Authentication failed';
120
- setAuthState({
121
- isAuthenticated: false,
122
- isLoading: false,
123
- user: null,
124
- accessToken: null,
125
- refreshToken: null,
126
- error: errorMessage,
127
- });
128
- onLoginError?.(new Error(errorMessage));
129
- clearStoredAuth();
130
- }
131
- }, [account, wallet, chainId, apiClient, onLoginSuccess, onLoginError, saveAuthToStorage, clearStoredAuth]);
132
- /**
133
- * Logout
134
- * Clears authentication state and localStorage
135
- */
136
- const logout = useCallback(async () => {
137
- try {
138
- // Call backend logout endpoint
139
- if (authState.accessToken) {
140
- await apiClient.post('/api/v1/auth/logout', {}, {
141
- headers: { Authorization: `Bearer ${authState.accessToken}` }
142
- });
143
- }
144
- }
145
- catch (error) {
146
- console.error('Logout error:', error);
147
- }
148
- finally {
149
- // Clear state regardless of backend response
150
- setAuthState({
151
- isAuthenticated: false,
152
- isLoading: false,
153
- user: null,
154
- accessToken: null,
155
- refreshToken: null,
156
- error: null,
157
- });
158
- clearStoredAuth();
159
- onLogoutSuccess?.();
160
- }
161
- }, [authState.accessToken, apiClient, clearStoredAuth, onLogoutSuccess]);
162
- /**
163
- * Refresh access token using refresh token
164
- */
165
- const refreshAccessToken = useCallback(async () => {
166
- if (!authState.refreshToken) {
167
- return;
168
- }
169
- try {
170
- const response = await apiClient.post('/api/v1/auth/refresh', {
171
- refreshToken: authState.refreshToken,
172
- });
173
- const { accessToken } = response.data.data;
174
- // Update access token
175
- localStorage.setItem('varity_access_token', accessToken);
176
- setAuthState(prev => ({ ...prev, accessToken }));
177
- }
178
- catch (error) {
179
- console.error('Token refresh failed:', error);
180
- // If refresh fails, logout
181
- await logout();
182
- }
183
- }, [authState.refreshToken, apiClient, logout]);
184
- // Auto-refresh token every 30 minutes
185
- useEffect(() => {
186
- if (authState.isAuthenticated && authState.refreshToken) {
187
- const interval = setInterval(() => {
188
- refreshAccessToken();
189
- }, 30 * 60 * 1000); // 30 minutes
190
- return () => clearInterval(interval);
191
- }
192
- }, [authState.isAuthenticated, authState.refreshToken, refreshAccessToken]);
193
- const contextValue = {
194
- ...authState,
195
- login,
196
- logout,
197
- refreshAccessToken,
198
- };
199
- return (React.createElement(AuthContext.Provider, { value: contextValue }, children));
200
- };
201
- /**
202
- * Format SIWE message according to EIP-4361
203
- */
204
- function formatSiweMessage(message) {
205
- return `${message.domain} wants you to sign in with your Ethereum account:
206
- ${message.address}
207
-
208
- ${message.statement}
209
-
210
- URI: ${message.uri}
211
- Version: ${message.version}
212
- Chain ID: ${message.chainId}
213
- Nonce: ${message.nonce}
214
- Issued At: ${message.issuedAt}${message.expirationTime ? `\nExpiration Time: ${message.expirationTime}` : ''}`;
215
- }
216
- /**
217
- * Custom hook to use SIWE authentication context
218
- */
219
- export const useSIWE = () => {
220
- const context = useContext(AuthContext);
221
- if (!context) {
222
- throw new Error('useSIWE must be used within SIWEProvider');
223
- }
224
- return context;
225
- };
226
- export default SIWEProvider;
227
- //# sourceMappingURL=SIWEProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SIWEProvider.js","sourceRoot":"","sources":["../../../src/components/SIWE/SIWEProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * SIWE (Sign-In with Ethereum) Components
3
- * EIP-4361 compliant authentication components for Web3 applications
4
- */
5
- export { SIWEProvider, useSIWE } from './SIWEProvider';
6
- export { SIWEButton } from './SIWEButton';
7
- export { SIWEModal } from './SIWEModal';
8
- export { ProtectedRoute } from './ProtectedRoute';
9
- export { AuthStatus } from './AuthStatus';
10
- export type { default as SIWEProviderProps } from './SIWEProvider';
11
- export type { default as SIWEButtonProps } from './SIWEButton';
12
- export type { default as SIWEModalProps } from './SIWEModal';
13
- export type { default as ProtectedRouteProps } from './ProtectedRoute';
14
- export type { default as AuthStatusProps } from './AuthStatus';
15
- //# sourceMappingURL=index.d.ts.map