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

点击浏览项目,这里会显示目前所有的项目列表。

当然,此时创建项目是不行的,因为我们在代码里面做了限制,未登录获取不到
address
,是不能创建项目的。我们使用 Metamask 将账户切换到 anvil-0 账户。
选择账户

连接钱包

点击我们 navbar 上的连接钱包按钮。

选择 metamask 连接

确认连接钱包

连接成功

创建并开始项目
开始创建一个项目吧。
点击项目列表下方的 create project

点击 create 后,看到项目被成功创建,右下角
toast
会显示该笔交易的 hash
值。
我们去到
anvil
的终端中,可以看到该笔交易的发送信息。同时我们在另一个终端中可以查看该交易的详细信息。
开启项目
上面我们创建了一个项目,但此时项目的状态为
NotStarted
,还未开始,也就是用户还无法参与项目。现在,我们开启项目。点击我们刚创建的项目卡片,进入到项目详情页,在下方有一个
Start Project
按钮,点击,会出现确认弹窗,确认后,相似地,也会发起一笔交易,返回交易的 hash
。
可以看到项目状态变更,目前状态是
InProgress
,因此按钮变更为下一个目标状态 Finish Project
。
参与项目
我们切换到
anvil-1
账户,进行参与。切换步骤为:- 点击右上角账户,选择断开链接。
- 在 Metamask 中切换到
anvil-1
账户。
- 页面内钱包组件连接到
anvil-1
。

同样,参与成功后,也会有一个右下角的
toast
显示交易的 hash
。切换
anvil-1 ~ anvil-4
账号,分别参与。参与成功后,可以在db查看是否成功入库,或者进入 Participated 页面,查看账户的参与信息。

结束项目并抽票
现在我们四个账户都参与完成了。
切换到
anvil-0
账户,也就是项目所有者的账户,去结束项目,并且开启抽票。结束项目
结束项目后,用户就不能再参与这个项目了。

开启抽票

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

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

小结
上面为大家演示了一下整个项目的成功流程。其他各种条件的失败分支就留给大家尝试和探索了!
- Author:Ago
- URL:http://www.sunago.top/article/fairticket-presentation
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!