Solidity全局属性和方法

本文详细介绍了Solidity编程语言中的特殊变量,如msg、tx、block和address,以及ABI编码、错误处理机制、合约相关操作和数学密码学函数。重点讲解了msg.sender、tx.origin、block.timestamp等关键概念,还涵盖了ABI解码、encodeWithSignature方法的使用,以及assert、require和revert的错误处理策略。此外,还讨论了selfdestruct和数学函数如addmod、mulmod在智能合约中的应用。
摘要由CSDN通过智能技术生成

由于版本更新比较快。过去一部分写法,现在使用0.5.10版本开发合约时,部分报错。再去翻翻官方的最新的文档。

一、特殊变量

msg

  • msg.sender(address) 消息发送者(当前调用)
  • msg.value (uint) 随消息发送的 wei 的数量
  • msg.data (bytes) 完整的 calldata
  • msg.gas (uint) 剩余 gas ,( 弃!)推荐使用gasleft()
  • msg.sig (bytes4) calldata 的前 4 字节(也就是函数标识符)

tx

  • tx.gasprice (uint) 交易的 gas 价格
  • tx.origin (address) 交易发起者(完全的调用链)

block

  • block.blockhash(uint blockNumber) (bytes32) 指定区块的区块哈希,仅可用于最新的 256 个区块且不包括当前区块,( 弃!)推荐使用blockhash(uint blockNumber)
  • block.coinbase (address): 挖出当前区块的矿工地址
  • block.difficulty (uint): 当前区块难度
  • block.gaslimit (uint): 当前区块 gas 限额
  • block.number (uint): 当前区块号
  • block.timestamp (uint): 自 unix epoch 起始当前区块以秒计的时间戳

address

  • <address>.balance (uint256): 以 Wei 为单位的地址类型的余额。
  • <address payable>.transfer(uint256 amount): 向地址类型发送数量为 amount 的
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值