安裝
安裝
開始並運行RainbowKit
您可以使用以下命令之一,使用您選擇的包管理器來搭建一個新的RainbowKit + wagmi + Next.js應用程式:
npm init @rainbow-me/rainbowkit@latest
pnpm create @rainbow-me/rainbowkit@latest
yarn create @rainbow-me/rainbowkit
這將提示您輸入專案名稱,生成一個包含樣板專案的新目錄,並安裝所有必需的依賴項。
或者,您也可以手動將RainbowKit整合到現有項目中。
安裝RainbowKit及其同伴依賴項,wagmi、viem和@tanstack/react-query。
注意:RainbowKit是一個React庫。
導入RainbowKit、Wagmi和TanStack Query。
import '@rainbow-me/rainbowkit/styles.css';
import {
getDefaultConfig,
RainbowKitProvider,
} from '@rainbow-me/rainbowkit';
import { WagmiProvider } from 'wagmi';
import {
mainnet,
polygon,
optimism,
arbitrum,
base,
} from 'wagmi/chains';
import {
QueryClientProvider,
QueryClient,
} from "@tanstack/react-query";
配置您所需的區塊鏈並生成所需的連接器。 您還需要設置wagmi
配置。 如果您的dApp使用服務端渲染(SSR),請確保將ssr
設置為true
。
注意:現在所有依賴WalletConnect的dApp都需要從WalletConnect Cloud獲取一個projectId
。 這是完全免費的,只需幾分鐘。 這是完全免費的,只需幾分鐘。
...
import { getDefaultConfig } from '@rainbow-me/rainbowkit';
const config = getDefaultConfig({
appName: 'My RainbowKit App',
projectId: 'YOUR_PROJECT_ID',
chains: [mainnet, polygon, optimism, arbitrum, base],
ssr: true,
});
將您的應用程式包裝在RainbowKitProvider
、WagmiProvider
和QueryClientProvider
中。
const queryClient = new QueryClient();
const App = () => {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider>
{}
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
);
};
然後,在您的應用程式中,導入並渲染ConnectButton
組件。
import { ConnectButton } from '@rainbow-me/rainbowkit';
export const YourApp = () => {
return <ConnectButton />;
};
RainbowKit現在將處理用戶的錢包選擇、顯示錢包/交易信息並處理網絡/錢包切換。
一些構建工具需要額外的設置。
使用Remix時,您必須填充buffer
、events
和http
模塊。 參考下面的Remix配置,或者我們的Remix範例項目。 參考下面的Remix配置,或者我們的Remix範例項目。
export default {
ignoredRouteFiles: ["**/.*"],
browserNodeBuiltinsPolyfill: {
modules: { buffer: true, events: true, http: true },
},
};
默認情況下,您的dApp使用公共RPC提供商來檢索每個區塊鏈的餘額、解析ENS名稱等。 這通常會導致用戶的可靠性問題,因為公共節點受到速率限制。 您應該通過服務購買RPC提供商的訪問權限,如Alchemy或QuickNode,並在Wagmi中定義您自己的Transports。 這可以通過在getDefaultConfig
中添加transports
參數或直接通過Wagmi的createConfig
來實現。
Transport是處理將JSON-RPC請求發送到以太坊節點提供商(如Alchemy,Infura等)的網絡中間層。
使用http
傳輸的示例
import { getDefaultConfig } from '@rainbow-me/rainbowkit';
import { http } from 'wagmi';
import { mainnet, sepolia } from 'wagmi/chains';
const config = getDefaultConfig({
appName: 'My RainbowKit App',
projectId: 'YOUR_PROJECT_ID',
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http('https://eth-mainnet.g.alchemy.com/v2/...'),
[sepolia.id]: http('https://eth-sepolia.g.alchemy.com/v2/...'),
},
});
有關更多詳細信息,請查看wagmi transport文件。
現在您的用戶可以連接他們的錢包,您可以開始使用wagmi構建應用程序的其餘部分。
使用wagmi的全面React Hooks套件發送交易、與合約交互、解析ENS詳細信息等等。
有關詳細信息,請查看wagmi文件。
要查看一些正在運行的RainbowKit範例,或者甚至使用它們自動搭建新項目,請查看官方範例。
要在您的瀏覽器中直接嘗試RainbowKit,請查看下面的CodeSandbox鏈接: