Solidity-让合约地址 接受ETH的转账充值的 三种方式

一笑奈何 提交于 2020-12-09 01:43:11

以太坊智能合约开发:让合约接受转账

在以太坊智能合约开发中,通常会有向合约地址进行转账的需求,那么有几种向合约地址进行转账的方式呢?

有三种方式:

  • 部署合约时转账
  • 调用合约提供的方法
  • 直接向合约地址进行转账

但有一个问题,以太坊的智能合约默认是拒绝来自任何地址的转账,那么如何让合约能够支持接收转账呢?

1、部署转账

在进行合约开发时,如果想要在部署时,直接向该合约进行转账,只需要给构造函数中添加payable修饰符。

示例:

contract Test {
    
      // 构造函数添加payable修饰符即可
      function Test() payable { // 构造函数其他逻辑代码 } }

2、执行合约转账

执行合约转账,则需要给你需要支持转账功能的方法添加payable修饰符

示例:

contract Test {
    
      function getBalance() payable { // 其他逻辑 } }

3、直接转账

支持直接转账,需要借助后备函数(fallback function),只需要为后备函数添加 payable 修饰符

示例:

 
contract Test {
    
      function () payable {
        // 其他逻辑 } }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!