比较常用的全局变量是msg变量,表示调用上下文,常见的全局变量有以下几种:

  • msg.sender:合约的直接调用者。

    由于是直接调用者,所以当处于 用户A->合约1->合约2 调用链下,若在合约2内使用msg.sender,得到的会是合约1的地址。如果想获取用户A,可以用tx.origin.

  • msg.calldata:包含完整的调用信息,包括函数标识、参数等。calldata的前4字节就是函数标识,与msg.sig相同。

  • msg.sig:msg.calldata的前4字节,用于标识函数。

pragma solidity ^0.4.25;
contract Sample{
​//State variablesaddress private _admin;uint private _state;
​//Modifiermodifier onlyAdmin(){require(msg.sender == _admin, "You are not admin");      _;}
​//Eventsevent SetState(uint value);
​//Constructorconstructor() public{_admin = msg.sender;}
​//Functionsfunction setState(uint value) public onlyAdmin{_state = value;emit SetState(value);}
​function getValue() public view returns (uint){return _state;}
​
}

区块链 以太坊 全局变量 msg包括哪些字段相关推荐

  1. 8支团队正在努力构建下一代区块链以太坊Ethereum 2.0

    2019独角兽企业重金招聘Python工程师标准>>> "我们不想在构建 Ethereum 2.0时重新造轮子." 谈到开发人员为 Ethereum 区块链进行两 ...

  2. 可编程区块链以太坊的未来

    区块链的火热就不用说了,回看一下Vinay Gupta 2015年发表的文章<内容可编程的区块链:以太坊的未来>,感受一下先行者的思想. 到本文结束时,你将了解一般的区块链(特别是下一代区 ...

  3. 回看2015年是如何描述区块链以太坊的未来

    区块链的火热就不用说了,回看一下Vinay Gupta 2015年发表的文章<内容可编程的区块链:以太坊的未来>,感受一下先行者的思想. 到本文结束时,你将了解一般的区块链(特别是下一代区 ...

  4. 回望Vinay2015年的文章:内容可编程的区块链——以太坊的未来

    2019独角兽企业重金招聘Python工程师标准>>> 区块链的火热就不用说了,回看一下Vinay Gupta 2015年发表的文章<内容可编程的区块链:以太坊的未来>, ...

  5. 上下文可编程区块链——以太坊的未来

    区块链的火热就不用说了,回看一下Vinay Gupta 2015年发表的文章<内容可编程的区块链:以太坊的未来>,感受一下先行者的思想. 到本文结束时,你将了解一般的区块链(特别是下一代区 ...

  6. 【区块链-以太坊】5 Ubuntu下truffle ganache安装及使用

    [区块链-以太坊]5 Ubuntu下truffle & ganache安装及使用 1 truffle安装 1)输入sudo npm install -g truffle 2)将truffle复 ...

  7. 区块链-以太坊学习资料汇总

    最近一段时间以来,对区块链的底层研究和基于区块链的应用开发已经越来越火热了.机缘巧合,目前我也在进行区块链方面的开发,在之后的博客中,我会和大家一起分享区块链开发中的酸甜苦辣.今天我先来对收藏区块链- ...

  8. 区块链以太坊以及hyperledger总结

    https://learnblockchain.cn/ 1.什么是智能合约?它有什么特点? 就是具有交互能力而且能够在区块链中传递的合约 一个由计算机代码控制的以太币账户 特点: 公开透明.能即时与区 ...

  9. 区块链 以太坊 区块结构详解

    一.结构 区块由两部分组成,分别是 区块头(header) 区块体(body) 1. 结构图 2. 区块头(header) 区块头存储了区块的元信息,用来对区块内容进行一些标识,校验,说明等. 通用字 ...

  10. 带你玩转区块链--以太坊基础、发币、基于智能合约实现彩票项目-第二章-第一节【以太坊篇】

    意义: 在上一节知识学习中,我们已经了解如何实现一个基础区块链,并重构了BTC关键代码.对比传统的中心化项目,区块链项目拥有很多优势,如:追溯性.不可传篡改性.在中心化项目中的网络协议是:[数据层-- ...

最新文章

  1. python3(十)pickle库
  2. ajaxFileUpload.js插件支持多文件上传的方法
  3. POJ_2117 Elcctricity (tarjan 求割点)
  4. javaSE(java基础库)私人学习笔记
  5. Java设计模式4:单例模式
  6. 我的 Visual C++ 6.0学习网站
  7. 单片机课程设计--电子密码锁(源代码+proteus仿真)
  8. 数理统计——随机过程
  9. 易用宝项目记录day8-Excel的导入导出
  10. STM8S003F3 开发环境搭建
  11. 如何用计算机函数来求加权总分,Excel如何计算加权总分,函数公式还是超级表厉害...
  12. 开源机器人SmallRobotArm机器人源码解读
  13. 低光图像增强(Low-light image enhancement)文章整理
  14. outlook 加载配置项_如何在Outlook中启用加载项和连接器
  15. ie8兼容性视图灰色修复_IE8兼容性视图怎么关闭 IE8兼容性视图设置关闭方法
  16. 初识阿里云(云计算)--发展历程和技术架构、地域和可用区
  17. linux 搜狗输入法 太慢,【分享】ibus使用搜狗输入法词库后,反应慢的解决方法...
  18. 修改内核参数 dad_transmits
  19. java骑车与走路_骑行/步行路线规划
  20. C++编程基础入门知识(最详细建议收藏)

热门文章

  1. 【JavsScript】XMLHttpRequest Level 2 使用指南
  2. [TWAIN] 3句话总结TWAIN在Windows Server 2008 R2 SP1的使用
  3. CentOS 5.5 安装VirtualBox
  4. Linux 防火墙配置
  5. SelfUpdate 树不起作用
  6. 一、基础篇--1.3进程和线程-CountDownLatch、CyclicBarrier 和 Semaphore
  7. MyEclipse 使用文档
  8. (第一周)2018091-2 博客作业
  9. 初识面向对象(钻石继承,super,多态,封装,method,property,classmethod,staticmethod)...
  10. centos 挂载与卸载硬盘