mirror of
https://github.com/luxfi/dao.git
synced 2026-10-30 16:59:00 +00:00
typescript 7.0.2 is the native compiler and exports no JavaScript API, so tsup's dts build, typedoc and typescript-eslint cannot read it — packages/ui and packages/wallet both pinned it bare and both build with tsup. It comes in aliased as tsgo and does the typechecking; typescript drops to the 6 line so the tools get their API back. wallet also gains an ambient declare module '*.css', which TS7 wants for the rainbowkit and solana stylesheet imports: 0 diagnostics under both compilers, from 2. ui reports the same 36 under both, all its uninstalled @chakra-ui peer and one duplicate export. wallet's package-lock.json is left alone. It already records typescript 5.9.3 against a 7.0.2 pin, and it cannot be regenerated: rainbowkit 2.2.11 peers wagmi ^2.9.0 while the package asks for ^3.7.7, so every install rewrites the tree rather than resolving it. Co-authored-by: Hanzo Dev <[email protected]>
@luxfi/wallet
Lux Omnichain Wallet SDK - RainbowKit + Solana wallet adapters unified.
Installation
pnpm add @luxfi/wallet
Usage
Basic EVM Setup
import { LuxWalletProvider, ConnectButton } from '@luxfi/wallet'
import '@luxfi/wallet/styles.css'
import { mainnet, polygon, optimism } from 'wagmi/chains'
function App() {
return (
<LuxWalletProvider
appName="My App"
chains={[mainnet, polygon, optimism]}
>
<ConnectButton />
</LuxWalletProvider>
)
}
With Solana Support
import { LuxWalletProvider, OmniConnectButton } from '@luxfi/wallet'
import '@luxfi/wallet/styles.css'
function App() {
return (
<LuxWalletProvider
appName="My App"
chains={[mainnet]}
enableSolana
solanaNetwork="mainnet-beta"
>
<OmniConnectButton showSolana />
</LuxWalletProvider>
)
}
Using Hooks
import { useAccount, useOmniWallet } from '@luxfi/wallet'
function WalletStatus() {
// EVM only
const { address, chainId } = useAccount()
// Both EVM and Solana
const {
evmAddress,
solanaAddress,
connectedWallets,
disconnectAll
} = useOmniWallet()
return <div>Connected: {connectedWallets.length} wallets</div>
}
Features
- RainbowKit v2 - Beautiful wallet connection UI
- Solana Wallet Adapters - Phantom, Solflare, Coinbase, Glow, WalletConnect
- Unified Hooks -
useOmniWalletfor cross-chain wallet state - Dark/Light Theme - Customizable theming
- Lux Defaults - Pre-configured for Lux Network
Supported Wallets
EVM
- MetaMask
- Rainbow
- Coinbase Wallet
- WalletConnect
- Trust Wallet
- Ledger
- Phantom (EVM)
- OKX Wallet
Solana
- Phantom
- Solflare
- Coinbase Wallet
- Glow
- WalletConnect
Configuration
interface LuxWalletConfig {
appName: string
appDescription?: string
appUrl?: string
appIcon?: string
projectId?: string // WalletConnect project ID (uses Lux shared by default)
chains: Chain[]
enableSolana?: boolean
solanaNetwork?: 'mainnet-beta' | 'devnet' | 'testnet'
}
License
MIT