摘要:在以太坊智能合约开发时,可能会有以下需求仅接受用户转入指定价值的,如果用户转入较少,则直接返回异常,当用户转入较多,则将用户多转入的退回。之后执行合约不会调用。执行合约时,转账的数量,以为单位。
在以太坊智能合约开发时,可能会有以下需求:
仅接受用户转入指定价值的eth,如果用户转入eth较少,则直接返回异常,当用户转入eth较多,则将用户多转入的eth退回。
在这里我们可以借助 fallback function,也就是后备函数进行转入金额的限定,示例如下:
contract Refund { address owner = 0x0; uint256 ticket = 1 ether; // 一个eth // 合约构造函数 // 第一次部署合约时,会调用该方法。 // 之后执行合约不会调用。 function Refund() public payable { // 将部署合约的地址作为合约拥有者 owner = msg.sender; } // 后备函数 function () public payable { require(msg.value >= ticket); if (msg.value > ticket) { var refundFee = msg.value - ticket; msg.sender.transfer(refundFee); } } }
public : 函数可见性
payable :可支付的函数修饰符,没有该修饰符无法接受转账操作。
msg.value :执行合约时,转账的eth数量,以wei为单位。
msg.sender : 执行合约的地址
.transfer(uint256):给指定地址
进行转账.transfer(uint256 amount)
发送给定数量的wei给指定地址,错误时抛出异常
.send(uint256 amount) returns (bool)
发送给定数量的wei给指定地址,错误时返回false
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23958.html
摘要:和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。超级账本区块链的商业应用超级账本超级账本是基金会下的众多项目中的一个。证书颁发机构负责签发撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 从比特币开始 一个故事告诉你比特币的原理及运作机制 这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来...
摘要:本文首发于深入浅出区块链社区原文链接如何通过以太坊智能合约来进行众筹原文已更新,请读者前往原文阅读前面我们有两遍文章写了如何发行代币,今天我们讲一下如何使用代币来公开募资,即编写一个募资合约。 本文首发于深入浅出区块链社区原文链接:如何通过以太坊智能合约来进行众筹(ICO)原文已更新,请读者前往原文阅读 前面我们有两遍文章写了如何发行代币,今天我们讲一下如何使用代币来公开募资,即编写一...
摘要:原文发表于以太坊智能合约开发第二篇理解以太坊相关概念很多人都说比特币是区块链,以太坊是区块链。它是以太坊智能合约的运行环境。是由以太坊节点提供。以太坊社区把基于智能合约的应用称为去中心化的应用。 原文发表于:以太坊智能合约开发第二篇:理解以太坊相关概念 很多人都说比特币是区块链1.0,以太坊是区块链2.0。在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态...
摘要:很多以太坊的智能合约控制着有实际价值的数字资产。这几期为大家带来一篇年对以太坊合约攻击调研的文献,来帮助大家避免以太坊智能合约设计中的一些可能导致安全性问题的弱点。攻击攻击是以太坊历史上最著名的攻击,盗走了价值万美元的以太币。 showImg(https://segmentfault.com/img/bVbnRDB?w=1080&h=460); 很多以太坊的智能合约控制着有实际价值的数...
阅读 1540·2021-11-24 10:17
阅读 1035·2021-09-29 09:43
阅读 2166·2021-09-23 11:21
阅读 2172·2019-08-30 14:13
阅读 1299·2019-08-29 13:58
阅读 3163·2019-08-28 17:51
阅读 1812·2019-08-26 13:29
阅读 2979·2019-08-26 10:13