区块链 > 技术 > 正文

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

区块链数字货币板块文章「Solidity智能合约演练系列第1部分」,本文约有696个文字,大小约为3KB,预计阅读时间2分钟请您欣赏。樱花区块链门户资讯网荟萃众多优秀文章精选,如果想要浏览更多相关区块链数字货币,可以关注本文结尾推荐的优秀文章内容。本站区块链资讯虽然不乏优秀之作,但仅为大家参考使用,希望能对关注区块链的人有所帮助。

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

财产拍卖用例

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

让我们开始…

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

Solidity智能合约演练系列第1部分
「智能合约」

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

1. bidders:这将存储参加拍卖的人数。


2. maximumBid:最高出价金额。


3. maximumBidder:最高出价者的地址。


4. biddingCompleted:检查拍卖是否已经完成的状态。

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

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

Solidity智能合约演练系列第1部分
「智能合约」

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

Solidity智能合约演练系列第1部分
「智能合约」

来到我们的竞价功能:

Solidity智能合约演练系列第1部分
「智能合约」

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

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


Solidity智能合约演练系列第1部分
「智能合约」

以上便是樱花区块链给大家分享的关于「Solidity智能合约演练系列第1部分」http://www.0797jjw.cn/qkljs/jishu_26441.html的相关信息了,希望能帮助到大家,更多区块链相关内容,敬请关注樱花区块链!

猜你喜欢

全球稳定币与金融稳定

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

原文地址: