Solidity 内建对象详解(2023版)

内建对象可以分为两个,分别为block和msg;

block:区块信息

  • block.coinbase (address): 当前块的矿工的地址
  • block.difficulty (uint):当前块的难度系数
  • block.gaslimit (uint):当前块gas的上限
  • block.number (uint):当前块编号
  • block.blockhash (function(uint) returns (bytes32)):函数,返回指定块的哈希值,已经被内建函数blockhash所代替
  • block.timestamp (uint):当前块的时间戳

msg:调用时数据

  • msg.data (bytes):完整的calldata
  • msg.gas (uint):剩余的gas量
  • msg.sender (address):消息的发送方(调用者)(最为重要)
  • msg.sig (bytes4):calldata的前四个字节(即函数标识符)
  • msg.value (uint):所发送的消息中wei的数量,联盟链中无需使用此数据
     

计算随机数,示例代码如下:

// SPDX-License-Identifier: Apache-2.0

pragma solidity ^0.8.7;

contract builtin_demo{
    address public admin;
    bytes32 public hash;
    uint256 random;

    constructor(){
        admin=msg.sender;   //msg.sender是调用者
        hash=blockhash(0);  //返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值