@varity-labs/ui-kit 2.0.0-alpha.1
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/LICENSE +31 -0
- package/README.md +248 -0
- package/dist/components/AI/ChatbotWidget.d.ts +53 -0
- package/dist/components/AI/ChatbotWidget.d.ts.map +1 -0
- package/dist/components/AI/ChatbotWidget.js +126 -0
- package/dist/components/AI/ChatbotWidget.js.map +1 -0
- package/dist/components/AI/InputBar.d.ts +25 -0
- package/dist/components/AI/InputBar.d.ts.map +1 -0
- package/dist/components/AI/InputBar.js +126 -0
- package/dist/components/AI/InputBar.js.map +1 -0
- package/dist/components/AI/MessageBubble.d.ts +37 -0
- package/dist/components/AI/MessageBubble.d.ts.map +1 -0
- package/dist/components/AI/MessageBubble.js +124 -0
- package/dist/components/AI/MessageBubble.js.map +1 -0
- package/dist/components/AI/index.d.ts +12 -0
- package/dist/components/AI/index.d.ts.map +1 -0
- package/dist/components/AI/index.js +9 -0
- package/dist/components/AI/index.js.map +1 -0
- package/dist/components/Analytics/AnalyticsCard.d.ts +48 -0
- package/dist/components/Analytics/AnalyticsCard.d.ts.map +1 -0
- package/dist/components/Analytics/AnalyticsCard.js +156 -0
- package/dist/components/Analytics/AnalyticsCard.js.map +1 -0
- package/dist/components/Analytics/ChartContainer.d.ts +53 -0
- package/dist/components/Analytics/ChartContainer.d.ts.map +1 -0
- package/dist/components/Analytics/ChartContainer.js +128 -0
- package/dist/components/Analytics/ChartContainer.js.map +1 -0
- package/dist/components/Analytics/DataTable.d.ts +62 -0
- package/dist/components/Analytics/DataTable.d.ts.map +1 -0
- package/dist/components/Analytics/DataTable.js +165 -0
- package/dist/components/Analytics/DataTable.js.map +1 -0
- package/dist/components/Analytics/MetricDisplay.d.ts +42 -0
- package/dist/components/Analytics/MetricDisplay.d.ts.map +1 -0
- package/dist/components/Analytics/MetricDisplay.js +110 -0
- package/dist/components/Analytics/MetricDisplay.js.map +1 -0
- package/dist/components/Analytics/index.d.ts +14 -0
- package/dist/components/Analytics/index.d.ts.map +1 -0
- package/dist/components/Analytics/index.js +10 -0
- package/dist/components/Analytics/index.js.map +1 -0
- package/dist/components/Branding/Attribution.d.ts +39 -0
- package/dist/components/Branding/Attribution.d.ts.map +1 -0
- package/dist/components/Branding/Attribution.js +124 -0
- package/dist/components/Branding/Attribution.js.map +1 -0
- package/dist/components/Branding/Logo.d.ts +39 -0
- package/dist/components/Branding/Logo.d.ts.map +1 -0
- package/dist/components/Branding/Logo.js +67 -0
- package/dist/components/Branding/Logo.js.map +1 -0
- package/dist/components/Branding/ThemeProvider.d.ts +85 -0
- package/dist/components/Branding/ThemeProvider.d.ts.map +1 -0
- package/dist/components/Branding/ThemeProvider.js +186 -0
- package/dist/components/Branding/ThemeProvider.js.map +1 -0
- package/dist/components/Branding/index.d.ts +12 -0
- package/dist/components/Branding/index.d.ts.map +1 -0
- package/dist/components/Branding/index.js +9 -0
- package/dist/components/Branding/index.js.map +1 -0
- package/dist/components/Dashboard/DashboardFooter.d.ts +30 -0
- package/dist/components/Dashboard/DashboardFooter.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardFooter.js +68 -0
- package/dist/components/Dashboard/DashboardFooter.js.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts +24 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.js +87 -0
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
- package/dist/components/Dashboard/DashboardLayout.d.ts +71 -0
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardLayout.js +52 -0
- package/dist/components/Dashboard/DashboardLayout.js.map +1 -0
- package/dist/components/Dashboard/DashboardSidebar.d.ts +26 -0
- package/dist/components/Dashboard/DashboardSidebar.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardSidebar.js +146 -0
- package/dist/components/Dashboard/DashboardSidebar.js.map +1 -0
- package/dist/components/Dashboard/EmptyState.d.ts +84 -0
- package/dist/components/Dashboard/EmptyState.d.ts.map +1 -0
- package/dist/components/Dashboard/EmptyState.js +99 -0
- package/dist/components/Dashboard/EmptyState.js.map +1 -0
- package/dist/components/Dashboard/KPICard.d.ts +58 -0
- package/dist/components/Dashboard/KPICard.d.ts.map +1 -0
- package/dist/components/Dashboard/KPICard.js +82 -0
- package/dist/components/Dashboard/KPICard.js.map +1 -0
- package/dist/components/Dashboard/LoadingSkeleton.d.ts +58 -0
- package/dist/components/Dashboard/LoadingSkeleton.d.ts.map +1 -0
- package/dist/components/Dashboard/LoadingSkeleton.js +105 -0
- package/dist/components/Dashboard/LoadingSkeleton.js.map +1 -0
- package/dist/components/Dashboard/StatusBadge.d.ts +57 -0
- package/dist/components/Dashboard/StatusBadge.d.ts.map +1 -0
- package/dist/components/Dashboard/StatusBadge.js +149 -0
- package/dist/components/Dashboard/StatusBadge.js.map +1 -0
- package/dist/components/Dashboard/index.d.ts +19 -0
- package/dist/components/Dashboard/index.d.ts.map +1 -0
- package/dist/components/Dashboard/index.js +18 -0
- package/dist/components/Dashboard/index.js.map +1 -0
- package/dist/components/InAppWallet/EmailLoginButton.d.ts +27 -0
- package/dist/components/InAppWallet/EmailLoginButton.d.ts.map +1 -0
- package/dist/components/InAppWallet/EmailLoginButton.js +84 -0
- package/dist/components/InAppWallet/EmailLoginButton.js.map +1 -0
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts +54 -0
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts.map +1 -0
- package/dist/components/InAppWallet/InAppWalletProvider.js +238 -0
- package/dist/components/InAppWallet/InAppWalletProvider.js.map +1 -0
- package/dist/components/InAppWallet/OnboardingFlow.d.ts +25 -0
- package/dist/components/InAppWallet/OnboardingFlow.d.ts.map +1 -0
- package/dist/components/InAppWallet/OnboardingFlow.js +159 -0
- package/dist/components/InAppWallet/OnboardingFlow.js.map +1 -0
- package/dist/components/InAppWallet/SocialLoginButtons.d.ts +28 -0
- package/dist/components/InAppWallet/SocialLoginButtons.d.ts.map +1 -0
- package/dist/components/InAppWallet/SocialLoginButtons.js +128 -0
- package/dist/components/InAppWallet/SocialLoginButtons.js.map +1 -0
- package/dist/components/InAppWallet/index.d.ts +15 -0
- package/dist/components/InAppWallet/index.d.ts.map +1 -0
- package/dist/components/InAppWallet/index.js +14 -0
- package/dist/components/InAppWallet/index.js.map +1 -0
- package/dist/components/Onramp/BuyUSDCButton.d.ts +27 -0
- package/dist/components/Onramp/BuyUSDCButton.d.ts.map +1 -0
- package/dist/components/Onramp/BuyUSDCButton.js +70 -0
- package/dist/components/Onramp/BuyUSDCButton.js.map +1 -0
- package/dist/components/Onramp/OnrampWidget.d.ts +38 -0
- package/dist/components/Onramp/OnrampWidget.d.ts.map +1 -0
- package/dist/components/Onramp/OnrampWidget.js +105 -0
- package/dist/components/Onramp/OnrampWidget.js.map +1 -0
- package/dist/components/Onramp/index.d.ts +14 -0
- package/dist/components/Onramp/index.d.ts.map +1 -0
- package/dist/components/Onramp/index.js +12 -0
- package/dist/components/Onramp/index.js.map +1 -0
- package/dist/components/Payments/CheckoutModal.d.ts +19 -0
- package/dist/components/Payments/CheckoutModal.d.ts.map +1 -0
- package/dist/components/Payments/CheckoutModal.js +183 -0
- package/dist/components/Payments/CheckoutModal.js.map +1 -0
- package/dist/components/Payments/SubscriptionWidget.d.ts +17 -0
- package/dist/components/Payments/SubscriptionWidget.d.ts.map +1 -0
- package/dist/components/Payments/SubscriptionWidget.js +89 -0
- package/dist/components/Payments/SubscriptionWidget.js.map +1 -0
- package/dist/components/Payments/constants.d.ts +59 -0
- package/dist/components/Payments/constants.d.ts.map +1 -0
- package/dist/components/Payments/constants.js +145 -0
- package/dist/components/Payments/constants.js.map +1 -0
- package/dist/components/Payments/index.d.ts +10 -0
- package/dist/components/Payments/index.d.ts.map +1 -0
- package/dist/components/Payments/index.js +12 -0
- package/dist/components/Payments/index.js.map +1 -0
- package/dist/components/Payments/types.d.ts +119 -0
- package/dist/components/Payments/types.d.ts.map +1 -0
- package/dist/components/Payments/types.js +27 -0
- package/dist/components/Payments/types.js.map +1 -0
- package/dist/components/Payments/usePayments.d.ts +33 -0
- package/dist/components/Payments/usePayments.d.ts.map +1 -0
- package/dist/components/Payments/usePayments.js +249 -0
- package/dist/components/Payments/usePayments.js.map +1 -0
- package/dist/components/Privy/InitTimeoutScreen.d.ts +62 -0
- package/dist/components/Privy/InitTimeoutScreen.d.ts.map +1 -0
- package/dist/components/Privy/InitTimeoutScreen.js +64 -0
- package/dist/components/Privy/InitTimeoutScreen.js.map +1 -0
- package/dist/components/Privy/InitializingScreen.d.ts +56 -0
- package/dist/components/Privy/InitializingScreen.d.ts.map +1 -0
- package/dist/components/Privy/InitializingScreen.js +60 -0
- package/dist/components/Privy/InitializingScreen.js.map +1 -0
- package/dist/components/Privy/PrivyLoginButton.d.ts +27 -0
- package/dist/components/Privy/PrivyLoginButton.d.ts.map +1 -0
- package/dist/components/Privy/PrivyLoginButton.js +48 -0
- package/dist/components/Privy/PrivyLoginButton.js.map +1 -0
- package/dist/components/Privy/PrivyProtectedRoute.d.ts +22 -0
- package/dist/components/Privy/PrivyProtectedRoute.d.ts.map +1 -0
- package/dist/components/Privy/PrivyProtectedRoute.js +46 -0
- package/dist/components/Privy/PrivyProtectedRoute.js.map +1 -0
- package/dist/components/Privy/PrivyReadyGate.d.ts +69 -0
- package/dist/components/Privy/PrivyReadyGate.d.ts.map +1 -0
- package/dist/components/Privy/PrivyReadyGate.js +83 -0
- package/dist/components/Privy/PrivyReadyGate.js.map +1 -0
- package/dist/components/Privy/PrivyUserProfile.d.ts +25 -0
- package/dist/components/Privy/PrivyUserProfile.d.ts.map +1 -0
- package/dist/components/Privy/PrivyUserProfile.js +98 -0
- package/dist/components/Privy/PrivyUserProfile.js.map +1 -0
- package/dist/components/Privy/index.d.ts +21 -0
- package/dist/components/Privy/index.d.ts.map +1 -0
- package/dist/components/Privy/index.js +16 -0
- package/dist/components/Privy/index.js.map +1 -0
- package/dist/components/SIWE/AuthStatus.d.ts +15 -0
- package/dist/components/SIWE/AuthStatus.d.ts.map +1 -0
- package/dist/components/SIWE/AuthStatus.js +47 -0
- package/dist/components/SIWE/AuthStatus.js.map +1 -0
- package/dist/components/SIWE/ProtectedRoute.d.ts +17 -0
- package/dist/components/SIWE/ProtectedRoute.d.ts.map +1 -0
- package/dist/components/SIWE/ProtectedRoute.js +52 -0
- package/dist/components/SIWE/ProtectedRoute.js.map +1 -0
- package/dist/components/SIWE/SIWEButton.d.ts +22 -0
- package/dist/components/SIWE/SIWEButton.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEButton.js +106 -0
- package/dist/components/SIWE/SIWEButton.js.map +1 -0
- package/dist/components/SIWE/SIWEModal.d.ts +19 -0
- package/dist/components/SIWE/SIWEModal.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEModal.js +75 -0
- package/dist/components/SIWE/SIWEModal.js.map +1 -0
- package/dist/components/SIWE/SIWEProvider.d.ts +38 -0
- package/dist/components/SIWE/SIWEProvider.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEProvider.js +227 -0
- package/dist/components/SIWE/SIWEProvider.js.map +1 -0
- package/dist/components/SIWE/index.d.ts +15 -0
- package/dist/components/SIWE/index.d.ts.map +1 -0
- package/dist/components/SIWE/index.js +10 -0
- package/dist/components/SIWE/index.js.map +1 -0
- package/dist/components/index.d.ts +11 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +16 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/templates/Finance/FinanceDashboard.d.ts +15 -0
- package/dist/components/templates/Finance/FinanceDashboard.d.ts.map +1 -0
- package/dist/components/templates/Finance/FinanceDashboard.js +112 -0
- package/dist/components/templates/Finance/FinanceDashboard.js.map +1 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.d.ts +15 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.d.ts.map +1 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.js +121 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.js.map +1 -0
- package/dist/components/templates/ISO/ISODashboard.d.ts +15 -0
- package/dist/components/templates/ISO/ISODashboard.d.ts.map +1 -0
- package/dist/components/templates/ISO/ISODashboard.js +184 -0
- package/dist/components/templates/ISO/ISODashboard.js.map +1 -0
- package/dist/components/templates/Retail/RetailDashboard.d.ts +15 -0
- package/dist/components/templates/Retail/RetailDashboard.d.ts.map +1 -0
- package/dist/components/templates/Retail/RetailDashboard.js +151 -0
- package/dist/components/templates/Retail/RetailDashboard.js.map +1 -0
- package/dist/components/templates/index.d.ts +14 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/components/templates/index.js +14 -0
- package/dist/components/templates/index.js.map +1 -0
- package/dist/config/chains.d.ts +23 -0
- package/dist/config/chains.d.ts.map +1 -0
- package/dist/config/chains.js +55 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/core/VarityClient.d.ts +76 -0
- package/dist/core/VarityClient.d.ts.map +1 -0
- package/dist/core/VarityClient.js +99 -0
- package/dist/core/VarityClient.js.map +1 -0
- package/dist/core/config.d.ts +136 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +156 -0
- package/dist/core/config.js.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAnalytics.d.ts +94 -0
- package/dist/hooks/useAnalytics.d.ts.map +1 -0
- package/dist/hooks/useAnalytics.js +116 -0
- package/dist/hooks/useAnalytics.js.map +1 -0
- package/dist/hooks/useAuth.d.ts +71 -0
- package/dist/hooks/useAuth.d.ts.map +1 -0
- package/dist/hooks/useAuth.js +198 -0
- package/dist/hooks/useAuth.js.map +1 -0
- package/dist/hooks/useDashboard.d.ts +110 -0
- package/dist/hooks/useDashboard.d.ts.map +1 -0
- package/dist/hooks/useDashboard.js +201 -0
- package/dist/hooks/useDashboard.js.map +1 -0
- package/dist/hooks/useVarityAPI.d.ts +88 -0
- package/dist/hooks/useVarityAPI.d.ts.map +1 -0
- package/dist/hooks/useVarityAPI.js +138 -0
- package/dist/hooks/useVarityAPI.js.map +1 -0
- package/dist/hooks/useWalletAuth.d.ts +108 -0
- package/dist/hooks/useWalletAuth.d.ts.map +1 -0
- package/dist/hooks/useWalletAuth.js +415 -0
- package/dist/hooks/useWalletAuth.js.map +1 -0
- package/dist/hooks/web3/index.d.ts +5 -0
- package/dist/hooks/web3/index.d.ts.map +1 -0
- package/dist/hooks/web3/index.js +6 -0
- package/dist/hooks/web3/index.js.map +1 -0
- package/dist/hooks/web3/useAddressValidation.d.ts +37 -0
- package/dist/hooks/web3/useAddressValidation.d.ts.map +1 -0
- package/dist/hooks/web3/useAddressValidation.js +59 -0
- package/dist/hooks/web3/useAddressValidation.js.map +1 -0
- package/dist/hooks/web3/useBlockExplorer.d.ts +37 -0
- package/dist/hooks/web3/useBlockExplorer.d.ts.map +1 -0
- package/dist/hooks/web3/useBlockExplorer.js +59 -0
- package/dist/hooks/web3/useBlockExplorer.js.map +1 -0
- package/dist/hooks/web3/useUSDCFormat.d.ts +34 -0
- package/dist/hooks/web3/useUSDCFormat.d.ts.map +1 -0
- package/dist/hooks/web3/useUSDCFormat.js +43 -0
- package/dist/hooks/web3/useUSDCFormat.js.map +1 -0
- package/dist/hooks/web3/useVarityWallet.d.ts +48 -0
- package/dist/hooks/web3/useVarityWallet.d.ts.map +1 -0
- package/dist/hooks/web3/useVarityWallet.js +70 -0
- package/dist/hooks/web3/useVarityWallet.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/analytics/AnalyticsClient.d.ts +72 -0
- package/dist/modules/analytics/AnalyticsClient.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsClient.js +56 -0
- package/dist/modules/analytics/AnalyticsClient.js.map +1 -0
- package/dist/modules/analytics/index.d.ts +2 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +2 -0
- package/dist/modules/analytics/index.js.map +1 -0
- package/dist/modules/auth/AuthClient.d.ts +41 -0
- package/dist/modules/auth/AuthClient.d.ts.map +1 -0
- package/dist/modules/auth/AuthClient.js +36 -0
- package/dist/modules/auth/AuthClient.js.map +1 -0
- package/dist/modules/auth/index.d.ts +2 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +2 -0
- package/dist/modules/auth/index.js.map +1 -0
- package/dist/modules/cache/CacheClient.d.ts +48 -0
- package/dist/modules/cache/CacheClient.d.ts.map +1 -0
- package/dist/modules/cache/CacheClient.js +59 -0
- package/dist/modules/cache/CacheClient.js.map +1 -0
- package/dist/modules/cache/index.d.ts +2 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +2 -0
- package/dist/modules/cache/index.js.map +1 -0
- package/dist/modules/compute/ComputeClient.d.ts +54 -0
- package/dist/modules/compute/ComputeClient.d.ts.map +1 -0
- package/dist/modules/compute/ComputeClient.js +39 -0
- package/dist/modules/compute/ComputeClient.js.map +1 -0
- package/dist/modules/compute/index.d.ts +2 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +2 -0
- package/dist/modules/compute/index.js.map +1 -0
- package/dist/modules/export/ExportClient.d.ts +56 -0
- package/dist/modules/export/ExportClient.d.ts.map +1 -0
- package/dist/modules/export/ExportClient.js +42 -0
- package/dist/modules/export/ExportClient.js.map +1 -0
- package/dist/modules/export/index.d.ts +2 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +2 -0
- package/dist/modules/export/index.js.map +1 -0
- package/dist/modules/forecasting/ForecastingClient.d.ts +112 -0
- package/dist/modules/forecasting/ForecastingClient.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingClient.js +48 -0
- package/dist/modules/forecasting/ForecastingClient.js.map +1 -0
- package/dist/modules/forecasting/index.d.ts +2 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +2 -0
- package/dist/modules/forecasting/index.js.map +1 -0
- package/dist/modules/monitoring/MonitoringClient.d.ts +67 -0
- package/dist/modules/monitoring/MonitoringClient.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringClient.js +48 -0
- package/dist/modules/monitoring/MonitoringClient.js.map +1 -0
- package/dist/modules/monitoring/index.d.ts +2 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +2 -0
- package/dist/modules/monitoring/index.js.map +1 -0
- package/dist/modules/notifications/NotificationsClient.d.ts +68 -0
- package/dist/modules/notifications/NotificationsClient.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsClient.js +50 -0
- package/dist/modules/notifications/NotificationsClient.js.map +1 -0
- package/dist/modules/notifications/index.d.ts +2 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +2 -0
- package/dist/modules/notifications/index.js.map +1 -0
- package/dist/modules/oracle/OracleClient.d.ts +48 -0
- package/dist/modules/oracle/OracleClient.d.ts.map +1 -0
- package/dist/modules/oracle/OracleClient.js +34 -0
- package/dist/modules/oracle/OracleClient.js.map +1 -0
- package/dist/modules/oracle/index.d.ts +2 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +2 -0
- package/dist/modules/oracle/index.js.map +1 -0
- package/dist/modules/storage/StorageClient.d.ts +44 -0
- package/dist/modules/storage/StorageClient.d.ts.map +1 -0
- package/dist/modules/storage/StorageClient.js +43 -0
- package/dist/modules/storage/StorageClient.js.map +1 -0
- package/dist/modules/storage/index.d.ts +2 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +2 -0
- package/dist/modules/storage/index.js.map +1 -0
- package/dist/modules/templates/TemplateDeploymentClient.d.ts +208 -0
- package/dist/modules/templates/TemplateDeploymentClient.d.ts.map +1 -0
- package/dist/modules/templates/TemplateDeploymentClient.js +101 -0
- package/dist/modules/templates/TemplateDeploymentClient.js.map +1 -0
- package/dist/modules/templates/index.d.ts +8 -0
- package/dist/modules/templates/index.d.ts.map +1 -0
- package/dist/modules/templates/index.js +7 -0
- package/dist/modules/templates/index.js.map +1 -0
- package/dist/modules/webhooks/WebhooksClient.d.ts +85 -0
- package/dist/modules/webhooks/WebhooksClient.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksClient.js +68 -0
- package/dist/modules/webhooks/WebhooksClient.js.map +1 -0
- package/dist/modules/webhooks/index.d.ts +2 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +2 -0
- package/dist/modules/webhooks/index.js.map +1 -0
- package/dist/modules/zk/ZKClient.d.ts +67 -0
- package/dist/modules/zk/ZKClient.d.ts.map +1 -0
- package/dist/modules/zk/ZKClient.js +36 -0
- package/dist/modules/zk/ZKClient.js.map +1 -0
- package/dist/modules/zk/index.d.ts +2 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +2 -0
- package/dist/modules/zk/index.js.map +1 -0
- package/dist/providers/ChainContext.d.ts +65 -0
- package/dist/providers/ChainContext.d.ts.map +1 -0
- package/dist/providers/ChainContext.js +92 -0
- package/dist/providers/ChainContext.js.map +1 -0
- package/dist/providers/PrivyProvider.d.ts +42 -0
- package/dist/providers/PrivyProvider.d.ts.map +1 -0
- package/dist/providers/PrivyProvider.js +131 -0
- package/dist/providers/PrivyProvider.js.map +1 -0
- package/dist/providers/PrivyStack.d.ts +165 -0
- package/dist/providers/PrivyStack.d.ts.map +1 -0
- package/dist/providers/PrivyStack.js +295 -0
- package/dist/providers/PrivyStack.js.map +1 -0
- package/dist/providers/VarityDashboardProvider.d.ts +90 -0
- package/dist/providers/VarityDashboardProvider.d.ts.map +1 -0
- package/dist/providers/VarityDashboardProvider.js +242 -0
- package/dist/providers/VarityDashboardProvider.js.map +1 -0
- package/dist/providers/VarityProvider.d.ts +32 -0
- package/dist/providers/VarityProvider.d.ts.map +1 -0
- package/dist/providers/VarityProvider.js +56 -0
- package/dist/providers/VarityProvider.js.map +1 -0
- package/dist/providers/WalletContext.d.ts +68 -0
- package/dist/providers/WalletContext.d.ts.map +1 -0
- package/dist/providers/WalletContext.js +98 -0
- package/dist/providers/WalletContext.js.map +1 -0
- package/dist/providers/WalletSyncProvider.d.ts +84 -0
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -0
- package/dist/providers/WalletSyncProvider.js +132 -0
- package/dist/providers/WalletSyncProvider.js.map +1 -0
- package/dist/providers/index.d.ts +47 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +51 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/tests/mocks/httpClient.mock.d.ts +62 -0
- package/dist/tests/mocks/httpClient.mock.d.ts.map +1 -0
- package/dist/tests/mocks/httpClient.mock.js +108 -0
- package/dist/tests/mocks/httpClient.mock.js.map +1 -0
- package/dist/tests/setup.d.ts +6 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/tests/setup.js +51 -0
- package/dist/tests/setup.js.map +1 -0
- package/dist/types/api-extensions.d.ts +92 -0
- package/dist/types/api-extensions.d.ts.map +1 -0
- package/dist/types/api-extensions.js +7 -0
- package/dist/types/api-extensions.js.map +1 -0
- package/dist/utils/http.d.ts +51 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +104 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/wallets/SimpleSmartWallet.d.ts +68 -0
- package/dist/wallets/SimpleSmartWallet.d.ts.map +1 -0
- package/dist/wallets/SimpleSmartWallet.js +74 -0
- package/dist/wallets/SimpleSmartWallet.js.map +1 -0
- package/dist/wallets/SmartWalletProvider.d.ts +217 -0
- package/dist/wallets/SmartWalletProvider.d.ts.map +1 -0
- package/dist/wallets/SmartWalletProvider.js +366 -0
- package/dist/wallets/SmartWalletProvider.js.map +1 -0
- package/dist/wallets/config.d.ts +199 -0
- package/dist/wallets/config.d.ts.map +1 -0
- package/dist/wallets/config.js +183 -0
- package/dist/wallets/config.js.map +1 -0
- package/dist/wallets/index.d.ts +9 -0
- package/dist/wallets/index.d.ts.map +1 -0
- package/dist/wallets/index.js +9 -0
- package/dist/wallets/index.js.map +1 -0
- package/dist/web3/AddressDisplay/AddressDisplay.d.ts +33 -0
- package/dist/web3/AddressDisplay/AddressDisplay.d.ts.map +1 -0
- package/dist/web3/AddressDisplay/AddressDisplay.js +42 -0
- package/dist/web3/AddressDisplay/AddressDisplay.js.map +1 -0
- package/dist/web3/AddressInput/AddressInput.d.ts +36 -0
- package/dist/web3/AddressInput/AddressInput.d.ts.map +1 -0
- package/dist/web3/AddressInput/AddressInput.js +54 -0
- package/dist/web3/AddressInput/AddressInput.js.map +1 -0
- package/dist/web3/AmountInput/AmountInput.d.ts +41 -0
- package/dist/web3/AmountInput/AmountInput.d.ts.map +1 -0
- package/dist/web3/AmountInput/AmountInput.js +74 -0
- package/dist/web3/AmountInput/AmountInput.js.map +1 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts +30 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts.map +1 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.js +35 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.js.map +1 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts +41 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts.map +1 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.js +46 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.js.map +1 -0
- package/dist/web3/ConnectWallet/ConnectWallet.d.ts +35 -0
- package/dist/web3/ConnectWallet/ConnectWallet.d.ts.map +1 -0
- package/dist/web3/ConnectWallet/ConnectWallet.js +58 -0
- package/dist/web3/ConnectWallet/ConnectWallet.js.map +1 -0
- package/dist/web3/DisconnectButton/DisconnectButton.d.ts +30 -0
- package/dist/web3/DisconnectButton/DisconnectButton.d.ts.map +1 -0
- package/dist/web3/DisconnectButton/DisconnectButton.js +48 -0
- package/dist/web3/DisconnectButton/DisconnectButton.js.map +1 -0
- package/dist/web3/WalletBalance/WalletBalance.d.ts +27 -0
- package/dist/web3/WalletBalance/WalletBalance.d.ts.map +1 -0
- package/dist/web3/WalletBalance/WalletBalance.js +49 -0
- package/dist/web3/WalletBalance/WalletBalance.js.map +1 -0
- package/dist/web3/WalletDropdown/WalletDropdown.d.ts +29 -0
- package/dist/web3/WalletDropdown/WalletDropdown.d.ts.map +1 -0
- package/dist/web3/WalletDropdown/WalletDropdown.js +93 -0
- package/dist/web3/WalletDropdown/WalletDropdown.js.map +1 -0
- package/dist/web3/WalletInfo/WalletInfo.d.ts +31 -0
- package/dist/web3/WalletInfo/WalletInfo.d.ts.map +1 -0
- package/dist/web3/WalletInfo/WalletInfo.js +41 -0
- package/dist/web3/WalletInfo/WalletInfo.js.map +1 -0
- package/dist/web3/index.d.ts +11 -0
- package/dist/web3/index.d.ts.map +1 -0
- package/dist/web3/index.js +14 -0
- package/dist/web3/index.js.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart Wallet Provider - ERC-4337 Account Abstraction
|
|
3
|
+
*
|
|
4
|
+
* Provides gasless transactions and improved UX through smart contract wallets
|
|
5
|
+
* Powered by thirdweb's smart wallet infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Gasless transactions (sponsored by app)
|
|
9
|
+
* - Social login recovery
|
|
10
|
+
* - Batch transactions
|
|
11
|
+
* - Session keys
|
|
12
|
+
* - Multi-sig support
|
|
13
|
+
* - Programmable wallet logic
|
|
14
|
+
*/
|
|
15
|
+
import React, { type ReactNode } from 'react';
|
|
16
|
+
import type { ThirdwebClient, Chain } from 'thirdweb';
|
|
17
|
+
import type { Account } from 'thirdweb/wallets';
|
|
18
|
+
/**
|
|
19
|
+
* Smart Wallet configuration
|
|
20
|
+
*/
|
|
21
|
+
export interface SmartWalletConfig {
|
|
22
|
+
/**
|
|
23
|
+
* thirdweb client instance
|
|
24
|
+
*/
|
|
25
|
+
client: ThirdwebClient;
|
|
26
|
+
/**
|
|
27
|
+
* Chain to operate on
|
|
28
|
+
*/
|
|
29
|
+
chain: Chain;
|
|
30
|
+
/**
|
|
31
|
+
* Gas sponsorship configuration
|
|
32
|
+
*/
|
|
33
|
+
gasless?: {
|
|
34
|
+
/**
|
|
35
|
+
* Enable gas sponsorship
|
|
36
|
+
*/
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Paymaster URL (optional - uses thirdweb's if not provided)
|
|
40
|
+
*/
|
|
41
|
+
paymasterUrl?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Gas policy (which operations to sponsor)
|
|
44
|
+
*/
|
|
45
|
+
policy?: {
|
|
46
|
+
/**
|
|
47
|
+
* Sponsor all transactions
|
|
48
|
+
*/
|
|
49
|
+
sponsorAll?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Sponsor up to this gas limit
|
|
52
|
+
*/
|
|
53
|
+
maxGasLimit?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Whitelist of contract addresses to sponsor
|
|
56
|
+
*/
|
|
57
|
+
allowedContracts?: string[];
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Factory contract address (for deploying smart wallets)
|
|
62
|
+
*/
|
|
63
|
+
factoryAddress?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Account abstraction version
|
|
66
|
+
*/
|
|
67
|
+
accountVersion?: '0.6' | '0.7';
|
|
68
|
+
/**
|
|
69
|
+
* App tracking for gas billing
|
|
70
|
+
*
|
|
71
|
+
* When provided, tracks gas usage per app for billing purposes.
|
|
72
|
+
* Required for production apps using Varity paymaster.
|
|
73
|
+
*/
|
|
74
|
+
appIdentifier?: {
|
|
75
|
+
/**
|
|
76
|
+
* Unique app ID from Varity App Store
|
|
77
|
+
*/
|
|
78
|
+
appId: string;
|
|
79
|
+
/**
|
|
80
|
+
* Developer's wallet address for billing
|
|
81
|
+
*/
|
|
82
|
+
developerWallet: string;
|
|
83
|
+
/**
|
|
84
|
+
* App name (optional, for logging)
|
|
85
|
+
*/
|
|
86
|
+
appName?: string;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Gas tracking configuration
|
|
90
|
+
*/
|
|
91
|
+
gasTracking?: {
|
|
92
|
+
/**
|
|
93
|
+
* Enable/disable gas tracking (default: true if appIdentifier provided)
|
|
94
|
+
*/
|
|
95
|
+
enabled?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* API endpoint for gas tracking (default: https://api.varity.so)
|
|
98
|
+
*/
|
|
99
|
+
apiUrl?: string;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Smart Wallet context
|
|
104
|
+
*/
|
|
105
|
+
interface SmartWalletContextType {
|
|
106
|
+
/**
|
|
107
|
+
* Smart wallet account
|
|
108
|
+
*/
|
|
109
|
+
account?: Account;
|
|
110
|
+
/**
|
|
111
|
+
* Whether smart wallet is connected
|
|
112
|
+
*/
|
|
113
|
+
isConnected: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Whether gasless transactions are enabled
|
|
116
|
+
*/
|
|
117
|
+
isGasless: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Connect smart wallet
|
|
120
|
+
*/
|
|
121
|
+
connect: (signer: Account) => Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Disconnect smart wallet
|
|
124
|
+
*/
|
|
125
|
+
disconnect: () => void;
|
|
126
|
+
/**
|
|
127
|
+
* Send a gasless transaction
|
|
128
|
+
*/
|
|
129
|
+
sendTransaction: (tx: {
|
|
130
|
+
to: string;
|
|
131
|
+
data: string;
|
|
132
|
+
value?: string;
|
|
133
|
+
}) => Promise<string>;
|
|
134
|
+
/**
|
|
135
|
+
* Send batch transactions
|
|
136
|
+
*/
|
|
137
|
+
sendBatchTransaction: (txs: {
|
|
138
|
+
to: string;
|
|
139
|
+
data: string;
|
|
140
|
+
value?: string;
|
|
141
|
+
}[]) => Promise<string>;
|
|
142
|
+
/**
|
|
143
|
+
* Get smart wallet address
|
|
144
|
+
*/
|
|
145
|
+
getAddress: () => string | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Check if wallet is deployed
|
|
148
|
+
*/
|
|
149
|
+
isDeployed: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Deploy smart wallet
|
|
152
|
+
*/
|
|
153
|
+
deployWallet: () => Promise<string>;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Smart Wallet Provider Props
|
|
157
|
+
*/
|
|
158
|
+
export interface SmartWalletProviderProps {
|
|
159
|
+
/**
|
|
160
|
+
* Smart wallet configuration
|
|
161
|
+
*/
|
|
162
|
+
config: SmartWalletConfig;
|
|
163
|
+
/**
|
|
164
|
+
* Children components
|
|
165
|
+
*/
|
|
166
|
+
children: ReactNode;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Smart Wallet Provider Component
|
|
170
|
+
*
|
|
171
|
+
* Wrap your app with this provider to enable ERC-4337 smart wallets
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```tsx
|
|
175
|
+
* <SmartWalletProvider config={{ client, chain, gasless: { enabled: true } }}>
|
|
176
|
+
* <App />
|
|
177
|
+
* </SmartWalletProvider>
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
export declare function SmartWalletProvider({ config, children }: SmartWalletProviderProps): React.JSX.Element;
|
|
181
|
+
/**
|
|
182
|
+
* Hook to use Smart Wallet context
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```tsx
|
|
186
|
+
* function MyComponent() {
|
|
187
|
+
* const { sendTransaction, isGasless } = useSmartWallet();
|
|
188
|
+
*
|
|
189
|
+
* const handleClick = async () => {
|
|
190
|
+
* const txHash = await sendTransaction({
|
|
191
|
+
* to: '0x...',
|
|
192
|
+
* data: '0x...',
|
|
193
|
+
* });
|
|
194
|
+
* };
|
|
195
|
+
*
|
|
196
|
+
* return <div>Gasless: {isGasless ? 'Yes' : 'No'}</div>;
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare function useSmartWallet(): SmartWalletContextType;
|
|
201
|
+
/**
|
|
202
|
+
* Smart Wallet Connect Button Component
|
|
203
|
+
*
|
|
204
|
+
* Pre-built button to connect smart wallet
|
|
205
|
+
*/
|
|
206
|
+
export declare function SmartWalletConnectButton({ onConnect, onError, }: {
|
|
207
|
+
onConnect?: () => void;
|
|
208
|
+
onError?: (error: Error) => void;
|
|
209
|
+
}): React.JSX.Element;
|
|
210
|
+
/**
|
|
211
|
+
* Gasless Badge Component
|
|
212
|
+
*
|
|
213
|
+
* Shows gasless transaction status
|
|
214
|
+
*/
|
|
215
|
+
export declare function GaslessBadge(): React.JSX.Element | null;
|
|
216
|
+
export {};
|
|
217
|
+
//# sourceMappingURL=SmartWalletProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWalletProvider.d.ts","sourceRoot":"","sources":["../../src/wallets/SmartWalletProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart Wallet Provider - ERC-4337 Account Abstraction
|
|
3
|
+
*
|
|
4
|
+
* Provides gasless transactions and improved UX through smart contract wallets
|
|
5
|
+
* Powered by thirdweb's smart wallet infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Gasless transactions (sponsored by app)
|
|
9
|
+
* - Social login recovery
|
|
10
|
+
* - Batch transactions
|
|
11
|
+
* - Session keys
|
|
12
|
+
* - Multi-sig support
|
|
13
|
+
* - Programmable wallet logic
|
|
14
|
+
*/
|
|
15
|
+
import React, { createContext, useContext, useState } from 'react';
|
|
16
|
+
/**
|
|
17
|
+
* Smart Wallet context
|
|
18
|
+
*/
|
|
19
|
+
const SmartWalletContext = createContext(undefined);
|
|
20
|
+
/**
|
|
21
|
+
* Smart Wallet Provider Component
|
|
22
|
+
*
|
|
23
|
+
* Wrap your app with this provider to enable ERC-4337 smart wallets
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <SmartWalletProvider config={{ client, chain, gasless: { enabled: true } }}>
|
|
28
|
+
* <App />
|
|
29
|
+
* </SmartWalletProvider>
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function SmartWalletProvider({ config, children }) {
|
|
33
|
+
const [account, setAccount] = useState();
|
|
34
|
+
const [isDeployed, setIsDeployed] = useState(false);
|
|
35
|
+
const isConnected = !!account;
|
|
36
|
+
const isGasless = config.gasless?.enabled || false;
|
|
37
|
+
/**
|
|
38
|
+
* Connect smart wallet
|
|
39
|
+
*/
|
|
40
|
+
const connect = async (signer) => {
|
|
41
|
+
try {
|
|
42
|
+
console.log('Connecting smart wallet with signer:', signer.address);
|
|
43
|
+
// Import smart wallet functions dynamically to avoid issues
|
|
44
|
+
const { smartWallet } = await import('thirdweb/wallets');
|
|
45
|
+
// Create smart wallet instance
|
|
46
|
+
// Note: Conduit bundler handles paymaster automatically when sponsorGas is true
|
|
47
|
+
const wallet = smartWallet({
|
|
48
|
+
chain: config.chain,
|
|
49
|
+
factoryAddress: config.factoryAddress,
|
|
50
|
+
sponsorGas: config.gasless?.enabled || false,
|
|
51
|
+
...(config.gasless?.paymasterUrl && {
|
|
52
|
+
overrides: {
|
|
53
|
+
bundlerUrl: config.gasless.paymasterUrl,
|
|
54
|
+
},
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
// Connect with the provided signer as personal account
|
|
58
|
+
const smartAccount = await wallet.connect({
|
|
59
|
+
client: config.client,
|
|
60
|
+
personalAccount: signer,
|
|
61
|
+
});
|
|
62
|
+
// Check if the smart wallet is deployed on-chain
|
|
63
|
+
try {
|
|
64
|
+
// Get the smart wallet address
|
|
65
|
+
const smartWalletAddress = smartAccount.address;
|
|
66
|
+
// Check if there's code at the address (deployed contract)
|
|
67
|
+
const { eth_getCode, getRpcClient } = await import('thirdweb/rpc');
|
|
68
|
+
const rpcRequest = getRpcClient({ client: config.client, chain: config.chain });
|
|
69
|
+
const bytecode = await eth_getCode(rpcRequest, {
|
|
70
|
+
address: smartWalletAddress,
|
|
71
|
+
});
|
|
72
|
+
setIsDeployed(bytecode !== undefined && bytecode !== '0x' && bytecode !== '0x0');
|
|
73
|
+
console.log('Smart wallet deployed:', bytecode !== undefined && bytecode !== '0x');
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.warn('Could not check wallet deployment status:', error);
|
|
77
|
+
setIsDeployed(false);
|
|
78
|
+
}
|
|
79
|
+
setAccount(smartAccount);
|
|
80
|
+
console.log('Smart wallet connected successfully:', smartAccount.address);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('Failed to connect smart wallet:', error);
|
|
84
|
+
throw new Error(`Smart wallet connection failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Disconnect smart wallet
|
|
89
|
+
*/
|
|
90
|
+
const disconnect = () => {
|
|
91
|
+
setAccount(undefined);
|
|
92
|
+
setIsDeployed(false);
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Send a gasless transaction
|
|
96
|
+
*/
|
|
97
|
+
const sendTransaction = async (tx) => {
|
|
98
|
+
if (!account) {
|
|
99
|
+
throw new Error('Smart wallet not connected');
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
console.log('Sending transaction:', { to: tx.to, gasless: isGasless });
|
|
103
|
+
// Import thirdweb transaction functions
|
|
104
|
+
const { prepareTransaction, sendTransaction: send } = await import('thirdweb');
|
|
105
|
+
// Prepare the transaction (synchronous in thirdweb v5)
|
|
106
|
+
const transaction = prepareTransaction({
|
|
107
|
+
client: config.client,
|
|
108
|
+
chain: config.chain,
|
|
109
|
+
to: tx.to,
|
|
110
|
+
data: tx.data,
|
|
111
|
+
value: tx.value ? BigInt(tx.value) : 0n,
|
|
112
|
+
});
|
|
113
|
+
// Send transaction through smart account
|
|
114
|
+
// Gas sponsorship is automatically handled if sponsorGas was enabled
|
|
115
|
+
const result = await send({
|
|
116
|
+
transaction,
|
|
117
|
+
account,
|
|
118
|
+
});
|
|
119
|
+
// Wait for the transaction hash to be resolved
|
|
120
|
+
const txHash = await result.transactionHash;
|
|
121
|
+
console.log('Transaction sent successfully:', txHash);
|
|
122
|
+
// Track gas usage if app identifier is provided
|
|
123
|
+
if (config.appIdentifier && (config.gasTracking?.enabled !== false)) {
|
|
124
|
+
// Import gas tracking functions (don't await - track in background)
|
|
125
|
+
trackGasUsageInBackground(txHash);
|
|
126
|
+
}
|
|
127
|
+
return txHash;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error('Transaction failed:', error);
|
|
131
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Track gas usage in background (non-blocking)
|
|
136
|
+
*/
|
|
137
|
+
const trackGasUsageInBackground = async (txHash) => {
|
|
138
|
+
try {
|
|
139
|
+
// Dynamically import gas tracking to avoid bundle bloat
|
|
140
|
+
const { trackTransactionGasUsage } = await import('@varity-labs/sdk');
|
|
141
|
+
if (!config.appIdentifier || !account) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Track in background - don't wait for completion
|
|
145
|
+
trackTransactionGasUsage(config.client, config.chain, txHash, config.appIdentifier.appId, config.appIdentifier.developerWallet, account.address, {
|
|
146
|
+
apiUrl: config.gasTracking?.apiUrl,
|
|
147
|
+
enabled: config.gasTracking?.enabled !== false,
|
|
148
|
+
}).catch(error => {
|
|
149
|
+
// Log error but don't throw - tracking failure shouldn't affect user flow
|
|
150
|
+
console.warn('[SmartWallet] Failed to track gas usage:', error);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.warn('[SmartWallet] Gas tracking module not available:', error);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Send batch transactions
|
|
159
|
+
*/
|
|
160
|
+
const sendBatchTransaction = async (txs) => {
|
|
161
|
+
if (!account) {
|
|
162
|
+
throw new Error('Smart wallet not connected');
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
console.log('Sending batch transaction:', txs.length, 'operations');
|
|
166
|
+
// Import thirdweb functions
|
|
167
|
+
const { prepareTransaction, sendBatchTransaction: sendBatch } = await import('thirdweb');
|
|
168
|
+
// Prepare all transactions (synchronous in thirdweb v5)
|
|
169
|
+
const transactions = txs.map(tx => prepareTransaction({
|
|
170
|
+
client: config.client,
|
|
171
|
+
chain: config.chain,
|
|
172
|
+
to: tx.to,
|
|
173
|
+
data: tx.data,
|
|
174
|
+
value: tx.value ? BigInt(tx.value) : 0n,
|
|
175
|
+
}));
|
|
176
|
+
// Send batch through smart account
|
|
177
|
+
const result = await sendBatch({
|
|
178
|
+
transactions,
|
|
179
|
+
account,
|
|
180
|
+
});
|
|
181
|
+
// Wait for the transaction hash to be resolved
|
|
182
|
+
const txHash = await result.transactionHash;
|
|
183
|
+
console.log('Batch transaction sent successfully:', txHash);
|
|
184
|
+
// Track gas usage if app identifier is provided
|
|
185
|
+
if (config.appIdentifier && (config.gasTracking?.enabled !== false)) {
|
|
186
|
+
// Track in background
|
|
187
|
+
trackGasUsageInBackground(txHash);
|
|
188
|
+
}
|
|
189
|
+
return txHash;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
console.error('Batch transaction failed:', error);
|
|
193
|
+
throw new Error(`Batch transaction failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Get smart wallet address
|
|
198
|
+
*/
|
|
199
|
+
const getAddress = () => {
|
|
200
|
+
return account?.address;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Deploy smart wallet
|
|
204
|
+
*/
|
|
205
|
+
const deployWallet = async () => {
|
|
206
|
+
if (!account) {
|
|
207
|
+
throw new Error('Smart wallet not connected');
|
|
208
|
+
}
|
|
209
|
+
if (isDeployed) {
|
|
210
|
+
console.log('Wallet already deployed');
|
|
211
|
+
return account.address;
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
console.log('Deploying smart wallet...');
|
|
215
|
+
// Import thirdweb functions
|
|
216
|
+
const { prepareContractCall, sendTransaction: send, getContract } = await import('thirdweb');
|
|
217
|
+
// If factory address is provided, use it to deploy
|
|
218
|
+
if (config.factoryAddress) {
|
|
219
|
+
// Get the factory contract
|
|
220
|
+
const factory = getContract({
|
|
221
|
+
client: config.client,
|
|
222
|
+
chain: config.chain,
|
|
223
|
+
address: config.factoryAddress,
|
|
224
|
+
});
|
|
225
|
+
// Prepare deployment transaction
|
|
226
|
+
// Note: This assumes the factory has a deploy() or similar method
|
|
227
|
+
// Adjust based on actual VarityWalletFactory implementation
|
|
228
|
+
const deployTx = prepareContractCall({
|
|
229
|
+
contract: factory,
|
|
230
|
+
method: 'function createWallet(address owner, bytes32 salt) returns (address)',
|
|
231
|
+
params: [account.address, `0x${Date.now().toString(16).padStart(64, '0')}`],
|
|
232
|
+
});
|
|
233
|
+
// Send deployment transaction
|
|
234
|
+
const result = await send({
|
|
235
|
+
transaction: deployTx,
|
|
236
|
+
account,
|
|
237
|
+
});
|
|
238
|
+
console.log('Wallet deployed via factory:', result.transactionHash);
|
|
239
|
+
setIsDeployed(true);
|
|
240
|
+
return result.transactionHash;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// Deploy by sending a simple transaction to trigger deployment
|
|
244
|
+
// Smart wallet will deploy on first transaction
|
|
245
|
+
const { prepareTransaction } = await import('thirdweb');
|
|
246
|
+
const deployTx = prepareTransaction({
|
|
247
|
+
client: config.client,
|
|
248
|
+
chain: config.chain,
|
|
249
|
+
to: account.address, // Send to self
|
|
250
|
+
value: 0n,
|
|
251
|
+
});
|
|
252
|
+
const result = await send({
|
|
253
|
+
transaction: deployTx,
|
|
254
|
+
account,
|
|
255
|
+
});
|
|
256
|
+
console.log('Wallet deployed via self-transaction:', result.transactionHash);
|
|
257
|
+
setIsDeployed(true);
|
|
258
|
+
return result.transactionHash;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
console.error('Wallet deployment failed:', error);
|
|
263
|
+
throw new Error(`Wallet deployment failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
const value = {
|
|
267
|
+
account,
|
|
268
|
+
isConnected,
|
|
269
|
+
isGasless,
|
|
270
|
+
connect,
|
|
271
|
+
disconnect,
|
|
272
|
+
sendTransaction,
|
|
273
|
+
sendBatchTransaction,
|
|
274
|
+
getAddress,
|
|
275
|
+
isDeployed,
|
|
276
|
+
deployWallet,
|
|
277
|
+
};
|
|
278
|
+
return (React.createElement(SmartWalletContext.Provider, { value: value }, children));
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Hook to use Smart Wallet context
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```tsx
|
|
285
|
+
* function MyComponent() {
|
|
286
|
+
* const { sendTransaction, isGasless } = useSmartWallet();
|
|
287
|
+
*
|
|
288
|
+
* const handleClick = async () => {
|
|
289
|
+
* const txHash = await sendTransaction({
|
|
290
|
+
* to: '0x...',
|
|
291
|
+
* data: '0x...',
|
|
292
|
+
* });
|
|
293
|
+
* };
|
|
294
|
+
*
|
|
295
|
+
* return <div>Gasless: {isGasless ? 'Yes' : 'No'}</div>;
|
|
296
|
+
* }
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
export function useSmartWallet() {
|
|
300
|
+
const context = useContext(SmartWalletContext);
|
|
301
|
+
if (!context) {
|
|
302
|
+
throw new Error('useSmartWallet must be used within SmartWalletProvider');
|
|
303
|
+
}
|
|
304
|
+
return context;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Smart Wallet Connect Button Component
|
|
308
|
+
*
|
|
309
|
+
* Pre-built button to connect smart wallet
|
|
310
|
+
*/
|
|
311
|
+
export function SmartWalletConnectButton({ onConnect, onError, }) {
|
|
312
|
+
const { disconnect, isConnected, getAddress } = useSmartWallet();
|
|
313
|
+
const handleClick = async () => {
|
|
314
|
+
try {
|
|
315
|
+
if (isConnected) {
|
|
316
|
+
disconnect();
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
// TODO: Trigger wallet connection flow
|
|
320
|
+
// This would integrate with Privy, thirdweb Connect, or other auth
|
|
321
|
+
console.log('Connect wallet...');
|
|
322
|
+
onConnect?.();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
console.error('Smart wallet connection error:', error);
|
|
327
|
+
onError?.(error);
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
return (React.createElement("button", { onClick: handleClick, style: {
|
|
331
|
+
padding: '12px 24px',
|
|
332
|
+
backgroundColor: isConnected ? '#ef4444' : '#3b82f6',
|
|
333
|
+
color: 'white',
|
|
334
|
+
border: 'none',
|
|
335
|
+
borderRadius: '8px',
|
|
336
|
+
fontSize: '16px',
|
|
337
|
+
fontWeight: '600',
|
|
338
|
+
cursor: 'pointer',
|
|
339
|
+
transition: 'all 0.2s',
|
|
340
|
+
} }, isConnected ? `Disconnect (${getAddress()?.slice(0, 6)}...)` : 'Connect Smart Wallet'));
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Gasless Badge Component
|
|
344
|
+
*
|
|
345
|
+
* Shows gasless transaction status
|
|
346
|
+
*/
|
|
347
|
+
export function GaslessBadge() {
|
|
348
|
+
const { isGasless } = useSmartWallet();
|
|
349
|
+
if (!isGasless) {
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
352
|
+
return (React.createElement("div", { style: {
|
|
353
|
+
display: 'inline-flex',
|
|
354
|
+
alignItems: 'center',
|
|
355
|
+
gap: '6px',
|
|
356
|
+
padding: '4px 12px',
|
|
357
|
+
backgroundColor: '#10b981',
|
|
358
|
+
color: 'white',
|
|
359
|
+
borderRadius: '9999px',
|
|
360
|
+
fontSize: '12px',
|
|
361
|
+
fontWeight: '600',
|
|
362
|
+
} },
|
|
363
|
+
React.createElement("span", { style: { fontSize: '10px' } }, "\u26A1"),
|
|
364
|
+
"Gasless"));
|
|
365
|
+
}
|
|
366
|
+
//# sourceMappingURL=SmartWalletProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWalletProvider.js","sourceRoot":"","sources":["../../src/wallets/SmartWalletProvider.tsx"],"names":[],"mappings":"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"}
|