@cookill/wallet-adapter 2.4.0 → 2.4.2

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/react.tsx"],"names":["createContext","useState","useMemo","useEffect","useCallback","jsx","useContext","jsxs"],"mappings":"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","file":"react.cjs","sourcesContent":["/**\n * @cookill/wallet-adapter v2.3.0\n * Sheep Wallet adapter for Rialo blockchain dApps\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RialoChain = 'rialo:mainnet' | 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';\nexport type RialoNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';\n\nexport interface WalletAccount {\n address: string;\n publicKey?: Uint8Array | string;\n label?: string;\n}\n\nexport interface TransactionRequest {\n to: string;\n value: string;\n data?: string;\n memo?: string;\n}\n\nexport interface TransactionResult {\n hash: string;\n signature?: string;\n status: 'pending' | 'confirmed' | 'failed';\n blockNumber?: number;\n}\n\nexport interface SignedMessage {\n signature: string;\n message: string;\n address: string;\n publicKey?: string;\n}\n\nexport interface BalanceResult {\n balance: string;\n balanceKelvins: string;\n formatted: string;\n}\n\nexport interface NetworkConfig {\n chainId: string;\n name: string;\n rpcUrl: string;\n wsUrl?: string;\n explorerUrl?: string;\n symbol: string;\n decimals: number;\n}\n\nexport interface WalletInfo {\n id: string;\n name: string;\n icon: string;\n installed?: boolean;\n downloadUrl?: string;\n}\n\nexport type WalletEvent = \n | 'connect' \n | 'disconnect' \n | 'accountsChanged'\n | 'networkChanged' \n | 'chainChanged'\n | 'error';\n\n// ============================================================================\n// Network Configurations\n// ============================================================================\n\nexport const NETWORKS: Record<RialoNetwork, NetworkConfig> = {\n mainnet: {\n chainId: 'rialo:mainnet',\n name: 'Rialo Mainnet',\n rpcUrl: 'https://mainnet.rialo.io:4101',\n wsUrl: 'wss://mainnet.rialo.io:4102',\n explorerUrl: 'https://explorer.rialo.io',\n symbol: 'RLO',\n decimals: 9,\n },\n testnet: {\n chainId: 'rialo:testnet',\n name: 'Rialo Testnet',\n rpcUrl: 'https://testnet.rialo.io:4101',\n wsUrl: 'wss://testnet.rialo.io:4102',\n explorerUrl: 'https://testnet.explorer.rialo.io',\n symbol: 'tRLO',\n decimals: 9,\n },\n devnet: {\n chainId: 'rialo:devnet',\n name: 'Rialo Devnet',\n rpcUrl: 'https://devnet.rialo.io:4101',\n wsUrl: 'wss://devnet.rialo.io:4102',\n explorerUrl: 'https://devnet.explorer.rialo.io',\n symbol: 'dRLO',\n decimals: 9,\n },\n localnet: {\n chainId: 'rialo:localnet',\n name: 'Rialo Localnet',\n rpcUrl: 'http://localhost:4101',\n wsUrl: 'ws://localhost:4102',\n explorerUrl: 'http://localhost:3000',\n symbol: 'lRLO',\n decimals: 9,\n },\n};\n\n// ============================================================================\n// Provider Interface\n// ============================================================================\n\nexport interface RialoProvider {\n // Metadata\n isRialo: boolean;\n isSheepWallet?: boolean;\n name?: string;\n walletName?: string;\n version: string;\n icon?: string;\n\n // Connection\n connect(options?: { silent?: boolean }): Promise<WalletAccount[]>;\n disconnect(): Promise<void>;\n isConnected(): Promise<boolean>;\n getAccounts(): Promise<WalletAccount[]>;\n\n // Transactions\n signTransaction(tx: TransactionRequest): Promise<{ signature: string; signedTransaction?: string; rawTransaction?: string }>;\n sendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAllTransactions?(txs: TransactionRequest[]): Promise<{ signedTransactions: string[] }>;\n\n // Message signing\n signMessage(message: string | Uint8Array): Promise<SignedMessage>;\n\n // Network\n getNetwork(): Promise<RialoNetwork>;\n switchNetwork(network: RialoNetwork): Promise<{ success: boolean }>;\n getChainId(): Promise<string>;\n getBalance(address?: string): Promise<BalanceResult | string>;\n\n // Events\n on(event: WalletEvent, callback: (data: unknown) => void): () => void;\n off?(event: WalletEvent, callback: (data: unknown) => void): void;\n removeListener(event: WalletEvent, callback: (data: unknown) => void): void;\n removeAllListeners(event?: WalletEvent): void;\n\n // Utilities\n utils?: {\n isValidAddress(address: string): boolean;\n formatAddress(address: string, chars?: number): string;\n };\n\n // Wallet Standard\n features?: string[];\n supportsFeature?(feature: string): boolean;\n\n // State getters\n readonly connected?: boolean;\n readonly accounts?: WalletAccount[];\n readonly address?: string | null;\n readonly publicKey?: string | null;\n readonly network?: RialoNetwork;\n readonly chainId?: string;\n}\n\n// ============================================================================\n// Detection & Access\n// ============================================================================\n\nexport function isRialoInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n return !!(window as RialoWindow).rialo?.isRialo;\n}\n\nexport function getRialoProvider(): RialoProvider | undefined {\n if (typeof window === 'undefined') return undefined;\n const rialo = (window as RialoWindow).rialo;\n return rialo?.isRialo ? rialo : undefined;\n}\n\nexport function waitForRialoProvider(timeout = 3000): Promise<RialoProvider | undefined> {\n return new Promise((resolve) => {\n if (isRialoInstalled()) {\n resolve(getRialoProvider());\n return;\n }\n\n let resolved = false;\n const checkInterval = setInterval(() => {\n if (isRialoInstalled() && !resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n }, 100);\n\n setTimeout(() => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(undefined);\n }\n }, timeout);\n\n // Also listen for initialization event\n const handler = () => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n };\n window.addEventListener('rialo#initialized', handler, { once: true });\n });\n}\n\n// ============================================================================\n// Simple Wallet Class (Non-React)\n// ============================================================================\n\nexport class RialoWallet {\n private provider: RialoProvider | undefined;\n private _connected = false;\n private _accounts: WalletAccount[] = [];\n private _network: RialoNetwork = 'devnet';\n private _listeners: Map<string, Set<() => void>> = new Map();\n\n constructor() {\n this.provider = getRialoProvider();\n this.setupEvents();\n }\n\n private setupEvents() {\n if (!this.provider) return;\n\n this.provider.on('disconnect', () => {\n this._connected = false;\n this._accounts = [];\n });\n\n this.provider.on('accountsChanged', (data: unknown) => {\n const accounts = data as WalletAccount[];\n this._accounts = accounts;\n });\n\n this.provider.on('networkChanged', (data: unknown) => {\n const { network } = data as { network: RialoNetwork };\n this._network = network;\n });\n }\n\n get isInstalled(): boolean {\n return isRialoInstalled();\n }\n\n get connected(): boolean {\n return this._connected;\n }\n\n get accounts(): WalletAccount[] {\n return this._accounts;\n }\n\n get activeAccount(): WalletAccount | undefined {\n return this._accounts[0];\n }\n\n get network(): RialoNetwork {\n return this._network;\n }\n\n get chainId(): string {\n return `rialo:${this._network}`;\n }\n\n async connect(): Promise<WalletAccount[]> {\n this.provider = getRialoProvider();\n if (!this.provider) {\n throw new Error('Rialo Wallet not installed. Download at https://rialo.io/wallet');\n }\n\n const accounts = await this.provider.connect();\n this._accounts = accounts;\n this._connected = true;\n\n const network = await this.provider.getNetwork();\n this._network = network;\n\n return this._accounts;\n }\n\n async disconnect(): Promise<void> {\n if (this.provider) {\n await this.provider.disconnect();\n }\n this._connected = false;\n this._accounts = [];\n }\n\n async signMessage(message: string): Promise<SignedMessage> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signMessage(message);\n }\n\n async signTransaction(tx: TransactionRequest): Promise<string> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n const result = await this.provider.signTransaction(tx);\n return result.signature;\n }\n\n async sendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.sendTransaction(tx);\n }\n\n async signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signAndSendTransaction(tx);\n }\n\n async getBalance(address?: string): Promise<string> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n const result = await this.provider.getBalance(address);\n if (typeof result === 'string') return result;\n return result.balance;\n }\n\n async switchNetwork(network: RialoNetwork): Promise<void> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n await this.provider.switchNetwork(network);\n this._network = network;\n }\n\n on(event: WalletEvent, callback: (data: unknown) => void): () => void {\n if (!this.provider) {\n return () => {};\n }\n return this.provider.on(event, callback);\n }\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\n\nexport function formatAddress(address: string, chars = 4): string {\n if (!address) return '';\n if (address.length <= chars * 2 + 3) return address;\n return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;\n}\n\nexport function formatBalance(kelvins: string | bigint, decimals = 4): string {\n const value = typeof kelvins === 'string' ? BigInt(kelvins || '0') : kelvins;\n const rlo = Number(value) / 1_000_000_000;\n return rlo.toFixed(decimals);\n}\n\nexport function parseBalance(rlo: string | number): bigint {\n const value = typeof rlo === 'string' ? parseFloat(rlo) : rlo;\n return BigInt(Math.floor(value * 1_000_000_000));\n}\n\nexport function isValidAddress(address: string): boolean {\n if (!address || typeof address !== 'string') return false;\n if (address.length < 32 || address.length > 50) return false;\n return /^[1-9A-HJ-NP-Za-km-z]+$/.test(address);\n}\n\nexport function toChainId(network: RialoNetwork): RialoChain {\n return `rialo:${network}` as RialoChain;\n}\n\nexport function fromChainId(chainId: RialoChain): RialoNetwork {\n return chainId.replace('rialo:', '') as RialoNetwork;\n}\n\n// ============================================================================\n// Window Extension\n// ============================================================================\n\ninterface RialoWindow extends Window {\n rialo?: RialoProvider;\n}\n\ndeclare global {\n interface Window {\n rialo?: RialoProvider;\n Rialo?: RialoProvider;\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default RialoWallet;\n","/**\n * @cookill/wallet-adapter/react v2.3.0\n * React hooks and components for Sheep Wallet / Rialo blockchain integration\n */\n\nimport React, {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n ReactNode,\n useMemo,\n} from 'react';\nimport {\n RialoProvider,\n RialoNetwork,\n WalletAccount,\n TransactionRequest,\n TransactionResult,\n SignedMessage,\n WalletInfo,\n NetworkConfig,\n isRialoInstalled,\n getRialoProvider,\n waitForRialoProvider,\n formatAddress,\n formatBalance,\n isValidAddress,\n NETWORKS,\n} from './index';\n\n// ============================================================================\n// Context Types\n// ============================================================================\n\nexport interface WalletContextState {\n // State\n connected: boolean;\n connecting: boolean;\n accounts: WalletAccount[];\n activeAccount: WalletAccount | null;\n network: RialoNetwork;\n chainId: string;\n balance: string | null;\n error: Error | null;\n\n // Wallet info\n wallets: WalletInfo[];\n selectedWallet: WalletInfo | null;\n isInstalled: boolean;\n\n // Actions\n connect: () => Promise<WalletAccount[]>;\n disconnect: () => Promise<void>;\n selectWallet: (walletId: string) => void;\n switchNetwork: (network: RialoNetwork) => Promise<void>;\n refreshBalance: () => Promise<void>;\n\n // Transactions\n signMessage: (message: string) => Promise<SignedMessage>;\n signTransaction: (tx: TransactionRequest) => Promise<string>;\n sendTransaction: (tx: TransactionRequest) => Promise<TransactionResult>;\n signAndSendTransaction: (tx: TransactionRequest) => Promise<TransactionResult>;\n\n // Modal\n isModalOpen: boolean;\n openModal: () => void;\n closeModal: () => void;\n}\n\n// ============================================================================\n// Provider Props\n// ============================================================================\n\nexport interface WalletProviderProps {\n children: ReactNode;\n network?: RialoNetwork;\n autoConnect?: boolean;\n wallets?: WalletInfo[];\n theme?: 'light' | 'dark' | 'auto';\n onConnect?: (accounts: WalletAccount[]) => void;\n onDisconnect?: () => void;\n onError?: (error: Error) => void;\n onNetworkChange?: (network: RialoNetwork) => void;\n}\n\n// ============================================================================\n// Default Wallets\n// ============================================================================\n\nconst DEFAULT_WALLETS: WalletInfo[] = [\n {\n id: 'sheep-wallet',\n name: 'Sheep Wallet',\n icon: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHJ4PSI4IiBmaWxsPSIjMDExQjI5Ii8+PHRleHQgeD0iNTAlIiB5PSI1NSUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIxNiIgZmlsbD0iIzZFQjlBOCI+Uzwvc2VsZj48L3N2Zz4=',\n downloadUrl: 'https://rialo.io/wallet',\n },\n];\n\n// ============================================================================\n// Context\n// ============================================================================\n\nconst WalletContext = createContext<WalletContextState | null>(null);\n\n// ============================================================================\n// Provider Component\n// ============================================================================\n\nexport function WalletProvider({\n children,\n network: initialNetwork = 'devnet',\n autoConnect = true,\n wallets: customWallets = [],\n onConnect,\n onDisconnect,\n onError,\n onNetworkChange,\n}: WalletProviderProps) {\n const [connected, setConnected] = useState(false);\n const [connecting, setConnecting] = useState(false);\n const [accounts, setAccounts] = useState<WalletAccount[]>([]);\n const [network, setNetwork] = useState<RialoNetwork>(initialNetwork);\n const [balance, setBalance] = useState<string | null>(null);\n const [selectedWallet, setSelectedWallet] = useState<WalletInfo | null>(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [provider, setProvider] = useState<RialoProvider | undefined>();\n const [error, setError] = useState<Error | null>(null);\n\n const chainId = useMemo(() => `rialo:${network}`, [network]);\n const activeAccount = accounts[0] || null;\n const isInstalled = isRialoInstalled();\n\n // Merge wallets\n const wallets: WalletInfo[] = useMemo(() => {\n const installed = isRialoInstalled();\n return [...DEFAULT_WALLETS, ...customWallets].map((w) => ({\n ...w,\n installed: w.id === 'sheep-wallet' ? installed : false,\n }));\n }, [customWallets]);\n\n // Initialize provider\n useEffect(() => {\n const init = async () => {\n const p = await waitForRialoProvider(3000);\n setProvider(p);\n if (p) {\n setSelectedWallet(wallets.find((w) => w.id === 'sheep-wallet') || wallets[0] || null);\n }\n };\n init();\n }, [wallets]);\n\n // Fetch balance\n const refreshBalance = useCallback(async () => {\n if (!provider || !activeAccount) return;\n try {\n const result = await provider.getBalance(activeAccount.address);\n const bal = typeof result === 'string' ? result : result.balance;\n setBalance(bal);\n } catch (e) {\n console.error('Balance fetch error:', e);\n }\n }, [provider, activeAccount]);\n\n // Auto-refresh balance when connected\n useEffect(() => {\n if (connected && activeAccount && provider) {\n refreshBalance();\n const interval = setInterval(refreshBalance, 30000);\n return () => clearInterval(interval);\n }\n }, [connected, activeAccount, provider, refreshBalance]);\n\n // Auto-connect\n useEffect(() => {\n if (autoConnect && provider && !connected && !connecting) {\n provider.isConnected().then((isConn) => {\n if (isConn) {\n handleConnect();\n }\n }).catch(() => {});\n }\n }, [provider, autoConnect, connected, connecting]);\n\n // Listen for provider events\n useEffect(() => {\n if (!provider) return;\n\n const cleanupFns: Array<() => void> = [];\n\n cleanupFns.push(\n provider.on('connect', (data: unknown) => {\n console.log('[Adapter] Connect event received:', data);\n const eventData = data as { accounts?: (string | WalletAccount)[] };\n if (eventData?.accounts) {\n const normalized: WalletAccount[] = eventData.accounts.map(a => {\n if (typeof a === 'string') return { address: a, publicKey: a };\n return { address: a.address, publicKey: a.publicKey || a.address };\n });\n setAccounts(normalized);\n setConnected(true);\n }\n })\n );\n\n cleanupFns.push(\n provider.on('disconnect', () => {\n setConnected(false);\n setAccounts([]);\n setBalance(null);\n onDisconnect?.();\n })\n );\n\n cleanupFns.push(\n provider.on('accountsChanged', (data: unknown) => {\n console.log('[Adapter] Accounts changed:', data);\n // Handle both array of strings and array of WalletAccount\n const rawAccounts = data as (string | WalletAccount)[];\n const normalized: WalletAccount[] = (rawAccounts || []).map(a => {\n if (typeof a === 'string') return { address: a, publicKey: a };\n return { address: a.address, publicKey: a.publicKey || a.address };\n });\n setAccounts(normalized);\n })\n );\n\n cleanupFns.push(\n provider.on('networkChanged', (data: unknown) => {\n const { network: net } = data as { network: RialoNetwork };\n if (net) {\n setNetwork(net);\n onNetworkChange?.(net);\n }\n })\n );\n\n return () => {\n cleanupFns.forEach(fn => fn?.());\n };\n }, [provider, onDisconnect, onNetworkChange]);\n\n // Connect\n const handleConnect = useCallback(async (): Promise<WalletAccount[]> => {\n if (!provider) {\n const err = new Error('Rialo Wallet not installed');\n setError(err);\n onError?.(err);\n throw err;\n }\n\n setConnecting(true);\n setError(null);\n\n try {\n console.log('[Adapter] Calling provider.connect()...');\n const result = await provider.connect();\n console.log('[Adapter] Connect result:', result);\n \n // Normalize result - handle both string[] and WalletAccount[]\n const walletAccounts: WalletAccount[] = result.map((acc) => {\n if (typeof acc === 'string') {\n return { address: acc, publicKey: acc };\n }\n return {\n address: acc.address,\n publicKey: acc.publicKey || acc.address,\n };\n });\n\n setAccounts(walletAccounts);\n setConnected(true);\n setIsModalOpen(false);\n\n // Get network\n try {\n const net = await provider.getNetwork();\n setNetwork(net);\n } catch {}\n\n onConnect?.(walletAccounts);\n return walletAccounts;\n } catch (e) {\n const err = e as Error;\n setError(err);\n onError?.(err);\n throw err;\n } finally {\n setConnecting(false);\n }\n }, [provider, onConnect, onError]);\n\n // Disconnect\n const handleDisconnect = useCallback(async () => {\n try {\n if (provider) {\n await provider.disconnect();\n }\n } catch {}\n setConnected(false);\n setAccounts([]);\n setBalance(null);\n onDisconnect?.();\n }, [provider, onDisconnect]);\n\n // Select wallet\n const selectWallet = useCallback((walletId: string) => {\n const wallet = wallets.find((w) => w.id === walletId);\n if (wallet) {\n setSelectedWallet(wallet);\n if (wallet.installed) {\n handleConnect();\n } else if (wallet.downloadUrl) {\n window.open(wallet.downloadUrl, '_blank');\n }\n }\n }, [wallets, handleConnect]);\n\n // Switch network\n const handleSwitchNetwork = useCallback(async (newNetwork: RialoNetwork) => {\n if (provider) {\n await provider.switchNetwork(newNetwork);\n }\n setNetwork(newNetwork);\n onNetworkChange?.(newNetwork);\n }, [provider, onNetworkChange]);\n\n // Sign message\n const handleSignMessage = useCallback(async (message: string): Promise<SignedMessage> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.signMessage(message);\n }, [provider, connected]);\n\n // Sign transaction\n const handleSignTransaction = useCallback(async (tx: TransactionRequest): Promise<string> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n const result = await provider.signTransaction(tx);\n return result.signature;\n }, [provider, connected]);\n\n // Send transaction\n const handleSendTransaction = useCallback(async (tx: TransactionRequest): Promise<TransactionResult> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.sendTransaction(tx);\n }, [provider, connected]);\n\n // Sign and send transaction\n const handleSignAndSendTransaction = useCallback(async (tx: TransactionRequest): Promise<TransactionResult> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.signAndSendTransaction(tx);\n }, [provider, connected]);\n\n // Modal controls\n const openModal = useCallback(() => setIsModalOpen(true), []);\n const closeModal = useCallback(() => setIsModalOpen(false), []);\n\n const value: WalletContextState = {\n connected,\n connecting,\n accounts,\n activeAccount,\n network,\n chainId,\n balance,\n error,\n wallets,\n selectedWallet,\n isInstalled,\n connect: handleConnect,\n disconnect: handleDisconnect,\n selectWallet,\n switchNetwork: handleSwitchNetwork,\n refreshBalance,\n signMessage: handleSignMessage,\n signTransaction: handleSignTransaction,\n sendTransaction: handleSendTransaction,\n signAndSendTransaction: handleSignAndSendTransaction,\n isModalOpen,\n openModal,\n closeModal,\n };\n\n return (\n <WalletContext.Provider value={value}>\n {children}\n </WalletContext.Provider>\n );\n}\n\n// ============================================================================\n// Hooks\n// ============================================================================\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error('useWallet must be used within WalletProvider');\n }\n return context;\n}\n\nexport function useIsConnected(): boolean {\n const { connected } = useWallet();\n return connected;\n}\n\nexport function useActiveAccount(): WalletAccount | null {\n const { activeAccount } = useWallet();\n return activeAccount;\n}\n\nexport function useAccounts(): WalletAccount[] {\n const { accounts } = useWallet();\n return accounts;\n}\n\nexport function useBalance(): { balance: string | null; formatted: string; refresh: () => Promise<void> } {\n const { balance, refreshBalance } = useWallet();\n return {\n balance,\n formatted: balance ? formatBalance(balance) : '0.0000',\n refresh: refreshBalance,\n };\n}\n\nexport function useNetwork(): { network: RialoNetwork; chainId: string; config: NetworkConfig } {\n const { network, chainId } = useWallet();\n return {\n network,\n chainId,\n config: NETWORKS[network],\n };\n}\n\nexport function useChainId(): string {\n const { chainId } = useWallet();\n return chainId;\n}\n\nexport function useSwitchNetwork() {\n const { switchNetwork, network } = useWallet();\n const [switching, setSwitching] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const doSwitch = useCallback(async (newNetwork: RialoNetwork) => {\n setSwitching(true);\n setError(null);\n try {\n await switchNetwork(newNetwork);\n } catch (e) {\n setError(e as Error);\n throw e;\n } finally {\n setSwitching(false);\n }\n }, [switchNetwork]);\n\n return { switchNetwork: doSwitch, switching, error, currentNetwork: network };\n}\n\nexport function useConnectWallet() {\n const { connect, connecting, openModal, isInstalled, error } = useWallet();\n return {\n connect: isInstalled ? connect : openModal,\n connecting,\n isInstalled,\n error,\n };\n}\n\nexport function useDisconnectWallet() {\n const { disconnect, connected } = useWallet();\n return { disconnect, connected };\n}\n\nexport function useSignMessage() {\n const { signMessage, connected, activeAccount } = useWallet();\n const [signing, setSigning] = useState(false);\n const [signature, setSignature] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const sign = useCallback(async (message: string) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSigning(true);\n setError(null);\n\n try {\n const result = await signMessage(message);\n setSignature(result.signature);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSigning(false);\n }\n }, [signMessage, connected]);\n\n return { sign, signing, signature, error, address: activeAccount?.address };\n}\n\nexport function useSendTransaction() {\n const { signAndSendTransaction, connected } = useWallet();\n const [sending, setSending] = useState(false);\n const [txHash, setTxHash] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const send = useCallback(async (tx: TransactionRequest) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSending(true);\n setError(null);\n\n try {\n const result = await signAndSendTransaction(tx);\n setTxHash(result.hash);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSending(false);\n }\n }, [signAndSendTransaction, connected]);\n\n return { send, sending, txHash, error, reset: () => { setTxHash(null); setError(null); } };\n}\n\nexport function useSignTransaction() {\n const { signTransaction, connected } = useWallet();\n const [signing, setSigning] = useState(false);\n const [signature, setSignature] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const sign = useCallback(async (tx: TransactionRequest) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSigning(true);\n setError(null);\n\n try {\n const result = await signTransaction(tx);\n setSignature(result);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSigning(false);\n }\n }, [signTransaction, connected]);\n\n return { sign, signing, signature, error };\n}\n\n// ============================================================================\n// Components\n// ============================================================================\n\nexport interface ConnectButtonProps {\n connectLabel?: string;\n disconnectLabel?: string;\n showAddress?: boolean;\n showBalance?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function ConnectButton({\n connectLabel = 'Connect Wallet',\n disconnectLabel = 'Disconnect',\n showAddress = true,\n showBalance = false,\n className = '',\n style,\n}: ConnectButtonProps) {\n const { connected, connecting, activeAccount, balance, openModal, disconnect } = useWallet();\n\n const buttonStyle: React.CSSProperties = {\n padding: '10px 20px',\n borderRadius: '8px',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n fontSize: '14px',\n transition: 'all 0.2s ease',\n ...style,\n };\n\n if (connecting) {\n return (\n <button\n disabled\n className={className}\n style={{ ...buttonStyle, opacity: 0.7, cursor: 'not-allowed' }}\n >\n Connecting...\n </button>\n );\n }\n\n if (connected && activeAccount) {\n return (\n <button\n onClick={() => disconnect()}\n className={className}\n style={{\n ...buttonStyle,\n background: 'linear-gradient(135deg, #6EB9A8 0%, #4A9A8A 100%)',\n color: 'white',\n }}\n >\n {showBalance && balance && <span style={{ marginRight: 8 }}>{formatBalance(balance)} RLO</span>}\n {showAddress ? formatAddress(activeAccount.address) : disconnectLabel}\n </button>\n );\n }\n\n return (\n <button\n onClick={openModal}\n className={className}\n style={{\n ...buttonStyle,\n background: 'linear-gradient(135deg, #6EB9A8 0%, #4A9A8A 100%)',\n color: 'white',\n }}\n >\n {connectLabel}\n </button>\n );\n}\n\nexport interface WalletModalProps {\n title?: string;\n className?: string;\n}\n\nexport function WalletModal({ title = 'Connect Wallet', className = '' }: WalletModalProps) {\n const { isModalOpen, closeModal, wallets, selectWallet, connecting } = useWallet();\n\n if (!isModalOpen) return null;\n\n return (\n <div\n className={className}\n style={{\n position: 'fixed',\n inset: 0,\n zIndex: 9999,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n }}\n onClick={closeModal}\n >\n <div\n style={{\n background: 'white',\n borderRadius: '16px',\n padding: '24px',\n maxWidth: '400px',\n width: '90%',\n maxHeight: '80vh',\n overflow: 'auto',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '20px' }}>\n <h2 style={{ margin: 0, fontSize: '18px', fontWeight: 600 }}>{title}</h2>\n <button\n onClick={closeModal}\n style={{ background: 'none', border: 'none', fontSize: '24px', cursor: 'pointer', padding: 0 }}\n >\n ×\n </button>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n {wallets.map((wallet) => (\n <button\n key={wallet.id}\n onClick={() => selectWallet(wallet.id)}\n disabled={connecting}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '16px',\n borderRadius: '12px',\n border: '1px solid #e5e5e5',\n background: 'white',\n cursor: connecting ? 'not-allowed' : 'pointer',\n opacity: connecting ? 0.7 : 1,\n transition: 'all 0.2s ease',\n }}\n >\n <img src={wallet.icon} alt={wallet.name} style={{ width: 40, height: 40, borderRadius: 8 }} />\n <div style={{ textAlign: 'left', flex: 1 }}>\n <div style={{ fontWeight: 500 }}>{wallet.name}</div>\n <div style={{ fontSize: '12px', color: '#666' }}>\n {wallet.installed ? 'Detected' : 'Not installed'}\n </div>\n </div>\n {!wallet.installed && (\n <span style={{ fontSize: '12px', color: '#6EB9A8' }}>Install →</span>\n )}\n </button>\n ))}\n </div>\n\n <div style={{ marginTop: '20px', textAlign: 'center', fontSize: '12px', color: '#999' }}>\n Powered by CookilLabs\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Re-exports\n// ============================================================================\n\nexport { formatAddress, formatBalance, isValidAddress, NETWORKS, isRialoInstalled, getRialoProvider };\nexport type { RialoNetwork, WalletAccount, TransactionRequest, TransactionResult, SignedMessage, WalletInfo, NetworkConfig };\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/ErrorBoundary.tsx","../src/LoadingStates.tsx","../src/react.tsx"],"names":["Component","jsxs","jsx","createContext","useState","useMemo","useEffect","useCallback","useContext","React"],"mappings":"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","file":"react.cjs","sourcesContent":["/**\n * @cookill/wallet-adapter v2.5.0\n * Sheep Wallet adapter for Rialo blockchain dApps\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RialoChain = 'rialo:mainnet' | 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';\nexport type RialoNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';\n\nexport interface WalletAccount {\n address: string;\n publicKey?: Uint8Array | string;\n label?: string;\n}\n\nexport interface TransactionRequest {\n to: string;\n value: string;\n data?: string;\n memo?: string;\n}\n\nexport interface TransactionResult {\n hash: string;\n signature?: string;\n status: 'pending' | 'confirmed' | 'failed';\n blockNumber?: number;\n}\n\nexport interface SignedMessage {\n signature: string;\n message: string;\n address: string;\n publicKey?: string;\n}\n\nexport interface BalanceResult {\n balance: string;\n balanceKelvins: string;\n formatted: string;\n}\n\nexport interface NetworkConfig {\n chainId: string;\n name: string;\n rpcUrl: string;\n wsUrl?: string;\n explorerUrl?: string;\n symbol: string;\n decimals: number;\n}\n\nexport interface WalletInfo {\n id: string;\n name: string;\n icon: string;\n installed?: boolean;\n downloadUrl?: string;\n}\n\nexport type WalletEvent = \n | 'connect' \n | 'disconnect' \n | 'accountsChanged'\n | 'networkChanged' \n | 'chainChanged'\n | 'error';\n\n// ============================================================================\n// Network Configurations\n// ============================================================================\n\nexport const NETWORKS: Record<RialoNetwork, NetworkConfig> = {\n mainnet: {\n chainId: 'rialo:mainnet',\n name: 'Rialo Mainnet',\n rpcUrl: 'https://mainnet.rialo.io:4101',\n wsUrl: 'wss://mainnet.rialo.io:4102',\n explorerUrl: 'https://explorer.rialo.io',\n symbol: 'RLO',\n decimals: 9,\n },\n testnet: {\n chainId: 'rialo:testnet',\n name: 'Rialo Testnet',\n rpcUrl: 'https://testnet.rialo.io:4101',\n wsUrl: 'wss://testnet.rialo.io:4102',\n explorerUrl: 'https://testnet.explorer.rialo.io',\n symbol: 'tRLO',\n decimals: 9,\n },\n devnet: {\n chainId: 'rialo:devnet',\n name: 'Rialo Devnet',\n rpcUrl: 'https://devnet.rialo.io:4101',\n wsUrl: 'wss://devnet.rialo.io:4102',\n explorerUrl: 'https://devnet.explorer.rialo.io',\n symbol: 'dRLO',\n decimals: 9,\n },\n localnet: {\n chainId: 'rialo:localnet',\n name: 'Rialo Localnet',\n rpcUrl: 'http://localhost:4101',\n wsUrl: 'ws://localhost:4102',\n explorerUrl: 'http://localhost:3000',\n symbol: 'lRLO',\n decimals: 9,\n },\n};\n\n// ============================================================================\n// Provider Interface\n// ============================================================================\n\nexport interface RialoProvider {\n // Metadata\n isRialo: boolean;\n isSheepWallet?: boolean;\n name?: string;\n walletName?: string;\n version: string;\n icon?: string;\n\n // Connection\n connect(options?: { silent?: boolean }): Promise<WalletAccount[]>;\n disconnect(): Promise<void>;\n isConnected(): Promise<boolean>;\n getAccounts(): Promise<WalletAccount[]>;\n\n // Transactions\n signTransaction(tx: TransactionRequest): Promise<{ signature: string; signedTransaction?: string; rawTransaction?: string }>;\n sendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAllTransactions?(txs: TransactionRequest[]): Promise<{ signedTransactions: string[] }>;\n\n // Message signing\n signMessage(message: string | Uint8Array): Promise<SignedMessage>;\n\n // Network\n getNetwork(): Promise<RialoNetwork>;\n switchNetwork(network: RialoNetwork): Promise<{ success: boolean }>;\n getChainId(): Promise<string>;\n getBalance(address?: string): Promise<BalanceResult | string>;\n\n // Events\n on(event: WalletEvent, callback: (data: unknown) => void): () => void;\n off?(event: WalletEvent, callback: (data: unknown) => void): void;\n removeListener(event: WalletEvent, callback: (data: unknown) => void): void;\n removeAllListeners(event?: WalletEvent): void;\n\n // Utilities\n utils?: {\n isValidAddress(address: string): boolean;\n formatAddress(address: string, chars?: number): string;\n };\n\n // Wallet Standard\n features?: string[];\n supportsFeature?(feature: string): boolean;\n\n // State getters\n readonly connected?: boolean;\n readonly accounts?: WalletAccount[];\n readonly address?: string | null;\n readonly publicKey?: string | null;\n readonly network?: RialoNetwork;\n readonly chainId?: string;\n}\n\n// ============================================================================\n// Detection & Access\n// ============================================================================\n\nexport function isRialoInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n return !!(window as RialoWindow).rialo?.isRialo;\n}\n\nexport function getRialoProvider(): RialoProvider | undefined {\n if (typeof window === 'undefined') return undefined;\n const rialo = (window as RialoWindow).rialo;\n return rialo?.isRialo ? rialo : undefined;\n}\n\nexport function waitForRialoProvider(timeout = 3000): Promise<RialoProvider | undefined> {\n return new Promise((resolve) => {\n if (isRialoInstalled()) {\n resolve(getRialoProvider());\n return;\n }\n\n let resolved = false;\n const checkInterval = setInterval(() => {\n if (isRialoInstalled() && !resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n }, 100);\n\n setTimeout(() => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(undefined);\n }\n }, timeout);\n\n // Also listen for initialization event\n const handler = () => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n };\n window.addEventListener('rialo#initialized', handler, { once: true });\n });\n}\n\n// ============================================================================\n// Simple Wallet Class (Non-React)\n// ============================================================================\n\nexport class RialoWallet {\n private provider: RialoProvider | undefined;\n private _connected = false;\n private _accounts: WalletAccount[] = [];\n private _network: RialoNetwork = 'devnet';\n private _listeners: Map<string, Set<() => void>> = new Map();\n\n constructor() {\n this.provider = getRialoProvider();\n this.setupEvents();\n }\n\n private setupEvents() {\n if (!this.provider) return;\n\n this.provider.on('disconnect', () => {\n this._connected = false;\n this._accounts = [];\n });\n\n this.provider.on('accountsChanged', (data: unknown) => {\n const accounts = data as WalletAccount[];\n this._accounts = accounts;\n });\n\n this.provider.on('networkChanged', (data: unknown) => {\n const { network } = data as { network: RialoNetwork };\n this._network = network;\n });\n }\n\n get isInstalled(): boolean {\n return isRialoInstalled();\n }\n\n get connected(): boolean {\n return this._connected;\n }\n\n get accounts(): WalletAccount[] {\n return this._accounts;\n }\n\n get activeAccount(): WalletAccount | undefined {\n return this._accounts[0];\n }\n\n get network(): RialoNetwork {\n return this._network;\n }\n\n get chainId(): string {\n return `rialo:${this._network}`;\n }\n\n async connect(): Promise<WalletAccount[]> {\n this.provider = getRialoProvider();\n if (!this.provider) {\n throw new Error('Rialo Wallet not installed. Download at https://rialo.io/wallet');\n }\n\n const accounts = await this.provider.connect();\n this._accounts = accounts;\n this._connected = true;\n\n const network = await this.provider.getNetwork();\n this._network = network;\n\n return this._accounts;\n }\n\n async disconnect(): Promise<void> {\n if (this.provider) {\n await this.provider.disconnect();\n }\n this._connected = false;\n this._accounts = [];\n }\n\n async signMessage(message: string): Promise<SignedMessage> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signMessage(message);\n }\n\n async signTransaction(tx: TransactionRequest): Promise<string> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n const result = await this.provider.signTransaction(tx);\n return result.signature;\n }\n\n async sendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.sendTransaction(tx);\n }\n\n async signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signAndSendTransaction(tx);\n }\n\n async getBalance(address?: string): Promise<string> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n const result = await this.provider.getBalance(address);\n if (typeof result === 'string') return result;\n return result.balance;\n }\n\n async switchNetwork(network: RialoNetwork): Promise<void> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n await this.provider.switchNetwork(network);\n this._network = network;\n }\n\n on(event: WalletEvent, callback: (data: unknown) => void): () => void {\n if (!this.provider) {\n return () => {};\n }\n return this.provider.on(event, callback);\n }\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\n\nexport function formatAddress(address: string, chars = 4): string {\n if (!address) return '';\n if (address.length <= chars * 2 + 3) return address;\n return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;\n}\n\nexport function formatBalance(kelvins: string | bigint, decimals = 4): string {\n const value = typeof kelvins === 'string' ? BigInt(kelvins || '0') : kelvins;\n const rlo = Number(value) / 1_000_000_000;\n return rlo.toFixed(decimals);\n}\n\nexport function parseBalance(rlo: string | number): bigint {\n const value = typeof rlo === 'string' ? parseFloat(rlo) : rlo;\n return BigInt(Math.floor(value * 1_000_000_000));\n}\n\nexport function isValidAddress(address: string): boolean {\n if (!address || typeof address !== 'string') return false;\n if (address.length < 32 || address.length > 50) return false;\n return /^[1-9A-HJ-NP-Za-km-z]+$/.test(address);\n}\n\nexport function toChainId(network: RialoNetwork): RialoChain {\n return `rialo:${network}` as RialoChain;\n}\n\nexport function fromChainId(chainId: RialoChain): RialoNetwork {\n return chainId.replace('rialo:', '') as RialoNetwork;\n}\n\n// ============================================================================\n// Window Extension\n// ============================================================================\n\ninterface RialoWindow extends Window {\n rialo?: RialoProvider;\n}\n\ndeclare global {\n interface Window {\n rialo?: RialoProvider;\n Rialo?: RialoProvider;\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default RialoWallet;\n","/**\n * @cookill/wallet-adapter - Error Boundary\n * Prevents blank screens from uncaught errors\n */\n\nimport React, { Component, ErrorInfo, ReactNode } from 'react';\n\ninterface Props {\n children: ReactNode;\n fallback?: ReactNode;\n onError?: (error: Error, errorInfo: ErrorInfo) => void;\n}\n\ninterface State {\n hasError: boolean;\n error: Error | null;\n}\n\nexport class WalletErrorBoundary extends Component<Props, State> {\n public state: State = {\n hasError: false,\n error: null,\n };\n\n public static getDerivedStateFromError(error: Error): State {\n return { hasError: true, error };\n }\n\n public componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error('[WalletAdapter] Error caught by boundary:', error, errorInfo);\n this.props.onError?.(error, errorInfo);\n }\n\n private handleRetry = () => {\n this.setState({ hasError: false, error: null });\n };\n\n public render() {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback;\n }\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n border: '1px solid #fee2e2',\n backgroundColor: '#fef2f2',\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: '#fecaca',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#dc2626\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\" />\n </svg>\n </div>\n <h3 style={{ margin: '0 0 8px', fontSize: '16px', fontWeight: 600, color: '#991b1b' }}>\n Wallet Connection Error\n </h3>\n <p style={{ margin: '0 0 16px', fontSize: '14px', color: '#b91c1c' }}>\n {this.state.error?.message || 'Something went wrong'}\n </p>\n <button\n onClick={this.handleRetry}\n style={{\n padding: '8px 16px',\n borderRadius: '8px',\n border: 'none',\n backgroundColor: '#dc2626',\n color: 'white',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n Try Again\n </button>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\nexport default WalletErrorBoundary;\n","/**\n * @cookill/wallet-adapter - Loading States\n * Loading spinners and approval pending states for dApps\n */\n\nimport React from 'react';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg';\n color?: string;\n className?: string;\n}\n\nexport function LoadingSpinner({ size = 'md', color = '#6EB9A8', className = '' }: LoadingSpinnerProps) {\n const sizes = {\n sm: { container: 20, stroke: 2 },\n md: { container: 32, stroke: 3 },\n lg: { container: 48, stroke: 4 },\n };\n\n const { container, stroke } = sizes[size];\n const radius = (container - stroke) / 2;\n const circumference = radius * 2 * Math.PI;\n\n return (\n <svg\n width={container}\n height={container}\n viewBox={`0 0 ${container} ${container}`}\n className={className}\n style={{ animation: 'wallet-spin 1s linear infinite' }}\n >\n <style>\n {`\n @keyframes wallet-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}\n </style>\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeOpacity={0.2}\n />\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.75}\n />\n </svg>\n );\n}\n\ninterface ApprovalPendingProps {\n title?: string;\n message?: string;\n walletName?: string;\n onCancel?: () => void;\n}\n\nexport function ApprovalPending({\n title = 'Waiting for Approval',\n message = 'Please approve the request in your wallet',\n walletName = 'Sheep Wallet',\n onCancel,\n}: ApprovalPendingProps) {\n return (\n <div\n style={{\n padding: '32px 24px',\n textAlign: 'center',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n }}\n >\n <div\n style={{\n width: '80px',\n height: '80px',\n margin: '0 auto 20px',\n borderRadius: '50%',\n backgroundColor: '#011B29',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <LoadingSpinner size=\"lg\" />\n <div\n style={{\n position: 'absolute',\n inset: '-4px',\n borderRadius: '50%',\n border: '2px solid transparent',\n borderTopColor: '#6EB9A8',\n animation: 'wallet-spin 2s linear infinite',\n }}\n />\n </div>\n\n <h3\n style={{\n margin: '0 0 8px',\n fontSize: '18px',\n fontWeight: 600,\n color: '#0f172a',\n }}\n >\n {title}\n </h3>\n\n <p\n style={{\n margin: '0 0 8px',\n fontSize: '14px',\n color: '#64748b',\n }}\n >\n {message}\n </p>\n\n <p\n style={{\n margin: '0 0 24px',\n fontSize: '12px',\n color: '#94a3b8',\n }}\n >\n Open {walletName} extension to continue\n </p>\n\n {onCancel && (\n <button\n onClick={onCancel}\n style={{\n padding: '10px 24px',\n borderRadius: '10px',\n border: '1px solid #e2e8f0',\n backgroundColor: 'white',\n color: '#64748b',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f1f5f9';\n e.currentTarget.style.borderColor = '#cbd5e1';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'white';\n e.currentTarget.style.borderColor = '#e2e8f0';\n }}\n >\n Cancel\n </button>\n )}\n </div>\n );\n}\n\ninterface ConnectionStatusProps {\n status: 'connecting' | 'approving' | 'signing' | 'success' | 'error';\n message?: string;\n onRetry?: () => void;\n}\n\nexport function ConnectionStatus({ status, message, onRetry }: ConnectionStatusProps) {\n const statusConfig = {\n connecting: {\n title: 'Connecting',\n defaultMessage: 'Establishing connection to wallet...',\n color: '#6EB9A8',\n },\n approving: {\n title: 'Approval Required',\n defaultMessage: 'Please approve the connection in Sheep Wallet',\n color: '#f59e0b',\n },\n signing: {\n title: 'Signature Required',\n defaultMessage: 'Please sign the transaction in your wallet',\n color: '#6EB9A8',\n },\n success: {\n title: 'Connected',\n defaultMessage: 'Successfully connected to wallet',\n color: '#22c55e',\n },\n error: {\n title: 'Connection Failed',\n defaultMessage: 'Unable to connect. Please try again.',\n color: '#ef4444',\n },\n };\n\n const config = statusConfig[status];\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n backgroundColor: `${config.color}10`,\n border: `1px solid ${config.color}30`,\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: `${config.color}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {status === 'success' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n ) : status === 'error' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <LoadingSpinner size=\"sm\" color={config.color} />\n )}\n </div>\n\n <h4 style={{ margin: '0 0 4px', fontSize: '14px', fontWeight: 600, color: config.color }}>\n {config.title}\n </h4>\n\n <p style={{ margin: 0, fontSize: '12px', color: '#64748b' }}>\n {message || config.defaultMessage}\n </p>\n\n {status === 'error' && onRetry && (\n <button\n onClick={onRetry}\n style={{\n marginTop: '12px',\n padding: '6px 16px',\n borderRadius: '6px',\n border: 'none',\n backgroundColor: config.color,\n color: 'white',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n Retry\n </button>\n )}\n </div>\n );\n}\n\nexport default { LoadingSpinner, ApprovalPending, ConnectionStatus };\n","/**\n * @cookill/wallet-adapter/react v2.5.0\n * React hooks and components for Sheep Wallet / Rialo blockchain integration\n * \n * IMPORTANT FIX (v2.5.0):\n * - Fixed connect flow - always resolves/rejects properly\n * - Improved error handling and messages\n * - Updated branding to Sheep Wallet\n */\n\nimport React, {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n ReactNode,\n useMemo,\n Component,\n ErrorInfo,\n} from 'react';\nimport {\n RialoProvider,\n RialoNetwork,\n WalletAccount,\n TransactionRequest,\n TransactionResult,\n SignedMessage,\n WalletInfo,\n NetworkConfig,\n isRialoInstalled,\n getRialoProvider,\n waitForRialoProvider,\n formatAddress,\n formatBalance,\n isValidAddress,\n NETWORKS,\n} from './index';\n\n// Import loading states\nimport { WalletErrorBoundary } from './ErrorBoundary';\nexport { WalletErrorBoundary } from './ErrorBoundary';\nexport { LoadingSpinner, ApprovalPending, ConnectionStatus } from './LoadingStates';\n\n// ============================================================================\n// Context Types\n// ============================================================================\n\nexport interface WalletContextState {\n // State\n connected: boolean;\n connecting: boolean;\n accounts: WalletAccount[];\n activeAccount: WalletAccount | null;\n network: RialoNetwork;\n chainId: string;\n balance: string | null;\n error: Error | null;\n\n // Wallet info\n wallets: WalletInfo[];\n selectedWallet: WalletInfo | null;\n isInstalled: boolean;\n\n // Actions\n connect: () => Promise<WalletAccount[]>;\n disconnect: () => Promise<void>;\n selectWallet: (walletId: string) => void;\n switchNetwork: (network: RialoNetwork) => Promise<void>;\n refreshBalance: () => Promise<void>;\n\n // Transactions\n signMessage: (message: string) => Promise<SignedMessage>;\n signTransaction: (tx: TransactionRequest) => Promise<string>;\n sendTransaction: (tx: TransactionRequest) => Promise<TransactionResult>;\n signAndSendTransaction: (tx: TransactionRequest) => Promise<TransactionResult>;\n\n // Modal\n isModalOpen: boolean;\n openModal: () => void;\n closeModal: () => void;\n}\n\n// ============================================================================\n// Provider Props\n// ============================================================================\n\nexport interface WalletProviderProps {\n children: ReactNode;\n network?: RialoNetwork;\n autoConnect?: boolean;\n wallets?: WalletInfo[];\n theme?: 'light' | 'dark' | 'auto';\n onConnect?: (accounts: WalletAccount[]) => void;\n onDisconnect?: () => void;\n onError?: (error: Error) => void;\n onNetworkChange?: (network: RialoNetwork) => void;\n}\n\n// ============================================================================\n// Default Wallets\n// ============================================================================\n\n// Sheep Wallet SVG icon as data URI\nconst SHEEP_WALLET_ICON = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHJ4PSI4IiBmaWxsPSIjMUExQTFBIi8+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNCIgcj0iOCIgZmlsbD0iI0ZGRjhGMCIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjQiIGZpbGw9IiNGRkY4RjAiLz48Y2lyY2xlIGN4PSIyMCIgY3k9IjEwIiByPSI0IiBmaWxsPSIjRkZGOEYwIi8+PGNpcmNsZSBjeD0iMTMiIGN5PSIxMyIgcj0iMS41IiBmaWxsPSIjMzMzIi8+PGNpcmNsZSBjeD0iMTkiIGN5PSIxMyIgcj0iMS41IiBmaWxsPSIjMzMzIi8+PGVsbGlwc2UgY3g9IjE2IiBjeT0iMTciIHJ4PSIyIiByeT0iMS41IiBmaWxsPSIjRkZDMENCIi8+PHBhdGggZD0iTTE0IDI0QzE0IDIyLjkgMTQuOSAyMiAxNiAyMkMxNy4xIDIyIDE4IDIyLjkgMTggMjRWMjZIMTRWMjRaIiBmaWxsPSIjNkVCOUE4Ii8+PC9zdmc+';\n\nconst DEFAULT_WALLETS: WalletInfo[] = [\n {\n id: 'sheep-wallet',\n name: 'Sheep Wallet',\n icon: SHEEP_WALLET_ICON,\n downloadUrl: 'https://rialo.io/wallet',\n },\n];\n\n// ============================================================================\n// Context\n// ============================================================================\n\nconst WalletContext = createContext<WalletContextState | null>(null);\n\n// ============================================================================\n// Provider Component\n// ============================================================================\n\nexport function WalletProvider({\n children,\n network: initialNetwork = 'devnet',\n autoConnect = true,\n wallets: customWallets = [],\n onConnect,\n onDisconnect,\n onError,\n onNetworkChange,\n}: WalletProviderProps) {\n const [connected, setConnected] = useState(false);\n const [connecting, setConnecting] = useState(false);\n const [accounts, setAccounts] = useState<WalletAccount[]>([]);\n const [network, setNetwork] = useState<RialoNetwork>(initialNetwork);\n const [balance, setBalance] = useState<string | null>(null);\n const [selectedWallet, setSelectedWallet] = useState<WalletInfo | null>(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [provider, setProvider] = useState<RialoProvider | undefined>();\n const [error, setError] = useState<Error | null>(null);\n\n const chainId = useMemo(() => `rialo:${network}`, [network]);\n const activeAccount = accounts[0] || null;\n const isInstalled = isRialoInstalled();\n\n // Merge wallets\n const wallets: WalletInfo[] = useMemo(() => {\n const installed = isRialoInstalled();\n return [...DEFAULT_WALLETS, ...customWallets].map((w) => ({\n ...w,\n installed: w.id === 'sheep-wallet' ? installed : false,\n }));\n }, [customWallets]);\n\n // Initialize provider\n useEffect(() => {\n const init = async () => {\n const p = await waitForRialoProvider(3000);\n setProvider(p);\n if (p) {\n setSelectedWallet(wallets.find((w) => w.id === 'sheep-wallet') || wallets[0] || null);\n }\n };\n init();\n }, [wallets]);\n\n // Fetch balance\n const refreshBalance = useCallback(async () => {\n if (!provider || !activeAccount) return;\n try {\n const result = await provider.getBalance(activeAccount.address);\n const bal = typeof result === 'string' ? result : result.balance;\n setBalance(bal);\n } catch (e) {\n console.error('Balance fetch error:', e);\n }\n }, [provider, activeAccount]);\n\n // Auto-refresh balance when connected\n useEffect(() => {\n if (connected && activeAccount && provider) {\n refreshBalance();\n const interval = setInterval(refreshBalance, 30000);\n return () => clearInterval(interval);\n }\n }, [connected, activeAccount, provider, refreshBalance]);\n\n // Auto-connect\n useEffect(() => {\n if (autoConnect && provider && !connected && !connecting) {\n provider.isConnected().then((isConn) => {\n if (isConn) {\n handleConnect();\n }\n }).catch(() => {});\n }\n }, [provider, autoConnect, connected, connecting]);\n\n // Listen for provider events\n useEffect(() => {\n if (!provider) return;\n\n const cleanupFns: Array<() => void> = [];\n\n cleanupFns.push(\n provider.on('connect', (data: unknown) => {\n console.log('[Adapter] Connect event received:', data);\n const eventData = data as { accounts?: (string | WalletAccount)[] };\n if (eventData?.accounts) {\n const normalized: WalletAccount[] = eventData.accounts.map(a => {\n if (typeof a === 'string') return { address: a, publicKey: a };\n return { address: a.address, publicKey: a.publicKey || a.address };\n });\n setAccounts(normalized);\n setConnected(true);\n }\n })\n );\n\n cleanupFns.push(\n provider.on('disconnect', () => {\n setConnected(false);\n setAccounts([]);\n setBalance(null);\n onDisconnect?.();\n })\n );\n\n cleanupFns.push(\n provider.on('accountsChanged', (data: unknown) => {\n console.log('[Adapter] Accounts changed:', data);\n // Handle both array of strings and array of WalletAccount\n const rawAccounts = data as (string | WalletAccount)[];\n const normalized: WalletAccount[] = (rawAccounts || []).map(a => {\n if (typeof a === 'string') return { address: a, publicKey: a };\n return { address: a.address, publicKey: a.publicKey || a.address };\n });\n setAccounts(normalized);\n })\n );\n\n cleanupFns.push(\n provider.on('networkChanged', (data: unknown) => {\n const { network: net } = data as { network: RialoNetwork };\n if (net) {\n setNetwork(net);\n onNetworkChange?.(net);\n }\n })\n );\n\n return () => {\n cleanupFns.forEach(fn => fn?.());\n };\n }, [provider, onDisconnect, onNetworkChange]);\n\n // Connect\n const handleConnect = useCallback(async (): Promise<WalletAccount[]> => {\n if (!provider) {\n const err = new Error('Rialo Wallet not installed');\n setError(err);\n onError?.(err);\n throw err;\n }\n\n setConnecting(true);\n setError(null);\n\n try {\n console.log('[Adapter] Calling provider.connect()...');\n const result = await provider.connect();\n console.log('[Adapter] Connect result:', result);\n \n // Normalize result - handle both string[] and WalletAccount[]\n const walletAccounts: WalletAccount[] = result.map((acc) => {\n if (typeof acc === 'string') {\n return { address: acc, publicKey: acc };\n }\n return {\n address: acc.address,\n publicKey: acc.publicKey || acc.address,\n };\n });\n\n setAccounts(walletAccounts);\n setConnected(true);\n setIsModalOpen(false);\n\n // Get network\n try {\n const net = await provider.getNetwork();\n setNetwork(net);\n } catch {}\n\n onConnect?.(walletAccounts);\n return walletAccounts;\n } catch (e) {\n const err = e as Error;\n setError(err);\n onError?.(err);\n throw err;\n } finally {\n setConnecting(false);\n }\n }, [provider, onConnect, onError]);\n\n // Disconnect\n const handleDisconnect = useCallback(async () => {\n try {\n if (provider) {\n await provider.disconnect();\n }\n } catch {}\n setConnected(false);\n setAccounts([]);\n setBalance(null);\n onDisconnect?.();\n }, [provider, onDisconnect]);\n\n // Select wallet\n const selectWallet = useCallback((walletId: string) => {\n const wallet = wallets.find((w) => w.id === walletId);\n if (wallet) {\n setSelectedWallet(wallet);\n if (wallet.installed) {\n handleConnect();\n } else if (wallet.downloadUrl) {\n window.open(wallet.downloadUrl, '_blank');\n }\n }\n }, [wallets, handleConnect]);\n\n // Switch network\n const handleSwitchNetwork = useCallback(async (newNetwork: RialoNetwork) => {\n if (provider) {\n await provider.switchNetwork(newNetwork);\n }\n setNetwork(newNetwork);\n onNetworkChange?.(newNetwork);\n }, [provider, onNetworkChange]);\n\n // Sign message\n const handleSignMessage = useCallback(async (message: string): Promise<SignedMessage> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.signMessage(message);\n }, [provider, connected]);\n\n // Sign transaction\n const handleSignTransaction = useCallback(async (tx: TransactionRequest): Promise<string> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n const result = await provider.signTransaction(tx);\n return result.signature;\n }, [provider, connected]);\n\n // Send transaction\n const handleSendTransaction = useCallback(async (tx: TransactionRequest): Promise<TransactionResult> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.sendTransaction(tx);\n }, [provider, connected]);\n\n // Sign and send transaction\n const handleSignAndSendTransaction = useCallback(async (tx: TransactionRequest): Promise<TransactionResult> => {\n if (!provider || !connected) {\n throw new Error('Wallet not connected');\n }\n return provider.signAndSendTransaction(tx);\n }, [provider, connected]);\n\n // Modal controls\n const openModal = useCallback(() => setIsModalOpen(true), []);\n const closeModal = useCallback(() => setIsModalOpen(false), []);\n\n const value: WalletContextState = {\n connected,\n connecting,\n accounts,\n activeAccount,\n network,\n chainId,\n balance,\n error,\n wallets,\n selectedWallet,\n isInstalled,\n connect: handleConnect,\n disconnect: handleDisconnect,\n selectWallet,\n switchNetwork: handleSwitchNetwork,\n refreshBalance,\n signMessage: handleSignMessage,\n signTransaction: handleSignTransaction,\n sendTransaction: handleSendTransaction,\n signAndSendTransaction: handleSignAndSendTransaction,\n isModalOpen,\n openModal,\n closeModal,\n };\n\n return (\n <WalletContext.Provider value={value}>\n {children}\n {/* Default modal renderer (safe even if dApp also renders <WalletModal /> thanks to singleton guard) */}\n <WalletModal />\n </WalletContext.Provider>\n );\n}\n\n// ============================================================================\n// Hooks\n// ============================================================================\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error('useWallet must be used within WalletProvider');\n }\n return context;\n}\n\nexport function useIsConnected(): boolean {\n const { connected } = useWallet();\n return connected;\n}\n\nexport function useActiveAccount(): WalletAccount | null {\n const { activeAccount } = useWallet();\n return activeAccount;\n}\n\nexport function useAccounts(): WalletAccount[] {\n const { accounts } = useWallet();\n return accounts;\n}\n\nexport function useBalance(): { balance: string | null; formatted: string; refresh: () => Promise<void> } {\n const { balance, refreshBalance } = useWallet();\n return {\n balance,\n formatted: balance ? formatBalance(balance) : '0.0000',\n refresh: refreshBalance,\n };\n}\n\nexport function useNetwork(): { network: RialoNetwork; chainId: string; config: NetworkConfig } {\n const { network, chainId } = useWallet();\n return {\n network,\n chainId,\n config: NETWORKS[network],\n };\n}\n\nexport function useChainId(): string {\n const { chainId } = useWallet();\n return chainId;\n}\n\nexport function useSwitchNetwork() {\n const { switchNetwork, network } = useWallet();\n const [switching, setSwitching] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const doSwitch = useCallback(async (newNetwork: RialoNetwork) => {\n setSwitching(true);\n setError(null);\n try {\n await switchNetwork(newNetwork);\n } catch (e) {\n setError(e as Error);\n throw e;\n } finally {\n setSwitching(false);\n }\n }, [switchNetwork]);\n\n return { switchNetwork: doSwitch, switching, error, currentNetwork: network };\n}\n\nexport function useConnectWallet() {\n const { connect, connecting, openModal, isInstalled, error } = useWallet();\n \n // IMPORTANT: Always open modal first to let user choose/confirm\n // Direct connect should only be called from modal after user selects wallet\n const handleConnect = useCallback(() => {\n openModal();\n }, [openModal]);\n \n return {\n connect: handleConnect,\n connectDirect: connect,\n connecting,\n isInstalled,\n error,\n openModal,\n };\n}\n\nexport function useDisconnectWallet() {\n const { disconnect, connected } = useWallet();\n return { disconnect, connected };\n}\n\nexport function useSignMessage() {\n const { signMessage, connected, activeAccount } = useWallet();\n const [signing, setSigning] = useState(false);\n const [signature, setSignature] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const sign = useCallback(async (message: string) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSigning(true);\n setError(null);\n\n try {\n const result = await signMessage(message);\n setSignature(result.signature);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSigning(false);\n }\n }, [signMessage, connected]);\n\n return { sign, signing, signature, error, address: activeAccount?.address };\n}\n\nexport function useSendTransaction() {\n const { signAndSendTransaction, connected } = useWallet();\n const [sending, setSending] = useState(false);\n const [txHash, setTxHash] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const send = useCallback(async (tx: TransactionRequest) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSending(true);\n setError(null);\n\n try {\n const result = await signAndSendTransaction(tx);\n setTxHash(result.hash);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSending(false);\n }\n }, [signAndSendTransaction, connected]);\n\n return { send, sending, txHash, error, reset: () => { setTxHash(null); setError(null); } };\n}\n\nexport function useSignTransaction() {\n const { signTransaction, connected } = useWallet();\n const [signing, setSigning] = useState(false);\n const [signature, setSignature] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const sign = useCallback(async (tx: TransactionRequest) => {\n if (!connected) {\n setError(new Error('Wallet not connected'));\n return null;\n }\n\n setSigning(true);\n setError(null);\n\n try {\n const result = await signTransaction(tx);\n setSignature(result);\n return result;\n } catch (err) {\n setError(err as Error);\n return null;\n } finally {\n setSigning(false);\n }\n }, [signTransaction, connected]);\n\n return { sign, signing, signature, error };\n}\n\n// ============================================================================\n// Components\n// ============================================================================\n\nexport interface ConnectButtonProps {\n connectLabel?: string;\n disconnectLabel?: string;\n showAddress?: boolean;\n showBalance?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function ConnectButton({\n connectLabel = 'Connect Wallet',\n disconnectLabel = 'Disconnect',\n showAddress = true,\n showBalance = false,\n className = '',\n style,\n}: ConnectButtonProps) {\n const { connected, connecting, activeAccount, balance, openModal, disconnect } = useWallet();\n\n const buttonStyle: React.CSSProperties = {\n padding: '10px 20px',\n borderRadius: '8px',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n fontSize: '14px',\n transition: 'all 0.2s ease',\n ...style,\n };\n\n if (connecting) {\n return (\n <button\n disabled\n className={className}\n style={{ ...buttonStyle, opacity: 0.7, cursor: 'not-allowed' }}\n >\n Connecting...\n </button>\n );\n }\n\n if (connected && activeAccount) {\n return (\n <button\n onClick={() => disconnect()}\n className={className}\n style={{\n ...buttonStyle,\n background: 'linear-gradient(135deg, #6EB9A8 0%, #4A9A8A 100%)',\n color: 'white',\n }}\n >\n {showBalance && balance && <span style={{ marginRight: 8 }}>{formatBalance(balance)} RLO</span>}\n {showAddress ? formatAddress(activeAccount.address) : disconnectLabel}\n </button>\n );\n }\n\n return (\n <button\n onClick={openModal}\n className={className}\n style={{\n ...buttonStyle,\n background: 'linear-gradient(135deg, #6EB9A8 0%, #4A9A8A 100%)',\n color: 'white',\n }}\n >\n {connectLabel}\n </button>\n );\n}\n\nexport interface WalletModalProps {\n title?: string;\n className?: string;\n}\n\n// Prevent duplicate modals when the dApp renders <WalletModal /> manually\n// while the provider also renders a default modal.\nlet walletModalOwnerToken: object | null = null;\n\nexport function WalletModal({ title = 'Connect Wallet', className = '' }: WalletModalProps) {\n // Singleton ownership: only the first mounted WalletModal renders.\n // This avoids double overlays in apps that also include <WalletModal />.\n const ownerRef = React.useRef<object>({});\n const [isOwner] = useState(() => {\n if (!walletModalOwnerToken) {\n walletModalOwnerToken = ownerRef.current;\n return true;\n }\n return walletModalOwnerToken === ownerRef.current;\n });\n\n useEffect(() => {\n return () => {\n if (isOwner && walletModalOwnerToken === ownerRef.current) {\n walletModalOwnerToken = null;\n }\n };\n }, [isOwner]);\n\n if (!isOwner) return null;\n\n const { isModalOpen, closeModal, wallets, selectWallet, connecting } = useWallet();\n\n if (!isModalOpen) return null;\n\n return (\n <div\n className={className}\n style={{\n position: 'fixed',\n inset: 0,\n zIndex: 9999,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n }}\n onClick={closeModal}\n >\n <div\n style={{\n background: 'white',\n borderRadius: '16px',\n padding: '24px',\n maxWidth: '400px',\n width: '90%',\n maxHeight: '80vh',\n overflow: 'auto',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '20px' }}>\n <h2 style={{ margin: 0, fontSize: '18px', fontWeight: 600 }}>{title}</h2>\n <button\n onClick={closeModal}\n style={{ background: 'none', border: 'none', fontSize: '24px', cursor: 'pointer', padding: 0 }}\n >\n ×\n </button>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n {wallets.map((wallet) => (\n <button\n key={wallet.id}\n onClick={() => selectWallet(wallet.id)}\n disabled={connecting}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '16px',\n borderRadius: '12px',\n border: '1px solid #e5e5e5',\n background: 'white',\n cursor: connecting ? 'not-allowed' : 'pointer',\n opacity: connecting ? 0.7 : 1,\n transition: 'all 0.2s ease',\n }}\n >\n <img src={wallet.icon} alt={wallet.name} style={{ width: 40, height: 40, borderRadius: 8 }} />\n <div style={{ textAlign: 'left', flex: 1 }}>\n <div style={{ fontWeight: 500 }}>{wallet.name}</div>\n <div style={{ fontSize: '12px', color: '#666' }}>\n {wallet.installed ? 'Detected' : 'Not installed'}\n </div>\n </div>\n {!wallet.installed && (\n <span style={{ fontSize: '12px', color: '#6EB9A8' }}>Install →</span>\n )}\n </button>\n ))}\n </div>\n\n <div style={{ marginTop: '20px', textAlign: 'center', fontSize: '12px', color: '#999' }}>\n Powered by CookilLabs\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Re-exports\n// ============================================================================\n\nexport { formatAddress, formatBalance, isValidAddress, NETWORKS, isRialoInstalled, getRialoProvider };\nexport type { RialoNetwork, WalletAccount, TransactionRequest, TransactionResult, SignedMessage, WalletInfo, NetworkConfig };\n\n// Error Boundary wrapper helper\nexport function withWalletErrorBoundary<P extends object>(\n WrappedComponent: React.ComponentType<P>,\n fallback?: React.ReactNode\n): React.FC<P> {\n return function WithErrorBoundary(props: P) {\n return (\n <WalletErrorBoundary fallback={fallback}>\n <WrappedComponent {...props} />\n </WalletErrorBoundary>\n );\n };\n}\n\n// ============================================================================\n// Safe Provider with Error Boundary\n// ============================================================================\n\nexport function SafeWalletProvider(props: WalletProviderProps & { errorFallback?: ReactNode }) {\n const { errorFallback, ...providerProps } = props;\n return (\n <WalletErrorBoundary fallback={errorFallback}>\n <WalletProvider {...providerProps} />\n </WalletErrorBoundary>\n );\n}\n"]}
package/dist/react.d.cts CHANGED
@@ -1,7 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React, { ReactNode } from 'react';
3
- import { WalletAccount, RialoNetwork, WalletInfo, SignedMessage, TransactionRequest, TransactionResult, NetworkConfig } from './index.cjs';
3
+ import { RialoNetwork, WalletInfo, WalletAccount, SignedMessage, TransactionRequest, TransactionResult, NetworkConfig } from './index.cjs';
4
4
  export { NETWORKS, formatAddress, formatBalance, getRialoProvider, isRialoInstalled, isValidAddress } from './index.cjs';
5
+ export { WalletErrorBoundary } from './ErrorBoundary.cjs';
6
+ export { ApprovalPending, ConnectionStatus, LoadingSpinner } from './LoadingStates.cjs';
5
7
 
6
8
  interface WalletContextState {
7
9
  connected: boolean;
@@ -63,9 +65,11 @@ declare function useSwitchNetwork(): {
63
65
  };
64
66
  declare function useConnectWallet(): {
65
67
  connect: () => void;
68
+ connectDirect: () => Promise<WalletAccount[]>;
66
69
  connecting: boolean;
67
70
  isInstalled: boolean;
68
71
  error: Error | null;
72
+ openModal: () => void;
69
73
  };
70
74
  declare function useDisconnectWallet(): {
71
75
  disconnect: () => Promise<void>;
@@ -106,4 +110,9 @@ interface WalletModalProps {
106
110
  }
107
111
  declare function WalletModal({ title, className }: WalletModalProps): react_jsx_runtime.JSX.Element | null;
108
112
 
109
- export { ConnectButton, type ConnectButtonProps, NetworkConfig, RialoNetwork, SignedMessage, TransactionRequest, TransactionResult, WalletAccount, type WalletContextState, WalletInfo, WalletModal, type WalletModalProps, WalletProvider, type WalletProviderProps, useAccounts, useActiveAccount, useBalance, useChainId, useConnectWallet, useDisconnectWallet, useIsConnected, useNetwork, useSendTransaction, useSignMessage, useSignTransaction, useSwitchNetwork, useWallet };
113
+ declare function withWalletErrorBoundary<P extends object>(WrappedComponent: React.ComponentType<P>, fallback?: React.ReactNode): React.FC<P>;
114
+ declare function SafeWalletProvider(props: WalletProviderProps & {
115
+ errorFallback?: ReactNode;
116
+ }): react_jsx_runtime.JSX.Element;
117
+
118
+ export { ConnectButton, type ConnectButtonProps, NetworkConfig, RialoNetwork, SafeWalletProvider, SignedMessage, TransactionRequest, TransactionResult, WalletAccount, type WalletContextState, WalletInfo, WalletModal, type WalletModalProps, WalletProvider, type WalletProviderProps, useAccounts, useActiveAccount, useBalance, useChainId, useConnectWallet, useDisconnectWallet, useIsConnected, useNetwork, useSendTransaction, useSignMessage, useSignTransaction, useSwitchNetwork, useWallet, withWalletErrorBoundary };
package/dist/react.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React, { ReactNode } from 'react';
3
- import { WalletAccount, RialoNetwork, WalletInfo, SignedMessage, TransactionRequest, TransactionResult, NetworkConfig } from './index.js';
3
+ import { RialoNetwork, WalletInfo, WalletAccount, SignedMessage, TransactionRequest, TransactionResult, NetworkConfig } from './index.js';
4
4
  export { NETWORKS, formatAddress, formatBalance, getRialoProvider, isRialoInstalled, isValidAddress } from './index.js';
5
+ export { WalletErrorBoundary } from './ErrorBoundary.js';
6
+ export { ApprovalPending, ConnectionStatus, LoadingSpinner } from './LoadingStates.js';
5
7
 
6
8
  interface WalletContextState {
7
9
  connected: boolean;
@@ -63,9 +65,11 @@ declare function useSwitchNetwork(): {
63
65
  };
64
66
  declare function useConnectWallet(): {
65
67
  connect: () => void;
68
+ connectDirect: () => Promise<WalletAccount[]>;
66
69
  connecting: boolean;
67
70
  isInstalled: boolean;
68
71
  error: Error | null;
72
+ openModal: () => void;
69
73
  };
70
74
  declare function useDisconnectWallet(): {
71
75
  disconnect: () => Promise<void>;
@@ -106,4 +110,9 @@ interface WalletModalProps {
106
110
  }
107
111
  declare function WalletModal({ title, className }: WalletModalProps): react_jsx_runtime.JSX.Element | null;
108
112
 
109
- export { ConnectButton, type ConnectButtonProps, NetworkConfig, RialoNetwork, SignedMessage, TransactionRequest, TransactionResult, WalletAccount, type WalletContextState, WalletInfo, WalletModal, type WalletModalProps, WalletProvider, type WalletProviderProps, useAccounts, useActiveAccount, useBalance, useChainId, useConnectWallet, useDisconnectWallet, useIsConnected, useNetwork, useSendTransaction, useSignMessage, useSignTransaction, useSwitchNetwork, useWallet };
113
+ declare function withWalletErrorBoundary<P extends object>(WrappedComponent: React.ComponentType<P>, fallback?: React.ReactNode): React.FC<P>;
114
+ declare function SafeWalletProvider(props: WalletProviderProps & {
115
+ errorFallback?: ReactNode;
116
+ }): react_jsx_runtime.JSX.Element;
117
+
118
+ export { ConnectButton, type ConnectButtonProps, NetworkConfig, RialoNetwork, SafeWalletProvider, SignedMessage, TransactionRequest, TransactionResult, WalletAccount, type WalletContextState, WalletInfo, WalletModal, type WalletModalProps, WalletProvider, type WalletProviderProps, useAccounts, useActiveAccount, useBalance, useChainId, useConnectWallet, useDisconnectWallet, useIsConnected, useNetwork, useSendTransaction, useSignMessage, useSignTransaction, useSwitchNetwork, useWallet, withWalletErrorBoundary };