> 文档中心 > 【区块链实战】Solidity 如何访问合约内置对象

【区块链实战】Solidity 如何访问合约内置对象

目录

一、简介

二、知识点

智能合约

内置对象

状态变量

智能合约的运行

三、菜鸟实战

四、运行结果


一、简介

Solidity 是面向对象的语言,由于合约是运行在虚拟机中,因此在合约里面可以访问区块链系统本生的一些内置数据,比如 block 区块信息,合约被调用时的 msg 交易信息。

这些对象是区块链系统提供的内置对象,位于全局命名空间,可以直接使用。

实战场景: 在智能合约中访问内置对象。

二、知识点

  • 智能合约

  • 内置对象

  • 状态变量

  • 智能合约的运行

三、菜鸟实战

// SPDX-License-Identifier: GPL-3.0// Author: 菜鸟实战// Description: 智能合约如何使用内置对象// 编译器版本pragma solidity >=0.7.0 <0.9.0;// 知识点// # 智能合约// # 内置对象// # 状态变量// # 智能合约的运行// 合约名称contract ObjectAction {    // public 变量会自动提供查询方法    address public VarAdmin;    // 地址类型状态变量    uint256 public VarRandNum;   // 部署时生成的随机数    bytes32 public VarHash;     // hash 值    constructor() public { VarAdmin = msg.sender;  // 调用者 VarHash = blockhash(0); // 返回 0 块的 hash 值 // 使用 时间戳,调用者,hash 共同模拟生成一个随机值,得到一个 100 以内的数 VarRandNum = uint256(keccak256(abi.encode(VarAdmin, VarHash, block.timestamp))) % 100;    }}

四、运行结果

编译成功后部署运行