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

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

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

有三种方式:java

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

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

一、部署转帐

在进行合约开发时,若是想要在部署时,直接向该合约进行转帐,只须要给构造函数中添加payable修饰符。spa

示例:

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

二、执行合约转帐

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

示例:

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

三、直接转帐

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

示例:

 
contract Test {
    
      function () payable { // 其余逻辑 } }
相关文章
相关标签/搜索