我们先来想一下拍卖竞价的场景:

我们需要有受益者来发起拍卖,然后才会有人来进行拍卖。进行拍卖,会对当前的最高价个进行记录,当拍卖时间结束,会进行交付价格接下来,我们实现这个拍卖:

第一,我们实现这个功能我们需要的参数:

  • 需要有一个受益者来发起,则就是这个受益者的账户地址,以及这个拍卖的结束时间;
  • 接着是需要记录当前的最高价格者的信息(最高价格账户地址,当前最高价);
  • 我们还需要记录上一个最高价者的信息(之前最高价格账户地址,最前最高价);
  • 还有当前拍卖会的进行状态;

第二,创建 

这里我们用受益者地址 `_beneficiary` 的名义,创建一个简单的拍卖,拍卖时间为 `_biddingTime` 秒来实现创建拍卖

第三,出价

出价:在进行出价的时候我们需要确定当前是否可以进行出价(当前拍卖是否结束),再者,所出的价格必须要高于当前的最高价格(低于当前最高价则进行回滚,返还)。当一切正常时,我们需要更新当前的最高价格

第四:返还

当目前的最高价格进行更新时(当前最高价被超越),我们需要返回之前的最高价格给之前出价最高者

第五:结束

接着就是拍卖结束,并且把最高的出价发送给受益人

拍卖结束,我们要判断当前的时间到了结束的时间或者超过结束时间,当拍卖结束时我们需要先对本次拍卖的状态进行修改,禁止所有的变更。

本次的拍卖就到此结束了,我们来总结以下所用到的知识点:

Payable:payable声明的函数可以从调用者那里接受ether,如果发送方没有提供ether,则调用可能会失败,也就是说一个函数声明为payable,那么就只能收取ether

block.timestamp:当前块的时间戳

msg.value:与消息一起发送的数量

msg.sender:消息的发送者

.send():用法:<address>.send(uint amount) returns(bool)。Wei发送给定量到地址,失败时返回假。

.transfer:用法:<address>.transfer(uint amount)。发送ether到指定位置。amount数量的ether发送到<address>这个地址

Solidity实现拍卖竞价,代码解析,著名代码文档出处相关推荐

  1. 不给代码写文档,让代码文档化

    这是程序员讨论了很久的一个话题:要不要给代码写文档?值得给代码写文档吗? 我曾经觉得这个话题实在是让人难以应付.也认为除去一些特殊的情况(比如编写公用 API),代码文档并不是那么必要.直到有一天,我 ...

  2. NDoc –NET 代码文档生成器快速度上手

    感谢:破宝 http://blog.joycode.com/percyboy/ <?xml:namespace prefix = o ns = "urn:schemas-microso ...

  3. vue 插入word模板 项目_10 分钟为你的 vue 项目编写代码文档

    代码文档是软件开发使用和维护的必备资料,有了文档,开发和维护以及协作的效率将变得大大提升.tips:如果对 JSDoc 已经熟悉,可以直接跳到实战演练环节. 什么是文档?软件文档或者源代码文档是指与软 ...

  4. 代码文档生成工具-Doxygen生成CHM和RTF图文教程

    Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,可以从一套归档源文件开始,生成chm格式的文档.本文主要讲解如何在winddows下安装doxygen. 1.下载doxyge ...

  5. Python+Streamlit aggrid+MongoDB GridFS构建低代码文档管理应用(文档查询下载实用篇)

    1. Sreamlit aggrid简介 Sreamlit aggrid是Streamlit的Ag-Grid组件的实现,在Python Streamlit框架下,更加灵活的使用表格,包括分组.排序.编 ...

  6. 火车车次查询api代码文档及返回示例分享

    火车车次查询api代码文档及返回示例分享,支持出发站名称.到达站名称.车次类型等查询,将其集中到APP中,使用更加方便. 接口名称:火车车次查询api 接口平台:api接口 接口地址:http://a ...

  7. dw的html代码文档,Dw 基础篇:DW的文档工具栏

    以下选项出现在"文档"工具栏中: 服务器调试显示一个报告,帮助您调试当前 ColdFusion 页.该报告包括您的页面中的错误(如果有的话). 文档标题允许您为文档输入一个标题,它 ...

  8. 『原创』教你如何使用Sandcastle Help File Builder建立MSDN风格的代码文档

    今天在公司特别研究了Sandcastle.NDoc以及Sandcastle Help File Builder(以下简称SHFB)的使用,发现还是SFHB好用,特在此写下一篇供大家参考(毕竟那个界面是 ...

  9. 罗永浩新公司准备招人,AI写一篇代码文档只需2步,如何优雅地乱搞Python代码、一大波数学资料来袭!AI前沿论文 | ShowMeAI资讯日报

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

最新文章

  1. K12(在线学习的平台)
  2. Y君:天天增删改查,又能怎么样?
  3. 机器学习之交叉验证方法详解【基于Scikit-Learn】
  4. Imagine dragons Dream中文歌词
  5. BZOJ 2662: [BeiJing wc2012]冻结(最短路)
  6. bzoj 2119 股市的预测 —— 枚举关键点+后缀数组
  7. Linux疑难杂症解决方案100篇(四)-SHELL编程预留题目解析
  8. 【单词】常见单词含义的辨异(emulator/simulator、hardware/firmware)
  9. 计算机组成原理实验存储器部件实验,计算机组成原理实验_存储器部件教学实验...
  10. python是什么课程-请问自学 Python 有必要买课程吗?
  11. [原创]Tsys 2.0 beta 官方版无法使用自定义SQ
  12. 万恶的ie(还好只是ie11)
  13. 快播(QvodPlayer)最新版 v5.20.234 官方版
  14. 追捕文件WRY.DLL的浅显分析及程序示例
  15. c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~
  16. 题解 [SP4354][AcWing137]TWINSNOW - Snowflakes/雪花雪花雪花
  17. 【C语言程序】编写函数返回体温值
  18. Java语言异常处理的出口_Java语言中,下列哪一个子句是异常处理的出口?
  19. 不积硅步,无以至千里
  20. STM32硬件看门狗的使用

热门文章

  1. 辛星解读php中一个有意思的事情
  2. C++: 情侣最美身高差(团体程序设计天梯赛)
  3. win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法...
  4. 检索匹配的利器:正则表达式
  5. A - Portal(cf) 前缀和 区间维护
  6. Android Study 之通过DialogFragment玩转高仿IOS弹框~ ^.^
  7. macosx10.13运行go报dyld: Symbol not found: _SecTrustEvaluateWithError错误的解决办法
  8. 微信语音短消息amr文件转WAV
  9. vivo手机显示服务器维修中,OPPO和vivo手机通病进水后黑屏不显示怎么维修
  10. 聚类评估算法-轮廓系数(Silhouette Coefficient )