企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 特殊变量及函数(Special Variables and Functions) 有一些变量和函数存在于¥全局上下文中。主要用来提供一些区块链当前的信息。 ### 区块和交易的属性(Block And Transaction Properties) - `block.blockhash(uint blockNumber) returns (bytes32)`,给定区块号的哈希值,只支持最近256个区块,且不包含当前区块。 - `block.coinbase (address)` 当前块矿工的地址。 - `block.difficulty (uint)`当前块的难度。 - `block.gaslimit (uint)`当前块的`gaslimit`。 - `block.number (uint)`当前区块的块号。 - `block.timestamp (uint)`当前块的时间戳。 - `msg.data (bytes)`完整的调用数据(calldata)。 - `msg.gas (uint)`当前还剩的`gas`。 - `msg.sender (address)`当前调用发起人的地址。 - `msg.sig (bytes4)`调用数据的前四个字节(函数标识符)。 - `msg.value (uint)`这个消息所附带的货币量,单位为`wei`。 - `now (uint)`当前块的时间戳,等同于`block.timestamp` - `tx.gasprice (uint)` 交易的`gas`价格。 - `tx.origin (address)`交易的发送者(完整的调用链) `msg`的所有成员值,如`msg.sender`,`msg.value`的值可以因为每一次外部函数调用,或库函数调用发生变化(因为`msg`就是和调用相关的全局变量)。 如果你想在库函数中,用`msg.sender`实现访问控制,你需要将`msg.sender`做为参数(就是说不能使用默认的`msg.value`,因为它可能被更改)。 为了可扩展性的原因,你只能查最近256个块,所有其它的将返回0.