资讯专栏INFORMATION COLUMN

以太坊智能合约开发:实现转账退费

XBaron / 2765人阅读

摘要:在以太坊智能合约开发时,可能会有以下需求仅接受用户转入指定价值的,如果用户转入较少,则直接返回异常,当用户转入较多,则将用户多转入的退回。之后执行合约不会调用。执行合约时,转账的数量,以为单位。

在以太坊智能合约开发时,可能会有以下需求:

仅接受用户转入指定价值的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):给指定地址
进行转账

sendtransfer 的区别

.transfer(uint256 amount)

发送给定数量的wei给指定地址,错误时抛出异常

.send(uint256 amount) returns (bool)

发送给定数量的wei给指定地址,错误时返回false

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23958.html

相关文章

  • SegmentFault 技术周刊 Vol.41 - 深入学习区块链

    摘要:和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。超级账本区块链的商业应用超级账本超级账本是基金会下的众多项目中的一个。证书颁发机构负责签发撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 从比特币开始 一个故事告诉你比特币的原理及运作机制 这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来...

    qianfeng 评论0 收藏0
  • 如何通过以太智能合约来进行众筹(ICO)

    摘要:本文首发于深入浅出区块链社区原文链接如何通过以太坊智能合约来进行众筹原文已更新,请读者前往原文阅读前面我们有两遍文章写了如何发行代币,今天我们讲一下如何使用代币来公开募资,即编写一个募资合约。 本文首发于深入浅出区块链社区原文链接:如何通过以太坊智能合约来进行众筹(ICO)原文已更新,请读者前往原文阅读 前面我们有两遍文章写了如何发行代币,今天我们讲一下如何使用代币来公开募资,即编写一...

    forrest23 评论0 收藏0
  • 以太智能合约开发第二篇:理解以太相关概念

    摘要:原文发表于以太坊智能合约开发第二篇理解以太坊相关概念很多人都说比特币是区块链,以太坊是区块链。它是以太坊智能合约的运行环境。是由以太坊节点提供。以太坊社区把基于智能合约的应用称为去中心化的应用。 原文发表于:以太坊智能合约开发第二篇:理解以太坊相关概念 很多人都说比特币是区块链1.0,以太坊是区块链2.0。在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态...

    yibinnn 评论0 收藏0
  • 以太合约的安全性弱点,你都绕开了吗?

    摘要:很多以太坊的智能合约控制着有实际价值的数字资产。这几期为大家带来一篇年对以太坊合约攻击调研的文献,来帮助大家避免以太坊智能合约设计中的一些可能导致安全性问题的弱点。攻击攻击是以太坊历史上最著名的攻击,盗走了价值万美元的以太币。 showImg(https://segmentfault.com/img/bVbnRDB?w=1080&h=460); 很多以太坊的智能合约控制着有实际价值的数...

    weij 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<