`

内置属性

 
阅读更多
blockhash(uint blockNumber) returns (bytes32):指定区块的区块哈希——仅可用于最新的 256 个区块且不包括当前区块
block.chainid (uint): 当前链 id
block.coinbase ( address ): 挖出当前区块的矿工地址
block.difficulty ( uint ): 当前区块难度
block.gaslimit ( uint ): 当前区块 gas 限额
block.number ( uint ): 当前区块号
block.timestamp ( uint): 自 unix epoch 起始当前区块以秒计的时间戳
gasleft() returns (uint256) :剩余的 gas
msg.data ( bytes ): 完整的 calldata
msg.sender ( address ): 消息发送者(当前调用)
msg.sig ( bytes4 ): calldata 的前 4 字节(也就是函数标识符)
msg.value ( uint ): 随消息发送的 wei 的数量
tx.gasprice (uint): 交易的 gas 价格
tx.origin (address payable): 交易发起者(完全的调用链)


// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.9.0;
import "hardhat/console.sol";

contract Internal{
    constructor() payable {
        console.log("blockhash:");
        console.logBytes32(blockhash(block.number));
        console.log("chain id:",block.chainid);
        console.log("coinbase:",block.coinbase);
        console.log("difficulty:",block.difficulty);
        console.log("gaslimit:",block.gaslimit);
        console.log("number:",block.number);
        console.log("gasleft():",gasleft());
        console.log("msg.data:");
        console.logBytes(msg.data);
        console.log("msg.sender:",msg.sender);
        console.log("msg.sig:");
        console.logBytes4(msg.sig);
        console.log("msg.value:",msg.value);
        console.log("gasprice:",tx.gasprice);
        console.log("tx.origin:",tx.origin);
    }
}


const { expect } = require("chai");
const { ethers } = require("hardhat");


describe("contract", function () {
  it("test", async function () {
    const MyContract = await ethers.getContractFactory("Internal");
    const myContract = await MyContract.deploy();
  });
});



  contract
blockhash:
0x0000000000000000000000000000000000000000000000000000000000000000
chain id: 31337
coinbase: 0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e
difficulty: 131072
gaslimit: 30000000
number: 1
gasleft(): 144366
msg.data:
0x
msg.sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
msg.sig:
0x00000000
msg.value: 0
gasprice: 1875000000
tx.origin: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
分享到:
评论

相关推荐

    初学者python笔记(类的内置属性)

    类不仅定义了对象的结构,还包含了一些内置的方法和属性,这些方法和属性可以帮助我们更好地控制对象的行为。以下是对给定标题和描述中提到的一些关键知识点的详细说明: 1. **isinstance与issubclass判断方法** -...

    python3 面向对象__类的内置属性与方法的实例代码

    本篇文章将深入探讨Python 3中类的内置属性和方法,并通过实例代码进行演示。 首先,所有Python类都是`object`类的子类,即使没有明确声明。`object`类是所有类的基础,包含了一些基本的方法,如`__delattr__`, `__...

    使用javascript操纵HTML元素的自定义属性

    为HTML元素添加一自定义的属性非常方便,只须将其加到尖括号中即可,与内置属性地位相等。 &lt;br /&gt;如我们要为TextBox元素添加属性idvalue: &lt;br /&gt;只须在原来的控件后面加上:idvalue=”…”,成为: ...

    Web前端开发技术-属性操作.pptx

    JavaScript中设置自定义属性 ...属性`的方式获取DOM对象的内置属性值,例如`div.id`会返回`div`元素的ID。然而,对于自定义属性,我们需要使用`element.getAttribute('属性')`方法来获取其值。例如: ```html ...

    Android 自定义属性动画Demo

    1. **自定义属性**: 要对自定义视图的非Android内置属性进行动画操作,你需要通过`Animatable2`接口和`AnimatorProvider`来实现。 2. **TypeEvaluator**: 这是一个接口,用于定义动画值如何随着时间变化。例如,你...

    AttributeSet自定义View属性获取

    有时,我们可能需要获取与Android内置属性关联的值,如`android:layout_width`。这时,我们可以使用`getAttributeIntValue()`方法,传入Android框架的命名空间URL和属性名称: ```java int width = a....

    Ecshop 商品属性用图片来代替

    1. **扩展属性系统**:首先,我们需要扩展 Ecshop 的内置属性系统,添加支持图片类型的属性。这涉及到对数据库表结构的修改,增加存储图片路径的字段,并更新相关的数据操作函数。 2. **前端界面调整**:在商品详情...

    VB控件属性大全(最新最全)

    7. 自定义属性:除了内置属性,开发者还可以创建自定义属性,扩展控件功能。 8. 探索和学习:"VB控件属性大全【珍藏版】.doc"文档提供了详细且全面的参考资料,不仅有属性的解释,可能还包含实例代码和使用技巧,是...

    关于属性窗口界面的相关环境文件

    属性按照字母顺序排列,包括内置属性和自定义属性。 3. **属性详情**:在选定一个属性后,它的值会在右侧显示,可以在这里进行编辑。对于某些属性,如颜色或字体,还会提供一个下拉选择器或对话框来方便设置。 4. ...

    Excel-VBA宏编程实例源代码-获取文档的属性.zip

    3. **Document Properties**:Excel文档有多种属性,包括内置属性(如Title、Subject、Author、Keywords等)和自定义属性。内置属性是每个文档默认拥有的,而自定义属性则可以根据需要添加。 4. **获取属性的方法**...

    第14章 内置对象1

    Global对象还包含了多个内置属性,例如`undefined`、`NaN`、`Object`、`Array`、`Function`等,它们分别代表了未定义值、非数字值、对象构造函数、数组构造函数和函数构造函数。 接下来,我们讨论Math对象,它是...

    delphi获取控件句柄,并获取属性源码

    对于内置属性,可以直接通过Delphi的对象属性访问器获取;对于自定义属性,可能需要通过反射或者其他机制。例如,获取一个`TButton`的`Caption`属性: ```delphi if ControlUnderMouse is TButton then begin var ...

    Object方法和属性1

    在JavaScript中,大部分由常规方式创建的属性都是可枚举的,但某些内置属性则不是。例如,`toString()`和`valueOf()`等方法就是不可枚举的。当调用`object.propertyIsEnumerable('property')`时,如果属性是可枚举的...

    Excel-VBA宏编程实例源代码-设置工作簿文档属性信息.zip

    4. **自定义属性**:除了内置属性外,还可以创建自定义属性,通过`ActiveWorkbook.CustomDocumentProperties`进行操作。例如,添加一个新的字符串属性: ```vba Dim newProp As DocumentProperty Set newProp = ...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    &lt;br&gt;2007/7/20 Version 3.2.2 Stable &lt;br&gt;Updates: 1) 去掉了多个无用的控件内置属性,精简了控件的体积,并且优化了代码。 2) 增加ToolBarBgImg的内置属性,此属性用于设置控件菜单栏的背景图片。...

    关于js中for in的缺陷浅析.docx

    3. **内置属性与方法**:如文件中提到,`for...in`并不会遍历对象的内置属性(如`toString`、`valueOf`等),除非这些属性被重写。在某些浏览器中,例如IE6到IE8,即使重写了内置属性,`for...in`也不会将其包含在...

    Android 自定义View 之 自定义属性 demo 修改版

    在XML布局文件中,我们可以像使用系统内置属性一样使用自定义属性: ```xml android:layout_width="wrap_content" android:layout_height="wrap_content" app:custom_color="@color/custom_color_value" app:...

    winform 属性源码

    每个WinForm控件都有许多内置属性,例如: 1. **Text**:这是最常见的属性,用于设置控件上显示的文本,如Button、Label等。 2. **Size**和**Location**:这两个属性分别定义了控件的大小和在父容器中的位置。Size...

    实验3.内置对象与属性范围练习[1].pdf

    ### 实验3:内置对象与属性范围练习 本次实验主要围绕内置对象及其属性范围进行实践操作,通过具体的案例深入理解并掌握内置对象的功能与应用场景。内置对象是Web开发中的重要组成部分,尤其在Java Web开发中扮演着...

    获取Word文档的作者和主题.docx

    在代码中,我们使用 Word.Application 对象来打开 Word 文档,然后使用 BuiltInDocumentProperties 对象来获取文档的内置属性。在 BuiltInDocumentProperties 对象中,我们可以获取作者信息。使用 InvokeMember 方法...

Global site tag (gtag.js) - Google Analytics