Post on: 2025-9-14Last edited: 2025-9-14Words 1087Read Time 3 min

type
status
date
slug
summary
tags
category
icon
password
我们将从头到位演示项目整个流程,步骤如下。
我们这里只演示一个成功的流程,不包含各种失败的条件(比如未登录钱包创建项目,期望报错,参与者加入未开启的项目 等等)。
  1. 使用 anvil-0 账户创建项目,并开启项目。
  1. 使用 anvil-1 ~ anvil-4 账户作为参与者,参与项目。
  1. 使用 anvil-0 账户结束项目,并开始抽票。
  1. 使用 anvil-1 ~ anvil-4 项目查看自己的参与情况与中奖情况。
  1. 中奖用户进行验证。
Again: 请确保相关服务正常运行。

连接钱包

首先,进入我们的主页。可以看到我们还没有连接钱包。
notion image
 
点击浏览项目,这里会显示目前所有的项目列表。
notion image
当然,此时创建项目是不行的,因为我们在代码里面做了限制,未登录获取不到 address ,是不能创建项目的。
我们使用 Metamask 将账户切换到 anvil-0 账户。
选择账户
notion image
连接钱包
notion image
点击我们 navbar 上的连接钱包按钮。
notion image
选择 metamask 连接
notion image
确认连接钱包
notion image
连接成功
notion image

创建并开始项目

开始创建一个项目吧。
点击项目列表下方的 create project
notion image
点击 create 后,看到项目被成功创建,右下角 toast 会显示该笔交易的 hash 值。
notion image
我们去到 anvil 的终端中,可以看到该笔交易的发送信息。
同时我们在另一个终端中可以查看该交易的详细信息。
开启项目
上面我们创建了一个项目,但此时项目的状态为 NotStarted ,还未开始,也就是用户还无法参与项目。现在,我们开启项目。
点击我们刚创建的项目卡片,进入到项目详情页,在下方有一个 Start Project 按钮,点击,会出现确认弹窗,确认后,相似地,也会发起一笔交易,返回交易的 hash
notion image
可以看到项目状态变更,目前状态是 InProgress ,因此按钮变更为下一个目标状态 Finish Project
notion image

参与项目

我们切换到 anvil-1 账户,进行参与。切换步骤为:
  1. 点击右上角账户,选择断开链接。
  1. Metamask 中切换到 anvil-1 账户。
  1. 页面内钱包组件连接到 anvil-1
 
notion image
同样,参与成功后,也会有一个右下角的 toast 显示交易的 hash
切换 anvil-1 ~ anvil-4 账号,分别参与。
参与成功后,可以在db查看是否成功入库,或者进入 Participated 页面,查看账户的参与信息。
notion image

结束项目并抽票

现在我们四个账户都参与完成了。
切换到 anvil-0 账户,也就是项目所有者的账户,去结束项目,并且开启抽票。
 
结束项目
结束项目后,用户就不能再参与这个项目了。
notion image
 
开启抽票
notion image
 
在抽票完成后,项目详情页会多出两个字段,显示链上的抽票号,以及中奖用户的 MerkleRoot
notion image
 

查看中奖

在db里面可以查看到哪些用户中奖了。我这里填的4个号的幸运数字都是123。链上随机数是固定的1234567890。如果你也和我这些设置一样,中奖者应该是 anvil-2anvil-4
现在我们登录 anvil-2账户查看一下情况吧。
notion image
查看项目详情信息。
notion image

验证中奖

中奖的用户在下面会有 Verify 按钮。点击即可验证。
notion image

小结

上面为大家演示了一下整个项目的成功流程。其他各种条件的失败分支就留给大家尝试和探索了!

Loading...
从0到1实现一个Dapp全栈项目FairTicket✨(4)Next前端开发

从0到1实现一个Dapp全栈项目FairTicket✨(4)Next前端开发


从0到1实现一个Dapp全栈项目FairTicket✨(6)签名鉴权

从0到1实现一个Dapp全栈项目FairTicket✨(6)签名鉴权