solidity-msg.sender到底是什么?

这篇具有很好参考价值的文章主要介绍了solidity-msg.sender到底是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

msg.sender到底是什么?

msg.sender:

  • 当前钱包的发起方。

  • msg是全局的,msg.sender是全局变量。

  • from就是account,发起消息的钱包地址,永远等于msg.sender

测试代码:

// SPDX-License-Identifier: MIT
pragma solidity ^0.4.0;

contract Test {
  address public _owner;  // / 第一次部署合约时,钱包地址存储到_owner
  uint public _number = 10;

  // 构造函数
  function Test() {
    _owner = msg.sender;    
  }

  // get方法
  function msgSenderAddress() constant returns (address) {
    return msg.sender;
  }

  // set方法, 修改number的值
  function setNumberAdd1() {
    _number = _number + 5;
  }
  // set方法, 修改number的值
  function setNumberAdd2() {
    if(_owner == msg.sender){
      _number = _number + 10;
    }
    
  }
}

部署Test合约(地址5b…)去测试那些属性和函数返回值,切换到另一个account(4b…),再测试那些属性和函数返回值。
运行结果:

solidity-msg.sender到底是什么?
切换account后:
solidity-msg.sender到底是什么?
总结:

  • msg.sender是动态的,"run"时选择的是哪个account(钱包地址),msg.sender就是哪个地址。

  • _owner的值不变,在构造函数里始终保存的是第一次部署合约时的msg.sender,owner是第一次部署合约时的地址。文章来源地址https://www.toymoban.com/news/detail-504038.html

到了这里,关于solidity-msg.sender到底是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Solidity中this、msg、block、tx、gas的用法

    目录 前言 1.this 2.msg 3.block 4.tx 5.gas 总结 在智能合约编程中,全局变量扮演着关键的角色,提供了访问外部信息和交易上下文的重要途径。本文将重点介绍 Solidity 中的五个重要全局变量: this 、 msg 、 block 、 tx 和 gas ,以及它们在智能合约中的用法和作用。通过深入了解这些

    2024年04月09日
    浏览(55)
  • Solidity 关键词说明(payable transfer event modifier msg external public view pure memory)

    在 Solidity 中, payable 是一个,用于表示函数可以接收以太币(ether)的转账。如果一个函数被声明为 payable ,那么它就可以接收以太币的转账,而不仅仅是使用以太币作为参数进行函数调用。 例如,下面是一个声明了 payable 的函数: 在上面的代码中,函数 buy

    2024年02月04日
    浏览(46)
  • send()函数的用法;MSG_NOSIGNAL什么含义?有什么作用?以及flags中参数类型有哪些各自又起到什么作用?

    目录  1.send()函数的基本用法(入门级): 2.MSG_NOSIGNAL什么含义?有什么作用? 3.send()函数中第4个flags中参数类型有哪些各自又起到什么作用? send() 函数是一个用于在 TCP/IP 网络上发送数据的系统调用函数。它通常在客户端和服务器端程序中被使用。 send() 函数的语法如下: 其

    2024年02月07日
    浏览(45)
  • 什么是Solidity?

    Solidity 是一种用于编写智能合约的高级编程语言,主要用于以太坊区块链平台。它由以太坊基金会的 Gavin Wood 等人设计和开发,支持面向对象、面向协议和函数式编程范式。Solidity 的语法类似于 JavaScript 和 C++,但也有着自己独特的特征,如可变性、可见性和事件等。Solidity

    2024年04月09日
    浏览(42)
  • 到底什么是哈希值,哈希值到底是怎么生成的,有什么用?

    哈希值,即HASH值,通常用一个短的随机字母和数位组成的字串来代表,是一组任意长度的输入信息通过哈希算法得到的“数据指纹”,即进行加密运算得到的一组二进制值。 因为电脑在底层机器码是采用二进位的模式,因此通过哈希算法得到的任意长度的二进位值映像为较

    2024年02月19日
    浏览(49)
  • Nginx到底是什么,他能干什么?

    目录 Ngnix是什么,它是用来做什么的呢? 一。Nginx简介 二,为什么要用Nginx呢? 二。Nginx应用 1.HTTP代理和反向代理  2.负载均衡 Ngnix是什么,它是用来做什么的呢? Nginx是enginex的简写,是一款很优秀的开源的高性能HTTP和反向代理服务器,由于它是用C语言写的,所以速度非常快

    2024年02月11日
    浏览(37)
  • .gitignore到底是什么?有什么用?

    研究者在github等网站0下载代码的时经常会看到一个“.gitinore”文件,它到底是一个什么东西呢? 在弄懂.gitignore文件是什么及作用之前,我们先要了解概念: Git项目是什么? 在上一段中我们提到了Git项目,那Git是什么呢?Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,

    2024年02月07日
    浏览(39)
  • 【Linux基本指令(3)】几十条指令快速入手Linux/到底什么是日志?/指令的运行原理到底是什么?

    本文思维导图: head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中而 tail 想当然尔就是看档案的结尾。 语法: head [参数]… [文件]… 功能: head 用来显示档案的开头至标准输出中,默认head命令打印

    2024年02月06日
    浏览(41)
  • 区块链到底是什么,为什么这么火爆

    一、相关背景介绍 互联网上的贸易,几乎都需要借助可资信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。 区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术。它基于密码学原理而不基于信用,使得任何达成

    2023年04月08日
    浏览(48)
  • 云原生到底是什么意思

    云原生到底是什么意思? 随着云计算技术的迅速发展,云原生成为了一个备受关注的话题。云原生不仅仅是一种新的软件架构,更是一种变革性的开发方法论。本文将深入解析云原生的意义、特点以及为什么它在现代软件开发中变得如此重要。 1. 容器化 云原生应用程序通常

    2024年01月17日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包