@varity-labs/ui-kit 2.0.0-beta.8 → 2.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dashboard/DashboardHeader.js +4 -4
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.d.ts +3 -3
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.js +1 -1
- 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 +225 -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/PaymentWidget/PaymentWidget.d.ts +19 -7
- package/dist/components/PaymentWidget/PaymentWidget.d.ts.map +1 -1
- package/dist/components/PaymentWidget/PaymentWidget.js +176 -10
- package/dist/components/PaymentWidget/PaymentWidget.js.map +1 -1
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts +34 -8
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts.map +1 -1
- package/dist/components/PaymentWidget/useSeamlessPayment.js +158 -12
- package/dist/components/PaymentWidget/useSeamlessPayment.js.map +1 -1
- package/dist/components/PaymentWidget/useVarityPayment.d.ts +6 -5
- package/dist/components/PaymentWidget/useVarityPayment.d.ts.map +1 -1
- package/dist/components/PaymentWidget/useVarityPayment.js +147 -11
- package/dist/components/PaymentWidget/useVarityPayment.js.map +1 -1
- 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 +194 -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/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/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/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/PrivyStack.d.ts +17 -50
- package/dist/providers/PrivyStack.d.ts.map +1 -1
- package/dist/providers/PrivyStack.js +15 -43
- package/dist/providers/PrivyStack.js.map +1 -1
- package/dist/providers/VarityDashboardProvider.d.ts +2 -2
- package/dist/providers/VarityDashboardProvider.d.ts.map +1 -1
- package/dist/providers/VarityDashboardProvider.js +26 -3
- package/dist/providers/VarityDashboardProvider.js.map +1 -1
- 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 +15 -18
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
- package/dist/providers/WalletSyncProvider.js +12 -15
- package/dist/providers/WalletSyncProvider.js.map +1 -1
- package/dist/providers/index.d.ts +48 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +53 -0
- package/dist/providers/index.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 +222 -0
- package/dist/wallets/config.d.ts.map +1 -0
- package/dist/wallets/config.js +206 -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 +4 -3
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { DEFAULT_CHAIN, SUPPORTED_CHAINS } from '../config/chains';
|
|
3
|
+
export interface VarityProviderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
clientId?: string;
|
|
6
|
+
activeChain?: typeof DEFAULT_CHAIN;
|
|
7
|
+
supportedChains?: typeof SUPPORTED_CHAINS;
|
|
8
|
+
theme?: 'light' | 'dark' | 'system';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Main provider wrapper for Varity applications
|
|
12
|
+
*
|
|
13
|
+
* This component wraps your application with all necessary Web3 providers:
|
|
14
|
+
* - Thirdweb client for wallet connections
|
|
15
|
+
* - Chain configuration for Varity L3
|
|
16
|
+
* - Theme management (light/dark mode)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* import { VarityProvider } from '@varity-labs/ui-kit';
|
|
21
|
+
*
|
|
22
|
+
* function App() {
|
|
23
|
+
* return (
|
|
24
|
+
* <VarityProvider>
|
|
25
|
+
* <YourApp />
|
|
26
|
+
* </VarityProvider>
|
|
27
|
+
* );
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function VarityProvider({ children, clientId, activeChain, supportedChains, theme, }: VarityProviderProps): JSX.Element;
|
|
32
|
+
//# sourceMappingURL=VarityProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VarityProvider.d.ts","sourceRoot":"","sources":["../../src/providers/VarityProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAsB,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIvF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,aAAa,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAA6B,EAC7B,WAA2B,EAC3B,eAAkC,EAClC,KAAgB,GACjB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAsCnC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThirdwebProvider } from 'thirdweb/react';
|
|
3
|
+
import { createThirdwebClient } from 'thirdweb';
|
|
4
|
+
import { THIRDWEB_CLIENT_ID, DEFAULT_CHAIN, SUPPORTED_CHAINS } from '../config/chains';
|
|
5
|
+
/**
|
|
6
|
+
* Main provider wrapper for Varity applications
|
|
7
|
+
*
|
|
8
|
+
* This component wraps your application with all necessary Web3 providers:
|
|
9
|
+
* - Thirdweb client for wallet connections
|
|
10
|
+
* - Chain configuration for Varity L3
|
|
11
|
+
* - Theme management (light/dark mode)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { VarityProvider } from '@varity-labs/ui-kit';
|
|
16
|
+
*
|
|
17
|
+
* function App() {
|
|
18
|
+
* return (
|
|
19
|
+
* <VarityProvider>
|
|
20
|
+
* <YourApp />
|
|
21
|
+
* </VarityProvider>
|
|
22
|
+
* );
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function VarityProvider({ children, clientId = THIRDWEB_CLIENT_ID, activeChain = DEFAULT_CHAIN, supportedChains = SUPPORTED_CHAINS, theme = 'system', }) {
|
|
27
|
+
// Create Thirdweb client
|
|
28
|
+
const client = React.useMemo(() => createThirdwebClient({ clientId }), [clientId]);
|
|
29
|
+
// Apply theme to document
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
const root = document.documentElement;
|
|
32
|
+
if (theme === 'dark') {
|
|
33
|
+
root.classList.add('dark');
|
|
34
|
+
}
|
|
35
|
+
else if (theme === 'light') {
|
|
36
|
+
root.classList.remove('dark');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// System theme
|
|
40
|
+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
41
|
+
const updateTheme = () => {
|
|
42
|
+
if (mediaQuery.matches) {
|
|
43
|
+
root.classList.add('dark');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
root.classList.remove('dark');
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
updateTheme();
|
|
50
|
+
mediaQuery.addEventListener('change', updateTheme);
|
|
51
|
+
return () => mediaQuery.removeEventListener('change', updateTheme);
|
|
52
|
+
}
|
|
53
|
+
}, [theme]);
|
|
54
|
+
return (React.createElement(ThirdwebProvider, null, children));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=VarityProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VarityProvider.js","sourceRoot":"","sources":["../../src/providers/VarityProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAYvF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,GAAG,kBAAkB,EAC7B,WAAW,GAAG,aAAa,EAC3B,eAAe,GAAG,gBAAgB,EAClC,KAAK,GAAG,QAAQ,GACI;IACpB,yBAAyB;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,EACxC,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,0BAA0B;IAC1B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QAEtC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,eAAe;YACf,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC;YAEF,WAAW,EAAE,CAAC;YACd,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEnD,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,oBAAC,gBAAgB,QACd,QAAQ,CACQ,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import type { Account } from 'thirdweb/wallets';
|
|
3
|
+
export interface WalletContextValue {
|
|
4
|
+
address: string | null;
|
|
5
|
+
account: Account | null;
|
|
6
|
+
isConnected: boolean;
|
|
7
|
+
isConnecting: boolean;
|
|
8
|
+
disconnect: () => Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export interface WalletProviderProps {
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
onConnect?: (address: string) => void;
|
|
13
|
+
onDisconnect?: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Wallet state management provider
|
|
17
|
+
*
|
|
18
|
+
* Manages wallet connection state and provides utilities for:
|
|
19
|
+
* - Accessing current wallet address
|
|
20
|
+
* - Checking connection status
|
|
21
|
+
* - Disconnecting wallet
|
|
22
|
+
* - Event callbacks for connection changes
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* import { WalletProvider } from '@varity-labs/ui-kit';
|
|
27
|
+
*
|
|
28
|
+
* function App() {
|
|
29
|
+
* return (
|
|
30
|
+
* <WalletProvider
|
|
31
|
+
* onConnect={(address) => console.log('Connected:', address)}
|
|
32
|
+
* onDisconnect={() => console.log('Disconnected')}
|
|
33
|
+
* >
|
|
34
|
+
* <YourApp />
|
|
35
|
+
* </WalletProvider>
|
|
36
|
+
* );
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function WalletProvider({ children, onConnect, onDisconnect }: WalletProviderProps): JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* Hook to access wallet context
|
|
43
|
+
*
|
|
44
|
+
* @returns {WalletContextValue} Wallet state and utilities
|
|
45
|
+
* @throws {Error} If used outside WalletProvider
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* import { useWallet } from '@varity-labs/ui-kit';
|
|
50
|
+
*
|
|
51
|
+
* function MyComponent() {
|
|
52
|
+
* const { address, isConnected, disconnect } = useWallet();
|
|
53
|
+
*
|
|
54
|
+
* if (!isConnected) {
|
|
55
|
+
* return <p>Please connect your wallet</p>;
|
|
56
|
+
* }
|
|
57
|
+
*
|
|
58
|
+
* return (
|
|
59
|
+
* <div>
|
|
60
|
+
* <p>Connected: {address}</p>
|
|
61
|
+
* <button onClick={disconnect}>Disconnect</button>
|
|
62
|
+
* </div>
|
|
63
|
+
* );
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function useWallet(): WalletContextValue;
|
|
68
|
+
//# sourceMappingURL=WalletContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletContext.d.ts","sourceRoot":"","sources":["../../src/providers/WalletContext.tsx"],"names":[],"mappings":"AAAA,OAAc,EAA0C,SAAS,EAAa,MAAM,OAAO,CAAC;AAE5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAwCtG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import React, { createContext, useContext, useCallback, useEffect } from 'react';
|
|
2
|
+
import { useActiveAccount, useDisconnect, useActiveWallet } from 'thirdweb/react';
|
|
3
|
+
const WalletContext = createContext(null);
|
|
4
|
+
/**
|
|
5
|
+
* Wallet state management provider
|
|
6
|
+
*
|
|
7
|
+
* Manages wallet connection state and provides utilities for:
|
|
8
|
+
* - Accessing current wallet address
|
|
9
|
+
* - Checking connection status
|
|
10
|
+
* - Disconnecting wallet
|
|
11
|
+
* - Event callbacks for connection changes
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { WalletProvider } from '@varity-labs/ui-kit';
|
|
16
|
+
*
|
|
17
|
+
* function App() {
|
|
18
|
+
* return (
|
|
19
|
+
* <WalletProvider
|
|
20
|
+
* onConnect={(address) => console.log('Connected:', address)}
|
|
21
|
+
* onDisconnect={() => console.log('Disconnected')}
|
|
22
|
+
* >
|
|
23
|
+
* <YourApp />
|
|
24
|
+
* </WalletProvider>
|
|
25
|
+
* );
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function WalletProvider({ children, onConnect, onDisconnect }) {
|
|
30
|
+
const account = useActiveAccount();
|
|
31
|
+
const wallet = useActiveWallet();
|
|
32
|
+
const { disconnect: thirdwebDisconnect } = useDisconnect();
|
|
33
|
+
// Note: Connection state is managed by thirdweb hooks
|
|
34
|
+
const isConnecting = false;
|
|
35
|
+
const address = account?.address || null;
|
|
36
|
+
const isConnected = !!address;
|
|
37
|
+
// Handle connection events
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (isConnected && address && onConnect) {
|
|
40
|
+
onConnect(address);
|
|
41
|
+
}
|
|
42
|
+
}, [isConnected, address, onConnect]);
|
|
43
|
+
const disconnect = useCallback(async () => {
|
|
44
|
+
try {
|
|
45
|
+
if (wallet) {
|
|
46
|
+
await thirdwebDisconnect(wallet);
|
|
47
|
+
}
|
|
48
|
+
if (onDisconnect) {
|
|
49
|
+
onDisconnect();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error('Error disconnecting wallet:', error);
|
|
54
|
+
}
|
|
55
|
+
}, [wallet, thirdwebDisconnect, onDisconnect]);
|
|
56
|
+
const value = {
|
|
57
|
+
address,
|
|
58
|
+
account: account || null,
|
|
59
|
+
isConnected,
|
|
60
|
+
isConnecting,
|
|
61
|
+
disconnect,
|
|
62
|
+
};
|
|
63
|
+
return React.createElement(WalletContext.Provider, { value: value }, children);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Hook to access wallet context
|
|
67
|
+
*
|
|
68
|
+
* @returns {WalletContextValue} Wallet state and utilities
|
|
69
|
+
* @throws {Error} If used outside WalletProvider
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* import { useWallet } from '@varity-labs/ui-kit';
|
|
74
|
+
*
|
|
75
|
+
* function MyComponent() {
|
|
76
|
+
* const { address, isConnected, disconnect } = useWallet();
|
|
77
|
+
*
|
|
78
|
+
* if (!isConnected) {
|
|
79
|
+
* return <p>Please connect your wallet</p>;
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* return (
|
|
83
|
+
* <div>
|
|
84
|
+
* <p>Connected: {address}</p>
|
|
85
|
+
* <button onClick={disconnect}>Disconnect</button>
|
|
86
|
+
* </div>
|
|
87
|
+
* );
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export function useWallet() {
|
|
92
|
+
const context = useContext(WalletContext);
|
|
93
|
+
if (!context) {
|
|
94
|
+
throw new Error('useWallet must be used within WalletProvider');
|
|
95
|
+
}
|
|
96
|
+
return context;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=WalletContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletContext.js","sourceRoot":"","sources":["../../src/providers/WalletContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWlF,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAQrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAuB;IACvF,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,CAAC;IAE3D,sDAAsD;IACtD,MAAM,YAAY,GAAG,KAAK,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC;IAE9B,2BAA2B;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACxC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAuB;QAChC,OAAO;QACP,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,WAAW;QACX,YAAY;QACZ,UAAU;KACX,CAAC;IAEF,OAAO,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAA0B,CAAC;AACnF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Provides unified
|
|
3
|
+
* Auth Sync State
|
|
4
|
+
* Provides unified auth state from Privy
|
|
5
5
|
*/
|
|
6
6
|
export interface WalletSyncState {
|
|
7
|
-
/** The
|
|
7
|
+
/** The user's account address (from Privy embedded wallet) */
|
|
8
8
|
address: string | null;
|
|
9
|
-
/** Whether
|
|
9
|
+
/** Whether auth state is still loading */
|
|
10
10
|
isLoading: boolean;
|
|
11
|
-
/** Whether
|
|
11
|
+
/** Whether the user account is ready */
|
|
12
12
|
isSynced: boolean;
|
|
13
|
-
/** Whether the user is authenticated
|
|
13
|
+
/** Whether the user is authenticated */
|
|
14
14
|
isAuthenticated: boolean;
|
|
15
|
-
/** The authentication method used (email, google,
|
|
15
|
+
/** The authentication method used (email, google, etc.) */
|
|
16
16
|
authMethod: string | null;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* WalletSyncContext - Provides unified
|
|
20
|
-
*
|
|
21
|
-
* This context synchronizes embedded wallets (created by Privy for email/social users)
|
|
22
|
-
* with Thirdweb's wallet context, ensuring a consistent experience.
|
|
19
|
+
* WalletSyncContext - Provides unified auth state via Privy
|
|
23
20
|
*/
|
|
24
21
|
export declare const WalletSyncContext: React.Context<WalletSyncState>;
|
|
25
22
|
/**
|
|
@@ -50,23 +47,23 @@ export interface WalletSyncProviderProps {
|
|
|
50
47
|
onSyncStateChange?: (state: WalletSyncState) => void;
|
|
51
48
|
}
|
|
52
49
|
/**
|
|
53
|
-
* WalletSyncProvider -
|
|
50
|
+
* WalletSyncProvider - Provides unified auth state for Varity apps
|
|
54
51
|
*
|
|
55
52
|
* This provider ensures that when a user signs in with email/Google,
|
|
56
|
-
* their
|
|
53
|
+
* their account address is available to all components.
|
|
57
54
|
*
|
|
58
55
|
* Features:
|
|
59
|
-
* -
|
|
60
|
-
* - Supports
|
|
61
|
-
* -
|
|
62
|
-
* - Provides unified wallet state across the app
|
|
56
|
+
* - Tracks user address from Privy embedded account
|
|
57
|
+
* - Supports email/social login (email, Google, etc.)
|
|
58
|
+
* - Provides unified auth state across the app
|
|
63
59
|
*
|
|
64
60
|
* @example
|
|
65
61
|
* ```tsx
|
|
66
62
|
* import { WalletSyncProvider, VarityPrivyProvider } from '@varity-labs/ui-kit';
|
|
63
|
+
*
|
|
67
64
|
* function App() {
|
|
68
65
|
* return (
|
|
69
|
-
* <VarityPrivyProvider appId="your-
|
|
66
|
+
* <VarityPrivyProvider appId="your-app-id">
|
|
70
67
|
* <WalletSyncProvider>
|
|
71
68
|
* <YourApp />
|
|
72
69
|
* </WalletSyncProvider>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletSyncProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WalletSyncProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"WalletSyncProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WalletSyncProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0CAA0C;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,gCAM5B,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,uBAAsC,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,eAAe,EACf,iBAAiB,GAClB,EAAE,uBAAuB,qBAwEzB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect, createContext, useContext } from 'react';
|
|
2
2
|
import { usePrivy, useWallets } from '@privy-io/react-auth';
|
|
3
3
|
/**
|
|
4
|
-
* WalletSyncContext - Provides unified
|
|
5
|
-
*
|
|
6
|
-
* This context synchronizes embedded wallets (created by Privy for email/social users)
|
|
7
|
-
* with Thirdweb's wallet context, ensuring a consistent experience.
|
|
4
|
+
* WalletSyncContext - Provides unified auth state via Privy
|
|
8
5
|
*/
|
|
9
6
|
export const WalletSyncContext = createContext({
|
|
10
7
|
address: null,
|
|
@@ -30,23 +27,23 @@ export const WalletSyncContext = createContext({
|
|
|
30
27
|
*/
|
|
31
28
|
export const useWalletSync = () => useContext(WalletSyncContext);
|
|
32
29
|
/**
|
|
33
|
-
* WalletSyncProvider -
|
|
30
|
+
* WalletSyncProvider - Provides unified auth state for Varity apps
|
|
34
31
|
*
|
|
35
32
|
* This provider ensures that when a user signs in with email/Google,
|
|
36
|
-
* their
|
|
33
|
+
* their account address is available to all components.
|
|
37
34
|
*
|
|
38
35
|
* Features:
|
|
39
|
-
* -
|
|
40
|
-
* - Supports
|
|
41
|
-
* -
|
|
42
|
-
* - Provides unified wallet state across the app
|
|
36
|
+
* - Tracks user address from Privy embedded account
|
|
37
|
+
* - Supports email/social login (email, Google, etc.)
|
|
38
|
+
* - Provides unified auth state across the app
|
|
43
39
|
*
|
|
44
40
|
* @example
|
|
45
41
|
* ```tsx
|
|
46
42
|
* import { WalletSyncProvider, VarityPrivyProvider } from '@varity-labs/ui-kit';
|
|
43
|
+
*
|
|
47
44
|
* function App() {
|
|
48
45
|
* return (
|
|
49
|
-
* <VarityPrivyProvider appId="your-
|
|
46
|
+
* <VarityPrivyProvider appId="your-app-id">
|
|
50
47
|
* <WalletSyncProvider>
|
|
51
48
|
* <YourApp />
|
|
52
49
|
* </WalletSyncProvider>
|
|
@@ -66,7 +63,7 @@ export function WalletSyncProvider({ children, onAddressChange, onSyncStateChang
|
|
|
66
63
|
authMethod: null,
|
|
67
64
|
});
|
|
68
65
|
useEffect(() => {
|
|
69
|
-
// Get the primary
|
|
66
|
+
// Get the primary user address (Privy embedded wallet)
|
|
70
67
|
const privyWallet = wallets && wallets.length > 0 ? wallets[0] : null;
|
|
71
68
|
const primaryAddress = privyWallet?.address || null;
|
|
72
69
|
// Determine auth method
|
|
@@ -109,13 +106,13 @@ export function WalletSyncProvider({ children, onAddressChange, onSyncStateChang
|
|
|
109
106
|
onSyncStateChange(newState);
|
|
110
107
|
}
|
|
111
108
|
}, [authenticated, user, wallets, walletsReady, privyReady, onAddressChange, onSyncStateChange, syncState.address]);
|
|
112
|
-
// Store
|
|
109
|
+
// Store user address in localStorage for persistence across sessions
|
|
113
110
|
useEffect(() => {
|
|
114
111
|
if (syncState.address) {
|
|
115
|
-
localStorage.setItem('
|
|
112
|
+
localStorage.setItem('varity_user_address', syncState.address);
|
|
116
113
|
}
|
|
117
114
|
else if (!syncState.isLoading && !syncState.isAuthenticated) {
|
|
118
|
-
localStorage.removeItem('
|
|
115
|
+
localStorage.removeItem('varity_user_address');
|
|
119
116
|
}
|
|
120
117
|
}, [syncState.address, syncState.isLoading, syncState.isAuthenticated]);
|
|
121
118
|
return (React.createElement(WalletSyncContext.Provider, { value: syncState }, children));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletSyncProvider.js","sourceRoot":"","sources":["../../src/providers/WalletSyncProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAmB5D
|
|
1
|
+
{"version":3,"file":"WalletSyncProvider.js","sourceRoot":"","sources":["../../src/providers/WalletSyncProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export { VarityProvider, type VarityProviderProps } from './VarityProvider';
|
|
2
|
+
export { WalletProvider, useWallet, type WalletProviderProps, type WalletContextValue } from './WalletContext';
|
|
3
|
+
export { ChainProvider, useChain, type ChainProviderProps, type ChainContextValue } from './ChainContext';
|
|
4
|
+
export { VarityPrivyProvider, type VarityPrivyProviderProps } from './PrivyProvider';
|
|
5
|
+
export { PrivyStack, type PrivyStackProps } from './PrivyStack';
|
|
6
|
+
export { ZeroDevProvider, useSmartAccount, useZeroDev, type ZeroDevContextType, type ZeroDevProviderProps } from './ZeroDevProvider';
|
|
7
|
+
export { WalletSyncProvider, WalletSyncContext, useWalletSync, type WalletSyncState, type WalletSyncProviderProps, } from './WalletSyncProvider';
|
|
8
|
+
export { VarityDashboardProvider, type VarityDashboardProviderProps, } from './VarityDashboardProvider';
|
|
9
|
+
/**
|
|
10
|
+
* Provider Setup Guide
|
|
11
|
+
*
|
|
12
|
+
* For simple Thirdweb-only apps:
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { VarityProvider, WalletProvider, ChainProvider } from '@varity-labs/ui-kit';
|
|
16
|
+
*
|
|
17
|
+
* function App() {
|
|
18
|
+
* return (
|
|
19
|
+
* <VarityProvider>
|
|
20
|
+
* <WalletProvider>
|
|
21
|
+
* <ChainProvider>
|
|
22
|
+
* <YourApp />
|
|
23
|
+
* </ChainProvider>
|
|
24
|
+
* </WalletProvider>
|
|
25
|
+
* </VarityProvider>
|
|
26
|
+
* );
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* For dashboards with Privy authentication (RECOMMENDED):
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* import { VarityDashboardProvider } from '@varity-labs/ui-kit';
|
|
34
|
+
*
|
|
35
|
+
* function App() {
|
|
36
|
+
* return (
|
|
37
|
+
* <VarityDashboardProvider
|
|
38
|
+
* privyAppId="your-privy-app-id"
|
|
39
|
+
* thirdwebClientId="your-thirdweb-client-id"
|
|
40
|
+
* appearance={{ theme: 'light', accentColor: '#2563EB' }}
|
|
41
|
+
* >
|
|
42
|
+
* <YourDashboard />
|
|
43
|
+
* </VarityDashboardProvider>
|
|
44
|
+
* );
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1G,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGrI,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export { VarityProvider } from './VarityProvider';
|
|
2
|
+
export { WalletProvider, useWallet } from './WalletContext';
|
|
3
|
+
export { ChainProvider, useChain } from './ChainContext';
|
|
4
|
+
// Privy Integration
|
|
5
|
+
export { VarityPrivyProvider } from './PrivyProvider';
|
|
6
|
+
// Privy Stack (All-in-one provider setup - PRODUCTION PATTERN)
|
|
7
|
+
export { PrivyStack } from './PrivyStack';
|
|
8
|
+
// ZeroDev Account Abstraction (gasless transactions)
|
|
9
|
+
export { ZeroDevProvider, useSmartAccount, useZeroDev } from './ZeroDevProvider';
|
|
10
|
+
// Wallet Sync (Privy + Thirdweb synchronization)
|
|
11
|
+
export { WalletSyncProvider, WalletSyncContext, useWalletSync, } from './WalletSyncProvider';
|
|
12
|
+
// Complete Dashboard Provider (Privy + Thirdweb + WalletSync + React Query)
|
|
13
|
+
export { VarityDashboardProvider, } from './VarityDashboardProvider';
|
|
14
|
+
/**
|
|
15
|
+
* Provider Setup Guide
|
|
16
|
+
*
|
|
17
|
+
* For simple Thirdweb-only apps:
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* import { VarityProvider, WalletProvider, ChainProvider } from '@varity-labs/ui-kit';
|
|
21
|
+
*
|
|
22
|
+
* function App() {
|
|
23
|
+
* return (
|
|
24
|
+
* <VarityProvider>
|
|
25
|
+
* <WalletProvider>
|
|
26
|
+
* <ChainProvider>
|
|
27
|
+
* <YourApp />
|
|
28
|
+
* </ChainProvider>
|
|
29
|
+
* </WalletProvider>
|
|
30
|
+
* </VarityProvider>
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* For dashboards with Privy authentication (RECOMMENDED):
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* import { VarityDashboardProvider } from '@varity-labs/ui-kit';
|
|
39
|
+
*
|
|
40
|
+
* function App() {
|
|
41
|
+
* return (
|
|
42
|
+
* <VarityDashboardProvider
|
|
43
|
+
* privyAppId="your-privy-app-id"
|
|
44
|
+
* thirdwebClientId="your-thirdweb-client-id"
|
|
45
|
+
* appearance={{ theme: 'light', accentColor: '#2563EB' }}
|
|
46
|
+
* >
|
|
47
|
+
* <YourDashboard />
|
|
48
|
+
* </VarityDashboardProvider>
|
|
49
|
+
* );
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA4B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAqD,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAmD,MAAM,gBAAgB,CAAC;AAE1G,oBAAoB;AACpB,OAAO,EAAE,mBAAmB,EAAiC,MAAM,iBAAiB,CAAC;AAErF,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAC;AAEhE,qDAAqD;AACrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAsD,MAAM,mBAAmB,CAAC;AAErI,iDAAiD;AACjD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAE9B,4EAA4E;AAC5E,OAAO,EACL,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimpleSmartWallet - Zero-config smart wallet with gasless transactions
|
|
3
|
+
*
|
|
4
|
+
* Perfect for getting started quickly. Advanced users should use SmartWalletProvider directly.
|
|
5
|
+
*
|
|
6
|
+
* @example Basic usage
|
|
7
|
+
* ```tsx
|
|
8
|
+
* import { SimpleSmartWallet } from '@varity-labs/ui-kit';
|
|
9
|
+
*
|
|
10
|
+
* <SimpleSmartWallet appId="your-app-id">
|
|
11
|
+
* <YourApp />
|
|
12
|
+
* </SimpleSmartWallet>
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @example With custom developer wallet
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <SimpleSmartWallet
|
|
18
|
+
* appId="your-app-id"
|
|
19
|
+
* developerWallet="0x..."
|
|
20
|
+
* >
|
|
21
|
+
* <YourApp />
|
|
22
|
+
* </SimpleSmartWallet>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import React from 'react';
|
|
26
|
+
export interface SimpleSmartWalletProps {
|
|
27
|
+
/**
|
|
28
|
+
* Your app ID (for gas tracking and billing)
|
|
29
|
+
* Get this from Varity App Store dashboard
|
|
30
|
+
*/
|
|
31
|
+
appId: string;
|
|
32
|
+
/**
|
|
33
|
+
* Developer wallet address for gas billing (optional)
|
|
34
|
+
* Defaults to connected wallet
|
|
35
|
+
*/
|
|
36
|
+
developerWallet?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Enable gasless transactions (default: true)
|
|
39
|
+
*/
|
|
40
|
+
gasless?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* thirdweb client ID (optional)
|
|
43
|
+
* Uses shared dev credentials if not provided
|
|
44
|
+
*/
|
|
45
|
+
thirdwebClientId?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Enable gas tracking (default: true on production)
|
|
48
|
+
*/
|
|
49
|
+
trackGas?: boolean;
|
|
50
|
+
children: React.ReactNode;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* SimpleSmartWallet Component
|
|
54
|
+
*
|
|
55
|
+
* Zero-configuration smart wallet wrapper that "just works" for rapid prototyping.
|
|
56
|
+
* Uses shared development credentials by default - upgrade to custom credentials for production.
|
|
57
|
+
*
|
|
58
|
+
* Features:
|
|
59
|
+
* - Gasless transactions (Varity pays gas by default)
|
|
60
|
+
* - Smart wallet (ERC-4337)
|
|
61
|
+
* - Automatic gas tracking for billing
|
|
62
|
+
* - Zero configuration required
|
|
63
|
+
*
|
|
64
|
+
* @param props - SimpleSmartWallet configuration
|
|
65
|
+
* @returns React component
|
|
66
|
+
*/
|
|
67
|
+
export declare function SimpleSmartWallet({ appId, developerWallet, gasless, thirdwebClientId, trackGas, children, }: SimpleSmartWalletProps): React.JSX.Element;
|
|
68
|
+
//# sourceMappingURL=SimpleSmartWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSmartWallet.d.ts","sourceRoot":"","sources":["../../src/wallets/SimpleSmartWallet.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,eAAe,EACf,OAAc,EACd,gBAAgB,EAChB,QAAgD,EAChD,QAAQ,GACT,EAAE,sBAAsB,qBAoCxB"}
|