安装
安装
通过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。
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 项目。
export default {
ignoredRouteFiles: ["**/.*"],
browserNodeBuiltinsPolyfill: {
modules: { buffer: true, events: true, http: true },
},
};
默认情况下,您的 dApp 使用每个链的公共 RPC 提供商来获取余额、解析 ENS 名称等。 这通常会导致用户的可靠性问题,因为公共节点的速率有限。 您应该通过 Alchemy 或 QuickNode 等服务购买 RPC 提供商的访问权限,并在 Wagmi 中定义您自己的传输方式。 这可以通过在 getDefaultConfig
中添加 transports
参数或通过 Wagmi 的 createConfig
直接实现。
传输层是处理将 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文档。
现在您的用户可以连接他们的钱包,您可以开始使用 wagmi. 构建应用程序的其余部分
发送交易,交互合同,解析 ENS 详情以及使用 wagmi 的全面 React 钩子套件做更多事情。
查看更多详细信息,请查阅wagmi文档。
查看RainbowKit的一些运行示例,或者甚至使用它们来自动构建一个新项目,请查看官方示例。
要直接在您的浏览器中试用RainbowKit,请查看下面的CodeSandbox链接: