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

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

有三种方式:

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

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

1、部署转账

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

示例:

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

2、执行合约转账

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

示例:

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

3、直接转账

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

示例:

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

附录

  • 函数修饰符(Function Modifiers)
  • 内部修饰符

以太坊智能合约开发:让合约接受转账相关推荐

  1. Python开发以太坊智能合约指南(web3.py)

    在以太坊上获得一个基本的智能合约是一个很简单的事,只需google查询"ERC20代币教程",你会发现有关如何做到这一点的大量信息.以编程方式与合约交互完全是另一回事,如果你是一个 ...

  2. 使用hardhat开发以太坊智能合约-测试合约

    Web3工具网站[点我访问] 现已上线,欢迎使用,如有好的意见和建议也欢迎反馈. 本系列课程: 第一节:使用hardhat开发以太坊智能合约-搭建环境 第二节:使用hardhat开发以太坊智能合约-测 ...

  3. Python以太坊智能合约开发指南

    在以太坊上获得一个基本的智能合约是一个很简单的事,只需google查询"ERC20代币教程",你会发现有关如何做到这一点的大量信息.以编程方式与合约交互完全是另一回事,如果你是一个 ...

  4. 以太坊智能合约开发(truffle box pet-shop为例)

    开发环境 我在ubuntu环境下开发的,建议装好vscode,nodejs .选用别的编译器也可以. 装好nodejs后装一下truffle. npm install -g truffle truff ...

  5. 区块链开发(二)部署和运行第一个以太坊智能合约

    区块链开发(二)部署并运行第一个以太坊智能合约 李赫2016年8月22日 本文首发8BTC 网络上不少部署智能合约的文章,但是都有一个共同的特点,就是采用命令行的方式来部署,先是建立SOLC的编译环境 ...

  6. 以太坊智能合约开发第二篇:理解以太坊相关概念

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 很多人都说比特币是区块链1.0,以太坊是区块链2.0.在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太 ...

  7. 用Visual Studio开发以太坊智能合约

    2019独角兽企业重金招聘Python工程师标准>>> 区块链和以太坊 自从我熟悉区块链.以太坊和智能合约以来,一直失眠. 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议 ...

  8. truffle (ETH以太坊智能合约集成开发工具) 入门教程

    truffle (ETH以太坊智能合约集成开发工具) 入门教程 前言 在你了解区块链开发之前,你有必要了解区块链的一些基础知识,什么是DApp,DApp与传统app的区别, 什么是以太坊,以太坊中的智 ...

  9. 以太坊智能合约开发第七篇:智能合约与网页交互

    原文发表于:以太坊智能合约开发第七篇:智能合约与网页交互 上一篇中,我们通过truffle开发框架快速编译部署了合约.本篇,我们将来介绍网页如何与智能合约进行交互. 编写网页 首先我们需要编写一个网页 ...

最新文章

  1. 人工智能高薪的背后……
  2. Nginx防盗链、访问控制、Nginx解析PHP相关配置、Nginx代理
  3. javascript处理事件的一些兼容写法
  4. VC2010编译boost
  5. C++中的开闭原则使用C++多态功能实现附源码
  6. java的abstract的意思_java – spring中的abstract =“true”是什么意思?
  7. 得到python默认的帮助文档
  8. PAT乙级 1003. 我要通过!
  9. 产生随机数java_java产生随机数的几种方式
  10. Linux下查看版本及系统信息
  11. mysql 统计本月的_MySql查询当天、本周、本月、本季度、本年的数据
  12. 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目)
  13. Linux开机自动挂载Windows分区的两种方法
  14. 2015-2018节假日表
  15. C语言正则表达式详解 regcomp() regexec() regfree()详解
  16. 【地理坐标系、大地坐标系与地图投影与重投影详解】
  17. java 取当天0点_java 获取当天(今日)零点零分零秒
  18. 《一本书读懂财报》学习笔记 - 资产是如何计价?
  19. 【怎么提高测试质量】
  20. 小孢子的神奇之旅-如何阅读MindSpore报错信息(2)

热门文章

  1. [K/3Cloud] KSQL 关联表更新字段Update语法
  2. 项目问题思考之策略模式
  3. 在Makefile中的 .PHONY 是做什么的?
  4. Oracle和Mysql获取uuid的方法对比
  5. JAVA取数两个数组交集,考虑重复和不重复元素
  6. Linux时间同步+国内常用的NTP服务器地址
  7. 20162316刘诚昊 第九周学习总结
  8. iOS集成sharesdk遇到的坑
  9. QPushButton
  10. POJ 3358 Period of an Infinite Binary Expansion ★ (数论好题:欧拉函数)