Skip to main content
在构建 web3 应用时,应用必须展示与已连接钱包相关的一些信息,例如 ERC20 代币余额、ERC721 代币余额、交易历史等等…… Moralis 为最常见的功能提供了广泛的开箱即用 API,如钱包原生余额、获取所有 NFT 和收藏品、钱包年龄和活动等等…… 在本指南中,您将学习如何使用 Moralis API 和 NextJS 为已连接的钱包构建一个简单的 ERC20 代币余额视图。
如果您希望在构建之前先试用该投资组合查看器,可以在这里试用。
portfolio view

要求

在开始之前,您需要:
  1. Moralis API 密钥:从 Moralis 仪表板获取
  2. Reown Project ID:从 Reown Cloud获取

步骤 1:初始化项目

创建 Nextjs 应用

安装 ShadCN 组件

安装 Tanstack React Query(用于更好的异步状态管理)

步骤 2:环境设置

将您的 Moralis API 密钥和 Reown Project ID 添加到 .env.local

步骤 3:连接钱包功能

创建 ContextProvider 组件

src 目录下创建一个名为 context 的文件夹,在该文件夹内创建一个名为 index.ts 的文件。
src/context/index.ts

layout.tsx 中用 ContextProvider 组件包裹应用

src/app/layout.tsx

创建自定义 ConnectButton

components/wallet 文件夹中创建一个名为 ConnectButton.tsx 的文件
src/components/wallet/ConnectButton.tsx
我们使用 useAppKituseAppKitAccount hook 创建自定义连接按钮,而不是使用 Reown AppKit 提供的标准按钮。

创建带有自定义 ConnectButtonHeader 组件

header src/components/layout 文件夹中创建一个名为 Header.tsx 的文件,并将新创建的 ConnectButton 组件导入其中。
src/components/layout/Header.tsx
layout.tsx 中导入 Header 组件
src/app/layout.tsx
您现在应该能够看到一个自定义的 Connect Wallet 按钮了!

步骤 4:获取已连接钱包的代币余额

创建 /api/wallet/balances 路由

在文件夹 src/app/api/wallet/balances/ 中创建一个名为 route.ts 的文件 我们使用 “Get Native & ERC20 Token Balances by Wallet” Moralis API 端点来获取代币余额。您可以在这里找到该端点的文档。 它接收一个地址和链 ID,并返回该地址的 ERC20 代币列表(包括 Logo、名称、符号)和原生余额。
src/app/api/wallet/balances/route.ts

创建名为 useTokenBalances 的 React hook

这个 React hook 调用您创建的 /api/wallet/balances/ 端点获取代币余额数据,将其格式化为合适的列表,并使其可在前端使用。
src/hooks/useTokenBalances.ts
我们稍后将在 UI 组件中使用此 hook

步骤 5:创建 UI

创建 TokenRow 组件

token-row TokenRow 组件将显示代币详情,例如名称、符号、logo、美元价格、已连接钱包中的代币数量以及美元价值。 在文件夹 src/components/portfolio/tokens/ 中创建一个名为 TokenRow.tsx 的文件
src/components/portfolio/tokens/TokenRow.tsx

创建 TokenList 组件

token-list src/components/portfolio 文件夹中创建 TokenList.tsx 文件,并将新创建的 TokenRow.tsx 组件导入其中。
src/components/portfolio/TokenList.tsx

创建 PortfolioDashboard 组件

dashboard PortfolioDashboard 组件将显示 TokenList,并可以进一步修改以包含更多组件,展示您希望用户看到的信息。
src/components/portfolio/PortfolioDashboard.tsx
查看其他 Moralis API 端点,并为它们创建可视化组件!

结论

在本指南中,您学习了如何使用 Moralis API 获取钱包代币余额并在 UI 中展示它们。 强烈建议您查看其他 API 端点,并为您创建的这个项目添加更多功能! 您可以在这里找到完整的投资组合仪表板项目以作参考。

有用的链接