Solidity实现拍卖竞价,代码解析,著名代码文档出处
我们先来想一下拍卖竞价的场景:
我们需要有受益者来发起拍卖,然后才会有人来进行拍卖。进行拍卖,会对当前的最高价个进行记录,当拍卖时间结束,会进行交付价格接下来,我们实现这个拍卖:
第一,我们实现这个功能我们需要的参数:
- 需要有一个受益者来发起,则就是这个受益者的账户地址,以及这个拍卖的结束时间;
- 接着是需要记录当前的最高价格者的信息(最高价格账户地址,当前最高价);
- 我们还需要记录上一个最高价者的信息(之前最高价格账户地址,最前最高价);
- 还有当前拍卖会的进行状态;
第二,创建
这里我们用受益者地址 `_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实现拍卖竞价,代码解析,著名代码文档出处相关推荐
- 不给代码写文档,让代码文档化
这是程序员讨论了很久的一个话题:要不要给代码写文档?值得给代码写文档吗? 我曾经觉得这个话题实在是让人难以应付.也认为除去一些特殊的情况(比如编写公用 API),代码文档并不是那么必要.直到有一天,我 ...
- NDoc –NET 代码文档生成器快速度上手
感谢:破宝 http://blog.joycode.com/percyboy/ <?xml:namespace prefix = o ns = "urn:schemas-microso ...
- vue 插入word模板 项目_10 分钟为你的 vue 项目编写代码文档
代码文档是软件开发使用和维护的必备资料,有了文档,开发和维护以及协作的效率将变得大大提升.tips:如果对 JSDoc 已经熟悉,可以直接跳到实战演练环节. 什么是文档?软件文档或者源代码文档是指与软 ...
- 代码文档生成工具-Doxygen生成CHM和RTF图文教程
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,可以从一套归档源文件开始,生成chm格式的文档.本文主要讲解如何在winddows下安装doxygen. 1.下载doxyge ...
- Python+Streamlit aggrid+MongoDB GridFS构建低代码文档管理应用(文档查询下载实用篇)
1. Sreamlit aggrid简介 Sreamlit aggrid是Streamlit的Ag-Grid组件的实现,在Python Streamlit框架下,更加灵活的使用表格,包括分组.排序.编 ...
- 火车车次查询api代码文档及返回示例分享
火车车次查询api代码文档及返回示例分享,支持出发站名称.到达站名称.车次类型等查询,将其集中到APP中,使用更加方便. 接口名称:火车车次查询api 接口平台:api接口 接口地址:http://a ...
- dw的html代码文档,Dw 基础篇:DW的文档工具栏
以下选项出现在"文档"工具栏中: 服务器调试显示一个报告,帮助您调试当前 ColdFusion 页.该报告包括您的页面中的错误(如果有的话). 文档标题允许您为文档输入一个标题,它 ...
- 『原创』教你如何使用Sandcastle Help File Builder建立MSDN风格的代码文档
今天在公司特别研究了Sandcastle.NDoc以及Sandcastle Help File Builder(以下简称SHFB)的使用,发现还是SFHB好用,特在此写下一篇供大家参考(毕竟那个界面是 ...
- 罗永浩新公司准备招人,AI写一篇代码文档只需2步,如何优雅地乱搞Python代码、一大波数学资料来袭!AI前沿论文 | ShowMeAI资讯日报
ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...
最新文章
- K12(在线学习的平台)
- Y君:天天增删改查,又能怎么样?
- 机器学习之交叉验证方法详解【基于Scikit-Learn】
- Imagine dragons Dream中文歌词
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
- bzoj 2119 股市的预测 —— 枚举关键点+后缀数组
- Linux疑难杂症解决方案100篇(四)-SHELL编程预留题目解析
- 【单词】常见单词含义的辨异(emulator/simulator、hardware/firmware)
- 计算机组成原理实验存储器部件实验,计算机组成原理实验_存储器部件教学实验...
- python是什么课程-请问自学 Python 有必要买课程吗?
- [原创]Tsys 2.0 beta 官方版无法使用自定义SQ
- 万恶的ie(还好只是ie11)
- 快播(QvodPlayer)最新版 v5.20.234 官方版
- 追捕文件WRY.DLL的浅显分析及程序示例
- c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~
- 题解 [SP4354][AcWing137]TWINSNOW - Snowflakes/雪花雪花雪花
- 【C语言程序】编写函数返回体温值
- Java语言异常处理的出口_Java语言中,下列哪一个子句是异常处理的出口?
- 不积硅步,无以至千里
- STM32硬件看门狗的使用
热门文章
- 辛星解读php中一个有意思的事情
- C++: 情侣最美身高差(团体程序设计天梯赛)
- win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法...
- 检索匹配的利器:正则表达式
- A - Portal(cf) 前缀和 区间维护
- Android Study 之通过DialogFragment玩转高仿IOS弹框~ ^.^
- macosx10.13运行go报dyld: Symbol not found: _SecTrustEvaluateWithError错误的解决办法
- 微信语音短消息amr文件转WAV
- vivo手机显示服务器维修中,OPPO和vivo手机通病进水后黑屏不显示怎么维修
- 聚类评估算法-轮廓系数(Silhouette Coefficient )