@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.
Files changed (194) hide show
  1. package/dist/components/Dashboard/DashboardHeader.js +4 -4
  2. package/dist/components/Dashboard/DashboardHeader.js.map +1 -1
  3. package/dist/components/Dashboard/DashboardLayout.d.ts +3 -3
  4. package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -1
  5. package/dist/components/Dashboard/DashboardLayout.js +1 -1
  6. package/dist/components/InAppWallet/EmailLoginButton.d.ts +27 -0
  7. package/dist/components/InAppWallet/EmailLoginButton.d.ts.map +1 -0
  8. package/dist/components/InAppWallet/EmailLoginButton.js +84 -0
  9. package/dist/components/InAppWallet/EmailLoginButton.js.map +1 -0
  10. package/dist/components/InAppWallet/InAppWalletProvider.d.ts +54 -0
  11. package/dist/components/InAppWallet/InAppWalletProvider.d.ts.map +1 -0
  12. package/dist/components/InAppWallet/InAppWalletProvider.js +225 -0
  13. package/dist/components/InAppWallet/InAppWalletProvider.js.map +1 -0
  14. package/dist/components/InAppWallet/OnboardingFlow.d.ts +25 -0
  15. package/dist/components/InAppWallet/OnboardingFlow.d.ts.map +1 -0
  16. package/dist/components/InAppWallet/OnboardingFlow.js +159 -0
  17. package/dist/components/InAppWallet/OnboardingFlow.js.map +1 -0
  18. package/dist/components/InAppWallet/SocialLoginButtons.d.ts +28 -0
  19. package/dist/components/InAppWallet/SocialLoginButtons.d.ts.map +1 -0
  20. package/dist/components/InAppWallet/SocialLoginButtons.js +128 -0
  21. package/dist/components/InAppWallet/SocialLoginButtons.js.map +1 -0
  22. package/dist/components/InAppWallet/index.d.ts +15 -0
  23. package/dist/components/InAppWallet/index.d.ts.map +1 -0
  24. package/dist/components/InAppWallet/index.js +14 -0
  25. package/dist/components/InAppWallet/index.js.map +1 -0
  26. package/dist/components/PaymentWidget/PaymentWidget.d.ts +19 -7
  27. package/dist/components/PaymentWidget/PaymentWidget.d.ts.map +1 -1
  28. package/dist/components/PaymentWidget/PaymentWidget.js +176 -10
  29. package/dist/components/PaymentWidget/PaymentWidget.js.map +1 -1
  30. package/dist/components/PaymentWidget/useSeamlessPayment.d.ts +34 -8
  31. package/dist/components/PaymentWidget/useSeamlessPayment.d.ts.map +1 -1
  32. package/dist/components/PaymentWidget/useSeamlessPayment.js +158 -12
  33. package/dist/components/PaymentWidget/useSeamlessPayment.js.map +1 -1
  34. package/dist/components/PaymentWidget/useVarityPayment.d.ts +6 -5
  35. package/dist/components/PaymentWidget/useVarityPayment.d.ts.map +1 -1
  36. package/dist/components/PaymentWidget/useVarityPayment.js +147 -11
  37. package/dist/components/PaymentWidget/useVarityPayment.js.map +1 -1
  38. package/dist/components/Payments/CheckoutModal.d.ts +19 -0
  39. package/dist/components/Payments/CheckoutModal.d.ts.map +1 -0
  40. package/dist/components/Payments/CheckoutModal.js +194 -0
  41. package/dist/components/Payments/CheckoutModal.js.map +1 -0
  42. package/dist/components/Payments/SubscriptionWidget.d.ts +17 -0
  43. package/dist/components/Payments/SubscriptionWidget.d.ts.map +1 -0
  44. package/dist/components/Payments/SubscriptionWidget.js +89 -0
  45. package/dist/components/Payments/SubscriptionWidget.js.map +1 -0
  46. package/dist/components/Payments/constants.d.ts +59 -0
  47. package/dist/components/Payments/constants.d.ts.map +1 -0
  48. package/dist/components/Payments/constants.js +145 -0
  49. package/dist/components/Payments/constants.js.map +1 -0
  50. package/dist/components/Payments/index.d.ts +10 -0
  51. package/dist/components/Payments/index.d.ts.map +1 -0
  52. package/dist/components/Payments/index.js +12 -0
  53. package/dist/components/Payments/index.js.map +1 -0
  54. package/dist/components/Payments/types.d.ts +119 -0
  55. package/dist/components/Payments/types.d.ts.map +1 -0
  56. package/dist/components/Payments/types.js +27 -0
  57. package/dist/components/Payments/types.js.map +1 -0
  58. package/dist/components/Payments/usePayments.d.ts +33 -0
  59. package/dist/components/Payments/usePayments.d.ts.map +1 -0
  60. package/dist/components/Payments/usePayments.js +249 -0
  61. package/dist/components/Payments/usePayments.js.map +1 -0
  62. package/dist/components/SIWE/AuthStatus.d.ts +15 -0
  63. package/dist/components/SIWE/AuthStatus.d.ts.map +1 -0
  64. package/dist/components/SIWE/AuthStatus.js +47 -0
  65. package/dist/components/SIWE/AuthStatus.js.map +1 -0
  66. package/dist/components/SIWE/ProtectedRoute.d.ts +17 -0
  67. package/dist/components/SIWE/ProtectedRoute.d.ts.map +1 -0
  68. package/dist/components/SIWE/ProtectedRoute.js +52 -0
  69. package/dist/components/SIWE/ProtectedRoute.js.map +1 -0
  70. package/dist/components/SIWE/SIWEButton.d.ts +22 -0
  71. package/dist/components/SIWE/SIWEButton.d.ts.map +1 -0
  72. package/dist/components/SIWE/SIWEButton.js +106 -0
  73. package/dist/components/SIWE/SIWEButton.js.map +1 -0
  74. package/dist/components/SIWE/SIWEModal.d.ts +19 -0
  75. package/dist/components/SIWE/SIWEModal.d.ts.map +1 -0
  76. package/dist/components/SIWE/SIWEModal.js +75 -0
  77. package/dist/components/SIWE/SIWEModal.js.map +1 -0
  78. package/dist/components/SIWE/SIWEProvider.d.ts +38 -0
  79. package/dist/components/SIWE/SIWEProvider.d.ts.map +1 -0
  80. package/dist/components/SIWE/SIWEProvider.js +227 -0
  81. package/dist/components/SIWE/SIWEProvider.js.map +1 -0
  82. package/dist/components/SIWE/index.d.ts +15 -0
  83. package/dist/components/SIWE/index.d.ts.map +1 -0
  84. package/dist/components/SIWE/index.js +10 -0
  85. package/dist/components/SIWE/index.js.map +1 -0
  86. package/dist/hooks/web3/index.d.ts +5 -0
  87. package/dist/hooks/web3/index.d.ts.map +1 -0
  88. package/dist/hooks/web3/index.js +6 -0
  89. package/dist/hooks/web3/index.js.map +1 -0
  90. package/dist/hooks/web3/useAddressValidation.d.ts +37 -0
  91. package/dist/hooks/web3/useAddressValidation.d.ts.map +1 -0
  92. package/dist/hooks/web3/useAddressValidation.js +59 -0
  93. package/dist/hooks/web3/useAddressValidation.js.map +1 -0
  94. package/dist/hooks/web3/useBlockExplorer.d.ts +37 -0
  95. package/dist/hooks/web3/useBlockExplorer.d.ts.map +1 -0
  96. package/dist/hooks/web3/useBlockExplorer.js +59 -0
  97. package/dist/hooks/web3/useBlockExplorer.js.map +1 -0
  98. package/dist/hooks/web3/useUSDCFormat.d.ts +34 -0
  99. package/dist/hooks/web3/useUSDCFormat.d.ts.map +1 -0
  100. package/dist/hooks/web3/useUSDCFormat.js +43 -0
  101. package/dist/hooks/web3/useUSDCFormat.js.map +1 -0
  102. package/dist/hooks/web3/useVarityWallet.d.ts +48 -0
  103. package/dist/hooks/web3/useVarityWallet.d.ts.map +1 -0
  104. package/dist/hooks/web3/useVarityWallet.js +70 -0
  105. package/dist/hooks/web3/useVarityWallet.js.map +1 -0
  106. package/dist/providers/ChainContext.d.ts +65 -0
  107. package/dist/providers/ChainContext.d.ts.map +1 -0
  108. package/dist/providers/ChainContext.js +92 -0
  109. package/dist/providers/ChainContext.js.map +1 -0
  110. package/dist/providers/PrivyStack.d.ts +17 -50
  111. package/dist/providers/PrivyStack.d.ts.map +1 -1
  112. package/dist/providers/PrivyStack.js +15 -43
  113. package/dist/providers/PrivyStack.js.map +1 -1
  114. package/dist/providers/VarityDashboardProvider.d.ts +2 -2
  115. package/dist/providers/VarityDashboardProvider.d.ts.map +1 -1
  116. package/dist/providers/VarityDashboardProvider.js +26 -3
  117. package/dist/providers/VarityDashboardProvider.js.map +1 -1
  118. package/dist/providers/VarityProvider.d.ts +32 -0
  119. package/dist/providers/VarityProvider.d.ts.map +1 -0
  120. package/dist/providers/VarityProvider.js +56 -0
  121. package/dist/providers/VarityProvider.js.map +1 -0
  122. package/dist/providers/WalletContext.d.ts +68 -0
  123. package/dist/providers/WalletContext.d.ts.map +1 -0
  124. package/dist/providers/WalletContext.js +98 -0
  125. package/dist/providers/WalletContext.js.map +1 -0
  126. package/dist/providers/WalletSyncProvider.d.ts +15 -18
  127. package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
  128. package/dist/providers/WalletSyncProvider.js +12 -15
  129. package/dist/providers/WalletSyncProvider.js.map +1 -1
  130. package/dist/providers/index.d.ts +48 -0
  131. package/dist/providers/index.d.ts.map +1 -0
  132. package/dist/providers/index.js +53 -0
  133. package/dist/providers/index.js.map +1 -0
  134. package/dist/wallets/SimpleSmartWallet.d.ts +68 -0
  135. package/dist/wallets/SimpleSmartWallet.d.ts.map +1 -0
  136. package/dist/wallets/SimpleSmartWallet.js +74 -0
  137. package/dist/wallets/SimpleSmartWallet.js.map +1 -0
  138. package/dist/wallets/SmartWalletProvider.d.ts +217 -0
  139. package/dist/wallets/SmartWalletProvider.d.ts.map +1 -0
  140. package/dist/wallets/SmartWalletProvider.js +366 -0
  141. package/dist/wallets/SmartWalletProvider.js.map +1 -0
  142. package/dist/wallets/config.d.ts +222 -0
  143. package/dist/wallets/config.d.ts.map +1 -0
  144. package/dist/wallets/config.js +206 -0
  145. package/dist/wallets/config.js.map +1 -0
  146. package/dist/wallets/index.d.ts +9 -0
  147. package/dist/wallets/index.d.ts.map +1 -0
  148. package/dist/wallets/index.js +9 -0
  149. package/dist/wallets/index.js.map +1 -0
  150. package/dist/web3/AddressDisplay/AddressDisplay.d.ts +33 -0
  151. package/dist/web3/AddressDisplay/AddressDisplay.d.ts.map +1 -0
  152. package/dist/web3/AddressDisplay/AddressDisplay.js +42 -0
  153. package/dist/web3/AddressDisplay/AddressDisplay.js.map +1 -0
  154. package/dist/web3/AddressInput/AddressInput.d.ts +36 -0
  155. package/dist/web3/AddressInput/AddressInput.d.ts.map +1 -0
  156. package/dist/web3/AddressInput/AddressInput.js +54 -0
  157. package/dist/web3/AddressInput/AddressInput.js.map +1 -0
  158. package/dist/web3/AmountInput/AmountInput.d.ts +41 -0
  159. package/dist/web3/AmountInput/AmountInput.d.ts.map +1 -0
  160. package/dist/web3/AmountInput/AmountInput.js +74 -0
  161. package/dist/web3/AmountInput/AmountInput.js.map +1 -0
  162. package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts +30 -0
  163. package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts.map +1 -0
  164. package/dist/web3/BalanceDisplay/BalanceDisplay.js +35 -0
  165. package/dist/web3/BalanceDisplay/BalanceDisplay.js.map +1 -0
  166. package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts +41 -0
  167. package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts.map +1 -0
  168. package/dist/web3/BlockExplorerLink/BlockExplorerLink.js +46 -0
  169. package/dist/web3/BlockExplorerLink/BlockExplorerLink.js.map +1 -0
  170. package/dist/web3/ConnectWallet/ConnectWallet.d.ts +35 -0
  171. package/dist/web3/ConnectWallet/ConnectWallet.d.ts.map +1 -0
  172. package/dist/web3/ConnectWallet/ConnectWallet.js +58 -0
  173. package/dist/web3/ConnectWallet/ConnectWallet.js.map +1 -0
  174. package/dist/web3/DisconnectButton/DisconnectButton.d.ts +30 -0
  175. package/dist/web3/DisconnectButton/DisconnectButton.d.ts.map +1 -0
  176. package/dist/web3/DisconnectButton/DisconnectButton.js +48 -0
  177. package/dist/web3/DisconnectButton/DisconnectButton.js.map +1 -0
  178. package/dist/web3/WalletBalance/WalletBalance.d.ts +27 -0
  179. package/dist/web3/WalletBalance/WalletBalance.d.ts.map +1 -0
  180. package/dist/web3/WalletBalance/WalletBalance.js +49 -0
  181. package/dist/web3/WalletBalance/WalletBalance.js.map +1 -0
  182. package/dist/web3/WalletDropdown/WalletDropdown.d.ts +29 -0
  183. package/dist/web3/WalletDropdown/WalletDropdown.d.ts.map +1 -0
  184. package/dist/web3/WalletDropdown/WalletDropdown.js +93 -0
  185. package/dist/web3/WalletDropdown/WalletDropdown.js.map +1 -0
  186. package/dist/web3/WalletInfo/WalletInfo.d.ts +31 -0
  187. package/dist/web3/WalletInfo/WalletInfo.d.ts.map +1 -0
  188. package/dist/web3/WalletInfo/WalletInfo.js +41 -0
  189. package/dist/web3/WalletInfo/WalletInfo.js.map +1 -0
  190. package/dist/web3/index.d.ts +11 -0
  191. package/dist/web3/index.d.ts.map +1 -0
  192. package/dist/web3/index.js +14 -0
  193. package/dist/web3/index.js.map +1 -0
  194. package/package.json +4 -3
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Smart Wallet Configuration for Varity L3
3
+ *
4
+ * Contains contract addresses, bundler endpoints, and paymaster configuration
5
+ * for ERC-4337 Account Abstraction on Varity L3 Testnet (Chain ID 33529)
6
+ *
7
+ * IMPORTANT: These contracts need to be deployed to Varity L3
8
+ * Currently deployed on Arbitrum Sepolia - migration required
9
+ */
10
+ /**
11
+ * Contract Addresses for Varity L3
12
+ *
13
+ * ✅ DEPLOYED (January 13, 2026) - Ready for use!
14
+ * Deployed by: 0x08133625B80ECcCb07d154572afA3043CD515247
15
+ * Explorer: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz
16
+ */
17
+ export declare const VARITY_SMART_WALLET_CONTRACTS: {
18
+ /**
19
+ * VarityWalletFactory - Creates smart wallets for users
20
+ * ✅ Deployed: Varity L3 (Chain ID 33529)
21
+ * Verified: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz/address/0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78
22
+ */
23
+ readonly factoryAddress: "0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78";
24
+ /**
25
+ * SimplifiedPaymaster - Sponsors gas for transactions
26
+ * ✅ Deployed: Varity L3 (Chain ID 33529)
27
+ * ✅ Funded: $5 USDC in Conduit paymaster balance
28
+ * Verified: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz/address/0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154
29
+ */
30
+ readonly paymasterAddress: "0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154";
31
+ /**
32
+ * ERC-4337 EntryPoint (standard address across all chains)
33
+ * v0.6: 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789
34
+ * v0.7: 0x0000000071727De22E5E9d8BAf0edAc6f37da032
35
+ */
36
+ readonly entryPointAddress: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789";
37
+ };
38
+ /**
39
+ * Conduit Bundler Configuration
40
+ *
41
+ * ✅ CONFIGURED - Conduit Account Abstraction bundler for Varity L3
42
+ * Paymaster Balance: $5 USDC (funded and ready)
43
+ * Chain ID: 33529
44
+ */
45
+ export declare const CONDUIT_BUNDLER_CONFIG: {
46
+ /**
47
+ * Conduit AA Bundler RPC endpoint for Varity L3
48
+ * ✅ Active with $5 USDC paymaster balance
49
+ * Source: Conduit Dashboard → Account Abstraction Tab
50
+ */
51
+ readonly bundlerUrl: "https://aa.conduit.xyz/api/v3/60cd06d8-a734-453c-84e9-5387c315ee2e/chain/33529";
52
+ /**
53
+ * Environment variable override (optional)
54
+ * Use this if you want to switch bundler endpoints
55
+ */
56
+ readonly managedBundlerUrl: string;
57
+ };
58
+ /**
59
+ * Paymaster Configuration
60
+ *
61
+ * Gas sponsorship settings for Varity L3
62
+ */
63
+ export declare const PAYMASTER_CONFIG: {
64
+ /**
65
+ * Enable gas sponsorship by default
66
+ */
67
+ readonly enabled: true;
68
+ /**
69
+ * Paymaster URL (optional - uses thirdweb's if not provided)
70
+ * Can also use custom paymaster URL from Conduit/Pimlico
71
+ */
72
+ readonly paymasterUrl: string | undefined;
73
+ /**
74
+ * Gas policy - which operations to sponsor
75
+ */
76
+ readonly policy: {
77
+ /**
78
+ * Sponsor all transactions (recommended for MVP)
79
+ */
80
+ readonly sponsorAll: true;
81
+ /**
82
+ * Maximum gas limit to sponsor (in wei)
83
+ * Default: 500,000 gas units
84
+ */
85
+ readonly maxGasLimit: "500000";
86
+ /**
87
+ * Whitelist of contract addresses to sponsor
88
+ * Empty = sponsor all
89
+ */
90
+ readonly allowedContracts: string[];
91
+ };
92
+ };
93
+ /**
94
+ * Avalanche L1 AA Configuration
95
+ *
96
+ * ERC-4337 v0.7 stack on chain 43214:
97
+ * - EntryPoint v0.7.0 (non-canonical address)
98
+ * - SimpleAccountFactory
99
+ * - ApproveAllPaymaster (gas sponsorship)
100
+ * - Alto bundler (Pimlico)
101
+ *
102
+ * All contracts deployed and E2E verified (self-funded, paymaster-sponsored, wallet creation)
103
+ */
104
+ export declare const AVAX_L1_AA_CONFIG: {
105
+ /** Alto bundler RPC endpoint */
106
+ readonly bundlerUrl: string;
107
+ /** ERC-4337 EntryPoint v0.7.0 (custom deployment, not canonical address) */
108
+ readonly entryPointAddress: "0xA4cD3b0Eb6E5Ab5d8CE4065BcCD70040ADAB1F00";
109
+ /** SimpleAccountFactory */
110
+ readonly factoryAddress: "0xa4DfF80B4a1D748BF28BC4A271eD834689Ea3407";
111
+ /** ApproveAllPaymaster — sponsors all UserOps */
112
+ readonly paymasterAddress: "0xe336d36FacA76840407e6836d26119E1EcE0A2b4";
113
+ /** EntryPoint version */
114
+ readonly entryPointVersion: "0.7";
115
+ };
116
+ /**
117
+ * Default gas budget for new wallets (in USDC with 6 decimals)
118
+ * Example: 10 USDC = 10_000_000 (10 * 10^6)
119
+ */
120
+ export declare const DEFAULT_GAS_BUDGET = 10000000;
121
+ /**
122
+ * Default Smart Wallet Configuration
123
+ *
124
+ * Use this as a starting point for SmartWalletProvider
125
+ *
126
+ * @example
127
+ * ```tsx
128
+ * import { DEFAULT_SMART_WALLET_CONFIG } from './wallets/config';
129
+ *
130
+ * <SmartWalletProvider config={DEFAULT_SMART_WALLET_CONFIG}>
131
+ * <App />
132
+ * </SmartWalletProvider>
133
+ * ```
134
+ */
135
+ export declare function getDefaultSmartWalletConfig(client: any): {
136
+ client: any;
137
+ chain: Readonly<import("thirdweb/chains").ChainOptions & {
138
+ rpc: string;
139
+ }>;
140
+ gasless: {
141
+ /**
142
+ * Enable gas sponsorship by default
143
+ */
144
+ readonly enabled: true;
145
+ /**
146
+ * Paymaster URL (optional - uses thirdweb's if not provided)
147
+ * Can also use custom paymaster URL from Conduit/Pimlico
148
+ */
149
+ readonly paymasterUrl: string | undefined;
150
+ /**
151
+ * Gas policy - which operations to sponsor
152
+ */
153
+ readonly policy: {
154
+ /**
155
+ * Sponsor all transactions (recommended for MVP)
156
+ */
157
+ readonly sponsorAll: true;
158
+ /**
159
+ * Maximum gas limit to sponsor (in wei)
160
+ * Default: 500,000 gas units
161
+ */
162
+ readonly maxGasLimit: "500000";
163
+ /**
164
+ * Whitelist of contract addresses to sponsor
165
+ * Empty = sponsor all
166
+ */
167
+ readonly allowedContracts: string[];
168
+ };
169
+ };
170
+ factoryAddress: "0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78";
171
+ accountVersion: "0.6";
172
+ };
173
+ /**
174
+ * Deployment Status Checklist
175
+ *
176
+ * ✅ = Complete | ⏳ = In Progress | ⬜ = Not Started
177
+ *
178
+ * ✅ 1. Deploy SimplifiedPaymaster.sol to Varity L3
179
+ * - Deployed: 0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154
180
+ * - Date: January 13, 2026
181
+ * - Verified on Varity L3 Explorer
182
+ *
183
+ * ✅ 2. Deploy VarityWalletFactory.sol to Varity L3
184
+ * - Deployed: 0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78
185
+ * - Date: January 13, 2026
186
+ * - Verified on Varity L3 Explorer
187
+ *
188
+ * ⏳ 3. Initialize factory with paymaster address
189
+ * - Call: factory.initialize(paymasterAddress, DEFAULT_GAS_BUDGET)
190
+ * - Status: Needs verification (may already be done)
191
+ *
192
+ * ✅ 4. Fund paymaster with USDC
193
+ * - Funded: $5 USDC via Conduit paymaster balance
194
+ * - Status: Active and ready for gas sponsorship
195
+ *
196
+ * ✅ 5. Configure Conduit Bundler
197
+ * - Bundler URL: https://aa.conduit.xyz/api/v3/60cd06d8-a734-453c-84e9-5387c315ee2e/chain/33529
198
+ * - Updated in CONDUIT_BUNDLER_CONFIG
199
+ *
200
+ * ⏳ 6. Test complete flow
201
+ * - Connect wallet → Deploy smart wallet → Send gasless transaction
202
+ * - Status: Ready for testing (SmartWalletProvider 95% complete)
203
+ *
204
+ * **Next Steps**:
205
+ * - Verify factory initialization (step 3)
206
+ * - Run end-to-end integration test (step 6)
207
+ * - Monitor paymaster balance during testing
208
+ */
209
+ /**
210
+ * Helper: Get bundler URL
211
+ *
212
+ * Returns the appropriate bundler URL based on environment
213
+ */
214
+ export declare function getBundlerUrl(): string;
215
+ /**
216
+ * Helper: Check if contracts are deployed
217
+ *
218
+ * ✅ Contracts are deployed to Varity L3 (as of January 13, 2026)
219
+ * Returns true (contracts are ready to use)
220
+ */
221
+ export declare function areContractsDeployed(): boolean;
222
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/wallets/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;IACxC;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;CAEK,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;IACjC;;;;OAIG;;IAGH;;;OAGG;;CAEK,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;QAED;;WAEG;;QAGH;;;WAGG;;QAGH;;;WAGG;mCACqB,MAAM,EAAE;;CAE1B,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB;IAC5B,gCAAgC;;IAGhC,4EAA4E;;IAG5E,2BAA2B;;IAG3B,iDAAiD;;IAGjD,yBAAyB;;CAEjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,GAAG;;;;;;QAlFrD;;WAEG;;QAGH;;;WAGG;;QAGH;;WAEG;;YAED;;eAEG;;YAGH;;;eAGG;;YAGH;;;eAGG;uCACqB,MAAM,EAAE;;;;;EA4DnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAQtC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAK9C"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Smart Wallet Configuration for Varity L3
3
+ *
4
+ * Contains contract addresses, bundler endpoints, and paymaster configuration
5
+ * for ERC-4337 Account Abstraction on Varity L3 Testnet (Chain ID 33529)
6
+ *
7
+ * IMPORTANT: These contracts need to be deployed to Varity L3
8
+ * Currently deployed on Arbitrum Sepolia - migration required
9
+ */
10
+ import { varityL3Testnet, AVAX_L1_CONTRACTS } from '@varity-labs/sdk/chains';
11
+ /**
12
+ * Contract Addresses for Varity L3
13
+ *
14
+ * ✅ DEPLOYED (January 13, 2026) - Ready for use!
15
+ * Deployed by: 0x08133625B80ECcCb07d154572afA3043CD515247
16
+ * Explorer: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz
17
+ */
18
+ export const VARITY_SMART_WALLET_CONTRACTS = {
19
+ /**
20
+ * VarityWalletFactory - Creates smart wallets for users
21
+ * ✅ Deployed: Varity L3 (Chain ID 33529)
22
+ * Verified: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz/address/0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78
23
+ */
24
+ factoryAddress: '0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78',
25
+ /**
26
+ * SimplifiedPaymaster - Sponsors gas for transactions
27
+ * ✅ Deployed: Varity L3 (Chain ID 33529)
28
+ * ✅ Funded: $5 USDC in Conduit paymaster balance
29
+ * Verified: https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz/address/0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154
30
+ */
31
+ paymasterAddress: '0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154',
32
+ /**
33
+ * ERC-4337 EntryPoint (standard address across all chains)
34
+ * v0.6: 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789
35
+ * v0.7: 0x0000000071727De22E5E9d8BAf0edAc6f37da032
36
+ */
37
+ entryPointAddress: '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789', // v0.6 (default)
38
+ };
39
+ /**
40
+ * Conduit Bundler Configuration
41
+ *
42
+ * ✅ CONFIGURED - Conduit Account Abstraction bundler for Varity L3
43
+ * Paymaster Balance: $5 USDC (funded and ready)
44
+ * Chain ID: 33529
45
+ */
46
+ export const CONDUIT_BUNDLER_CONFIG = {
47
+ /**
48
+ * Conduit AA Bundler RPC endpoint for Varity L3
49
+ * ✅ Active with $5 USDC paymaster balance
50
+ * Source: Conduit Dashboard → Account Abstraction Tab
51
+ */
52
+ bundlerUrl: `https://aa.conduit.xyz/api/v3/60cd06d8-a734-453c-84e9-5387c315ee2e/chain/33529`,
53
+ /**
54
+ * Environment variable override (optional)
55
+ * Use this if you want to switch bundler endpoints
56
+ */
57
+ managedBundlerUrl: process.env.NEXT_PUBLIC_CONDUIT_BUNDLER_URL || '',
58
+ };
59
+ /**
60
+ * Paymaster Configuration
61
+ *
62
+ * Gas sponsorship settings for Varity L3
63
+ */
64
+ export const PAYMASTER_CONFIG = {
65
+ /**
66
+ * Enable gas sponsorship by default
67
+ */
68
+ enabled: true,
69
+ /**
70
+ * Paymaster URL (optional - uses thirdweb's if not provided)
71
+ * Can also use custom paymaster URL from Conduit/Pimlico
72
+ */
73
+ paymasterUrl: process.env.NEXT_PUBLIC_PAYMASTER_URL || undefined,
74
+ /**
75
+ * Gas policy - which operations to sponsor
76
+ */
77
+ policy: {
78
+ /**
79
+ * Sponsor all transactions (recommended for MVP)
80
+ */
81
+ sponsorAll: true,
82
+ /**
83
+ * Maximum gas limit to sponsor (in wei)
84
+ * Default: 500,000 gas units
85
+ */
86
+ maxGasLimit: '500000',
87
+ /**
88
+ * Whitelist of contract addresses to sponsor
89
+ * Empty = sponsor all
90
+ */
91
+ allowedContracts: [],
92
+ },
93
+ };
94
+ /**
95
+ * Avalanche L1 AA Configuration
96
+ *
97
+ * ERC-4337 v0.7 stack on chain 43214:
98
+ * - EntryPoint v0.7.0 (non-canonical address)
99
+ * - SimpleAccountFactory
100
+ * - ApproveAllPaymaster (gas sponsorship)
101
+ * - Alto bundler (Pimlico)
102
+ *
103
+ * All contracts deployed and E2E verified (self-funded, paymaster-sponsored, wallet creation)
104
+ */
105
+ export const AVAX_L1_AA_CONFIG = {
106
+ /** Alto bundler RPC endpoint */
107
+ bundlerUrl: process.env.NEXT_PUBLIC_AVAX_L1_BUNDLER_URL || 'https://infra-2.varity.app/bundler',
108
+ /** ERC-4337 EntryPoint v0.7.0 (custom deployment, not canonical address) */
109
+ entryPointAddress: AVAX_L1_CONTRACTS.entryPoint,
110
+ /** SimpleAccountFactory */
111
+ factoryAddress: AVAX_L1_CONTRACTS.accountFactory,
112
+ /** ApproveAllPaymaster — sponsors all UserOps */
113
+ paymasterAddress: AVAX_L1_CONTRACTS.paymaster,
114
+ /** EntryPoint version */
115
+ entryPointVersion: '0.7',
116
+ };
117
+ /**
118
+ * Default gas budget for new wallets (in USDC with 6 decimals)
119
+ * Example: 10 USDC = 10_000_000 (10 * 10^6)
120
+ */
121
+ export const DEFAULT_GAS_BUDGET = 10_000_000; // 10 USDC
122
+ /**
123
+ * Default Smart Wallet Configuration
124
+ *
125
+ * Use this as a starting point for SmartWalletProvider
126
+ *
127
+ * @example
128
+ * ```tsx
129
+ * import { DEFAULT_SMART_WALLET_CONFIG } from './wallets/config';
130
+ *
131
+ * <SmartWalletProvider config={DEFAULT_SMART_WALLET_CONFIG}>
132
+ * <App />
133
+ * </SmartWalletProvider>
134
+ * ```
135
+ */
136
+ export function getDefaultSmartWalletConfig(client) {
137
+ return {
138
+ client,
139
+ chain: varityL3Testnet,
140
+ gasless: PAYMASTER_CONFIG,
141
+ factoryAddress: VARITY_SMART_WALLET_CONTRACTS.factoryAddress,
142
+ accountVersion: '0.6', // ERC-4337 version
143
+ };
144
+ }
145
+ /**
146
+ * Deployment Status Checklist
147
+ *
148
+ * ✅ = Complete | ⏳ = In Progress | ⬜ = Not Started
149
+ *
150
+ * ✅ 1. Deploy SimplifiedPaymaster.sol to Varity L3
151
+ * - Deployed: 0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154
152
+ * - Date: January 13, 2026
153
+ * - Verified on Varity L3 Explorer
154
+ *
155
+ * ✅ 2. Deploy VarityWalletFactory.sol to Varity L3
156
+ * - Deployed: 0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78
157
+ * - Date: January 13, 2026
158
+ * - Verified on Varity L3 Explorer
159
+ *
160
+ * ⏳ 3. Initialize factory with paymaster address
161
+ * - Call: factory.initialize(paymasterAddress, DEFAULT_GAS_BUDGET)
162
+ * - Status: Needs verification (may already be done)
163
+ *
164
+ * ✅ 4. Fund paymaster with USDC
165
+ * - Funded: $5 USDC via Conduit paymaster balance
166
+ * - Status: Active and ready for gas sponsorship
167
+ *
168
+ * ✅ 5. Configure Conduit Bundler
169
+ * - Bundler URL: https://aa.conduit.xyz/api/v3/60cd06d8-a734-453c-84e9-5387c315ee2e/chain/33529
170
+ * - Updated in CONDUIT_BUNDLER_CONFIG
171
+ *
172
+ * ⏳ 6. Test complete flow
173
+ * - Connect wallet → Deploy smart wallet → Send gasless transaction
174
+ * - Status: Ready for testing (SmartWalletProvider 95% complete)
175
+ *
176
+ * **Next Steps**:
177
+ * - Verify factory initialization (step 3)
178
+ * - Run end-to-end integration test (step 6)
179
+ * - Monitor paymaster balance during testing
180
+ */
181
+ /**
182
+ * Helper: Get bundler URL
183
+ *
184
+ * Returns the appropriate bundler URL based on environment
185
+ */
186
+ export function getBundlerUrl() {
187
+ // Use managed bundler URL if set (from Conduit dashboard)
188
+ if (CONDUIT_BUNDLER_CONFIG.managedBundlerUrl) {
189
+ return CONDUIT_BUNDLER_CONFIG.managedBundlerUrl;
190
+ }
191
+ // Fall back to default Conduit bundler endpoint
192
+ return CONDUIT_BUNDLER_CONFIG.bundlerUrl;
193
+ }
194
+ /**
195
+ * Helper: Check if contracts are deployed
196
+ *
197
+ * ✅ Contracts are deployed to Varity L3 (as of January 13, 2026)
198
+ * Returns true (contracts are ready to use)
199
+ */
200
+ export function areContractsDeployed() {
201
+ // Contracts deployed on January 13, 2026
202
+ // Factory: 0x23dcca8E063CB0Eea8Ec6e56657c07E11fFa4E78
203
+ // Paymaster: 0x579772Bfa5Ec1e8f33B81F304ffDbC55135db154
204
+ return true;
205
+ }
206
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/wallets/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAiB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C;;;;OAIG;IACH,cAAc,EAAE,4CAAqD;IAErE;;;;;OAKG;IACH,gBAAgB,EAAE,4CAAqD;IAEvE;;;;OAIG;IACH,iBAAiB,EAAE,4CAAqD,EAAE,iBAAiB;CACnF,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,UAAU,EAAE,gFAAyF;IAErG;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;CAC5D,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;;OAEG;IACH,OAAO,EAAE,IAAI;IAEb;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,SAAS;IAEhE;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,UAAU,EAAE,IAAI;QAEhB;;;WAGG;QACH,WAAW,EAAE,QAAQ;QAErB;;;WAGG;QACH,gBAAgB,EAAE,EAAc;KACjC;CACO,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gCAAgC;IAChC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,oCAAoC;IAE/F,4EAA4E;IAC5E,iBAAiB,EAAE,iBAAiB,CAAC,UAAU;IAE/C,2BAA2B;IAC3B,cAAc,EAAE,iBAAiB,CAAC,cAAc;IAEhD,iDAAiD;IACjD,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;IAE7C,yBAAyB;IACzB,iBAAiB,EAAE,KAAc;CACzB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,UAAU;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAW;IACrD,OAAO;QACL,MAAM;QACN,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,gBAAgB;QACzB,cAAc,EAAE,6BAA6B,CAAC,cAAc;QAC5D,cAAc,EAAE,KAAc,EAAE,mBAAmB;KACpD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,0DAA0D;IAC1D,IAAI,sBAAsB,CAAC,iBAAiB,EAAE,CAAC;QAC7C,OAAO,sBAAsB,CAAC,iBAAiB,CAAC;IAClD,CAAC;IAED,gDAAgD;IAChD,OAAO,sBAAsB,CAAC,UAAU,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,yCAAyC;IACzC,sDAAsD;IACtD,wDAAwD;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Varity UI Kit - Wallet Components
3
+ *
4
+ * Smart wallet components for ERC-4337 account abstraction
5
+ */
6
+ export { SmartWalletProvider, useSmartWallet, SmartWalletConnectButton, GaslessBadge, type SmartWalletConfig, } from './SmartWalletProvider';
7
+ export { VARITY_SMART_WALLET_CONTRACTS, CONDUIT_BUNDLER_CONFIG, PAYMASTER_CONFIG, AVAX_L1_AA_CONFIG, DEFAULT_GAS_BUDGET, getDefaultSmartWalletConfig, getBundlerUrl, areContractsDeployed, } from './config';
8
+ export { SimpleSmartWallet, type SimpleSmartWalletProps, } from './SimpleSmartWallet';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Varity UI Kit - Wallet Components
3
+ *
4
+ * Smart wallet components for ERC-4337 account abstraction
5
+ */
6
+ export { SmartWalletProvider, useSmartWallet, SmartWalletConnectButton, GaslessBadge, } from './SmartWalletProvider';
7
+ export { VARITY_SMART_WALLET_CONTRACTS, CONDUIT_BUNDLER_CONFIG, PAYMASTER_CONFIG, AVAX_L1_AA_CONFIG, DEFAULT_GAS_BUDGET, getDefaultSmartWalletConfig, getBundlerUrl, areContractsDeployed, } from './config';
8
+ export { SimpleSmartWallet, } from './SimpleSmartWallet';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,YAAY,GAEb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,33 @@
1
+ export interface AddressDisplayProps {
2
+ address: string;
3
+ format?: 'short' | 'full';
4
+ copyable?: boolean;
5
+ linkToExplorer?: boolean;
6
+ className?: string;
7
+ }
8
+ /**
9
+ * Address Display Component
10
+ *
11
+ * Formats and displays Ethereum addresses with optional features:
12
+ * - Copy to clipboard
13
+ * - Link to block explorer
14
+ * - Short or full format
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { AddressDisplay } from '@varity-labs/ui-kit';
19
+ *
20
+ * function Transaction() {
21
+ * return (
22
+ * <AddressDisplay
23
+ * address="0x1234567890abcdef1234567890abcdef12345678"
24
+ * format="short"
25
+ * copyable
26
+ * linkToExplorer
27
+ * />
28
+ * );
29
+ * }
30
+ * ```
31
+ */
32
+ export declare function AddressDisplay({ address, format, copyable, linkToExplorer, className, }: AddressDisplayProps): JSX.Element;
33
+ //# sourceMappingURL=AddressDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressDisplay.d.ts","sourceRoot":"","sources":["../../../src/web3/AddressDisplay/AddressDisplay.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,MAAgB,EAChB,QAAe,EACf,cAAsB,EACtB,SAAc,GACf,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAmDnC"}
@@ -0,0 +1,42 @@
1
+ import React, { useState } from 'react';
2
+ import { formatAddress } from '../../config/chains';
3
+ /**
4
+ * Address Display Component
5
+ *
6
+ * Formats and displays Ethereum addresses with optional features:
7
+ * - Copy to clipboard
8
+ * - Link to block explorer
9
+ * - Short or full format
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { AddressDisplay } from '@varity-labs/ui-kit';
14
+ *
15
+ * function Transaction() {
16
+ * return (
17
+ * <AddressDisplay
18
+ * address="0x1234567890abcdef1234567890abcdef12345678"
19
+ * format="short"
20
+ * copyable
21
+ * linkToExplorer
22
+ * />
23
+ * );
24
+ * }
25
+ * ```
26
+ */
27
+ export function AddressDisplay({ address, format = 'short', copyable = true, linkToExplorer = false, className = '', }) {
28
+ const [copied, setCopied] = useState(false);
29
+ const displayAddress = format === 'short' ? formatAddress(address) : address;
30
+ const handleCopy = () => {
31
+ navigator.clipboard.writeText(address);
32
+ setCopied(true);
33
+ setTimeout(() => setCopied(false), 2000);
34
+ };
35
+ const content = (React.createElement("span", { className: `truncate-address ${className}` }, displayAddress));
36
+ return (React.createElement("div", { className: "inline-flex items-center gap-2" },
37
+ linkToExplorer ? (React.createElement("a", { href: `https://sepolia.arbiscan.io/address/${address}`, target: "_blank", rel: "noopener noreferrer", className: "text-varity-primary hover:text-varity-primary/80 underline" }, content)) : (content),
38
+ copyable && (React.createElement("button", { onClick: handleCopy, className: "p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors", title: copied ? 'Copied!' : 'Copy address' }, copied ? (React.createElement("svg", { className: "w-4 h-4 text-green-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
39
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }))) : (React.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
40
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" })))))));
41
+ }
42
+ //# sourceMappingURL=AddressDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressDisplay.js","sourceRoot":"","sources":["../../../src/web3/AddressDisplay/AddressDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,IAAI,EACf,cAAc,GAAG,KAAK,EACtB,SAAS,GAAG,EAAE,GACM;IACpB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,cAAc,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7E,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,8BAAM,SAAS,EAAE,oBAAoB,SAAS,EAAE,IAC7C,cAAc,CACV,CACR,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,gCAAgC;QAC5C,cAAc,CAAC,CAAC,CAAC,CAChB,2BACE,IAAI,EAAE,uCAAuC,OAAO,EAAE,EACtD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,4DAA4D,IAErE,OAAO,CACN,CACL,CAAC,CAAC,CAAC,CACF,OAAO,CACR;QAEA,QAAQ,IAAI,CACX,gCACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,wEAAwE,EAClF,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,IAEzC,MAAM,CAAC,CAAC,CAAC,CACR,6BAAK,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW;YAC3F,8BAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,gBAAgB,GAAG,CACpF,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW;YAC5E,8BAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,uHAAuH,GAAG,CAC3L,CACP,CACM,CACV,CACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ export interface AddressInputProps {
2
+ value: string;
3
+ onChange: (value: string, isValid: boolean) => void;
4
+ label?: string;
5
+ placeholder?: string;
6
+ error?: string;
7
+ className?: string;
8
+ }
9
+ /**
10
+ * Address Input Component
11
+ *
12
+ * Input field for Ethereum addresses with validation:
13
+ * - Real-time address validation
14
+ * - Visual feedback for valid/invalid addresses
15
+ * - Error states
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * import { AddressInput } from '@varity-labs/ui-kit';
20
+ *
21
+ * function SendForm() {
22
+ * const [recipient, setRecipient] = useState('');
23
+ *
24
+ * return (
25
+ * <AddressInput
26
+ * value={recipient}
27
+ * onChange={(value, isValid) => setRecipient(value)}
28
+ * label="Recipient Address"
29
+ * placeholder="0x..."
30
+ * />
31
+ * );
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function AddressInput({ value, onChange, label, placeholder, error, className, }: AddressInputProps): JSX.Element;
36
+ //# sourceMappingURL=AddressInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressInput.d.ts","sourceRoot":"","sources":["../../../src/web3/AddressInput/AddressInput.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAqB,EACrB,KAAK,EACL,SAAc,GACf,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CA8DjC"}
@@ -0,0 +1,54 @@
1
+ import React, { useState } from 'react';
2
+ import { isAddress } from 'viem';
3
+ /**
4
+ * Address Input Component
5
+ *
6
+ * Input field for Ethereum addresses with validation:
7
+ * - Real-time address validation
8
+ * - Visual feedback for valid/invalid addresses
9
+ * - Error states
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { AddressInput } from '@varity-labs/ui-kit';
14
+ *
15
+ * function SendForm() {
16
+ * const [recipient, setRecipient] = useState('');
17
+ *
18
+ * return (
19
+ * <AddressInput
20
+ * value={recipient}
21
+ * onChange={(value, isValid) => setRecipient(value)}
22
+ * label="Recipient Address"
23
+ * placeholder="0x..."
24
+ * />
25
+ * );
26
+ * }
27
+ * ```
28
+ */
29
+ export function AddressInput({ value, onChange, label, placeholder = '0x...', error, className = '', }) {
30
+ const [touched, setTouched] = useState(false);
31
+ const isValidAddress = value ? isAddress(value) : false;
32
+ const showError = touched && value && !isValidAddress;
33
+ const handleChange = (e) => {
34
+ const newValue = e.target.value;
35
+ const isValid = newValue ? isAddress(newValue) : false;
36
+ onChange(newValue, isValid);
37
+ };
38
+ const handleBlur = () => {
39
+ setTouched(true);
40
+ };
41
+ return (React.createElement("div", { className: `space-y-2 ${className}` },
42
+ label && (React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300" }, label)),
43
+ React.createElement("div", { className: "relative" },
44
+ React.createElement("input", { type: "text", value: value, onChange: handleChange, onBlur: handleBlur, placeholder: placeholder, className: `input pr-10 font-mono ${showError || error
45
+ ? 'border-red-500 focus:ring-red-500'
46
+ : isValidAddress
47
+ ? 'border-green-500 focus:ring-green-500'
48
+ : ''}` }),
49
+ value && (React.createElement("div", { className: "absolute right-3 top-1/2 -translate-y-1/2" }, isValidAddress ? (React.createElement("svg", { className: "w-5 h-5 text-green-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
50
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }))) : touched ? (React.createElement("svg", { className: "w-5 h-5 text-red-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
51
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))) : null))),
52
+ (showError || error) && (React.createElement("p", { className: "text-sm text-red-500" }, error || 'Invalid Ethereum address'))));
53
+ }
54
+ //# sourceMappingURL=AddressInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddressInput.js","sourceRoot":"","sources":["../../../src/web3/AddressInput/AddressInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAWjC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,OAAO,EACrB,KAAK,EACL,SAAS,GAAG,EAAE,GACI;IAClB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC;IAEtD,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,aAAa,SAAS,EAAE;QACrC,KAAK,IAAI,CACR,+BAAO,SAAS,EAAC,4DAA4D,IAC1E,KAAK,CACA,CACT;QAED,6BAAK,SAAS,EAAC,UAAU;YACvB,+BACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,yBACT,SAAS,IAAI,KAAK;oBAChB,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,uCAAuC;wBACzC,CAAC,CAAC,EACN,EAAE,GACF;YAED,KAAK,IAAI,CACR,6BAAK,SAAS,EAAC,2CAA2C,IACvD,cAAc,CAAC,CAAC,CAAC,CAChB,6BAAK,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW;gBAC3F,8BAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,gBAAgB,GAAG,CACpF,CACP,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,6BAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW;gBACzF,8BAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,sBAAsB,GAAG,CAC1F,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CACG;QAEL,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CACvB,2BAAG,SAAS,EAAC,sBAAsB,IAChC,KAAK,IAAI,0BAA0B,CAClC,CACL,CACG,CACP,CAAC;AACJ,CAAC"}