产品描述
一个契约打卡类的应用,可以实现:
1、发起打卡
2、参与打卡
3、打卡
4、结果
四个功能,不过在初期,我们可以简化问题,暂时只需要实现一个连续7天的打卡程序。
一个打卡的流程:
1.任何人都可以点击打卡,来进行打卡。
2.需要判断对方是否为每日的5:00-7:00第一次打卡,如果是第一次打卡,则容许打卡。如果不是,例如在此时间之外,或者在此时间内第二次打卡,都不能进行打卡。
3.判断打卡方是第几次打卡,如果不是此轮次的第8次打卡,则直接返回消息。如果是本轮次的第8次打卡,则可以自动提现。转到下一个步骤。
4.满足提现条件的用户,自动会把资金池的总额除以满足提现条件的用户(本周期内连续7天打卡)+ 1wicc。 例如,总共10个人曾今打过卡,积累到第8天之前60个wicc,满足条件的只有5个人。这样这个打卡的人收益就是 60除以5加上1个wicc=13个wicc收益。
5.不满足提现条件的用户(中间有漏天),本轮提现资格取消。
前端工作
- 整体页面设计。
- 判断时间5:00-7:00,这个在区块链实现有些复杂,建议这个在前端页面实现。
- 点击打卡,调用钱包插件进行签名,调用智能合约,给智能合约转入1个wicc。
- 点击结果,显示:活动的轮次、转账记录、总参与人数、满足提现人数、当前奖池总金额。
后端工作
1.判断在一个周期内的只有一次打卡。(通过区块高度判断)
2.提供活动轮次、总资金数量、总参与人数、满足提现人数等信息。便于前端查询。(一个结果的功能:返回如上的各种信息。)
3.判断在本轮次中,是否符合提现要求,不满足要求则返回结果退出。满足要求(本轮次连续第8次打卡),则调用提现功能。
4.提现功能采用transfertoaddress,将奖池的部分资金转移给符合要求者。
网友评论