Skip to main content
赞助交易使用户无需自行支付 gas 费用即可与区块链应用交互,提升可及性、用户体验和上手门槛 —— 特别是对不熟悉加密的新手而言。 本指南将带您使用 赞助交易模板,该模板使用 ExpoReact NativePrivy 嵌入式钱包Pimlico paymaster,在 Monad 上构建具有赞助交易功能的移动应用。 您可以开始通过编辑 app 目录中的文件进行开发。本项目使用 基于文件的路由
该仓库还有一个 demo 分支,如果您想先查看应用的完整版本,可以切换到该分支。

前置条件

  • XCode
    • 为 Expo 设置 iOS 模拟器的指南见 此处
  1. 创建应用:
create appnaming the app
  1. 设置登录方式:
set up login methods
  1. 启用邮箱:
enable email
  1. 启用 “Automatically create embedded wallets on login” 并选择 “EVM Wallets”:
create wallets automatically
  1. 在 Socials 中禁用所有项。
  2. 前往 “Advanced” 并确保只启用 “Prioritize options displayed” 下的 “Web2: Email, SMS, and socials”:
prioritize web2 methods
您可以启用 “Test Accounts” 用于测试目的test wallets
还需要一些其他步骤,我们将在项目依赖安装完成后继续。

开始

该模板还有一个 demo 分支,您可以切换到该分支查看演示项目。您可以使用以下命令切换:

安装依赖

设置环境变量

  • 创建 .env.example 的副本:
  • 向其中添加以下环境变量
  1. 前往您的 Privy 仪表盘,点击您 Privy 应用的 Home,然后点击 Retrieve API keys
retrieve api keys
  1. 您将在 API keys 下找到 App ID
api key
  1. 前往您的 Privy 仪表盘,点击您 Privy 应用的 Home,然后点击 Retrieve API keys
retrieve api keys
  1. 点击顶部的 Clients 标签,然后点击 Edit
clients
  1. Allowed app identifiers 下粘贴应用 bundle 的名称并点击 Add
You will find the app bundle name in app.json. For Android, it is the package property. For iOS, it is the bundleIdentifier property.allowed identifiers
  1. 复制 Client ID 并将其用作 EXPO_PUBLIC_PRIVY_CLIENT_ID 的值。
client_id
  1. 注册 Pimlico 并前往 “API Keys”:
pimlico_dashboard
  1. 创建新的 API key:
create_api_key
  1. 点击 “RPC URLs”:
rpc_urls
  1. 搜索 Monad Testnet 并复制该 URL。将其用作 EXPO_PUBLIC_PIMLICO_BUNDLER_URL:
monad_testnet_rpc_url

启动应用

在 Expo Go 应用中或本地启动应用。 在 Expo Go 应用中:
  • iOS:
  • Android:
作为原生应用构建:
  • iOS:
  • Android:

模板文件夹结构

发送赞助交易

下面是一个使用 useSmartWallet hook 发送赞助交易的示例。您可以修改代码来发送自己的交易,或将其集成到现有项目中。

发送批量赞助交易

您也可以发送批量赞助交易:
此示例使用 Kernel 智能账户以及 Entrypoint v7。请参见 useSmartWallet.tsx 了解实现细节。

修改应用名称

iOSAndroid
编辑 app.json 中的 name 属性:
app.json

修改应用图标和启动画面

应用图标

iOSAndroid
您可以通过替换 assets/images/icon.png 来编辑应用图标。 推荐的应用图标尺寸为 1024x1024 如果您将图标文件命名为其他名称,请相应地编辑 app.json 中的 icon 属性。
app.json

启动画面

iOSAndroid
编辑 app.json 中的 splash 对象来修改启动画面。
app.json

修改字体

您可以在 assets 内创建一个 fonts 文件夹来存放您的自定义字体文件。 要使用自定义字体,请在 app/_layout.tsx 中加载字体。 示例:
app/_layout.tsx

修改深度链接方案

编辑 app.json 中的 scheme 属性以选择您的自定义深度链接方案:
app.json
例如,如果将其设置为 rnwalletapp,则轻点 rnwalletapp:// URL 时将打开您的应用。 这是一个构建时配置,在 Expo Go 中无效。

编辑登录页面

您可以通过编辑 screens/Home.tsx 来编辑登录页面。 demo 分支中,我们最终添加了更复杂的功能,这就是 Home.tsx 变成一个 文件夹 的原因。

修改 package/bundle 标识符

将应用发布到应用商店时,您需要拥有唯一的 package/bundle 标识符,可以在 app.json 中设置。
别忘了在 Privy 仪表盘中更改该标识符
app.json

查看演示应用

如果您想在开始开发之前尝试应用的完整版本,请切换到 demo 分支:

演示应用文件夹结构

了解更多

要了解使用 Expo、Privy 和 Monad 开发项目的更多信息,请查看以下资源: 如遇任何问题,请在 此处 反馈。