×
  • 澳门新莆京娱乐网站
  • 问卷调查
  • 问卷调查系统
  • 区块链
  • 大数据
  • 数据中心
  • 创建问卷
问卷调查系统工具软件推荐
区块链

Solidity智能合约演练系列第1部门

本系列的基本思想是了解以Solidity编写的智能合约的技术流程和基于用例的概念。在本系列中,我们将介绍三个不同的用例:“财产拍卖”,“出租房地产”和“业务合作伙伴关系”。对于每个用例,我们将首先研究应涵盖的功能,然后了解技术实施细节。请记住这不是功能齐全的产品。这些智能合约已使用Ganache在本地进行了测试,并且不属于任何生产/测试网络。它们仅出于教育目的而开发。

财产拍卖用例

假设某个用户想通过拍卖出售自己的财产。为简单起见,将使我们的情况与拍卖类似(而不是完全拍卖)。基本方案是任何用户(财产所有者除外)都可以参与拍卖。每个参加者将有机会竞标和转让其竞标金额,智能合约将存储参与者的出价。任何时候业主想要的,他可以通过将财产所有权转让给最高出价者并将最高出价金额转移到自己的钱包地址来停止拍卖。其他参与者可以随时从智能合约中撤回各自的出价。除非所有其他用户都从合约中撤回了先前的竞价金额,否则新所有者将无法针对指定的财产再次开始拍卖。

让我们开始…

下面是要使用的不同数据类型:

我们正在定义一个Property结构,该结构将存储属性名称和其他详细信息。由于可能有大量的详细信息,因此用户可以存储详细信息的哈希值(在合约外部准备详细信息哈希值)。我们具有status结构,该结构将跟踪以下内容:

1. bidders:这将存储参加拍卖的人数。
2. maximumBid:最高出价金额。
3. maximumBidder:最高出价者的地址。
4. biddingCompleted:检查拍卖是否已经完成的状态。

所有者将把财产存储自己的钱包地址中,而isProspect是用于存储针对每个参与者的投标金额值的映射。

定义了以下事件以确认各种交易:

在智能合约部署时(调用构造函数时)将初始化的属性详细信息,合约状态字段和所有者钱包地址。还定义了在所有者和非所有者之间隔离各种函数的修饰符,如下所示:

来到我们的竞价功能:

使用nonOwner修饰符,此方法仅限于Owner。 如果交易成功,则返回true。由于各个参与者都将发送其投标金额(需要存储在合同中),因此被指定为应付。如果用户不是早期参与,我们将允许其参与(否则我们将还原交易,要求此处使用的操作员将帮助我们完成交易)。我们将为用户设置isProspect映射,增加参与者数量(bidders ++),并设置最高出价者和出价金额,以防用户数量超过其他参与者。 一旦交易成功,将发出reg事件,返回值为true。

注意:任何带有payable选项的函数都将允许合约在自己的地址存储以太坊(在函数调用期间从用户收到的)的数量。

只有所有者才能调用此方法并声明结果

只允许所有者调用bidResult。这种方法会将财产所有权转让给出价最高的人,也会将出价最高的金额转移到当前所有者的地址并将拍卖标记为完成。它将最高出价者的isProspect映射重置为0并减少参与者数量(这将有助于我们跟踪剩余的正确参与者数量以提取其金额)。一旦交易成功,它将发出结果事件并返回真实的布尔值。

帮助用户撤回各自出价的方法

上述方法允许参与者撤回其各自存储的投标金额。每当任何用户希望退出拍卖或要在拍卖完成后取回其金额时,都可以调用此方法。此方法将针对用户检查isProspect映射的相应金额。 然后它将所需的金额转入用户的钱包地址。参加者人数也会减少,以反映实际参加者人数。请注意在宣布拍卖结果时重置最高出价者的isProspect映射,因为我们不希望拍卖赢家索赔。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

人已赞赏
区块链

23家央行谈CBDC,中国或将成为首个刊行国

2019-11-7 16:12:45

区块链

区块链是如何颠复数字营销的?它的发展方向是

2019-11-7 16:13:26

问卷调查系统工具软件推荐
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索
XML 地图 | Sitemap 地图