第1节:全局变量(block.timestamp等)
小白入门:https://github.com/dukedaily/solidity-expert ,欢迎star转发,文末加V入群。
职场进阶: https://dukeweb3.com
区块和交易的属性
描述区块链信息的全局变量,包括:
函数 | 含义 | 备注 |
---|---|---|
blockhash(uint blockNumber) | (byte32)哈希值 | |
block.coinbase | (address) 当前块矿工的地址 | |
block.difficulty | (uint)当前块的难度 | |
block.gaslimit | (uint)当前块的gaslimit | |
block.number | (uint)当前区块的块号 | |
block.timestamp | (uint)当前块的时间戳 | 常用 |
gasleft() | (uint)当前还剩的gas | |
tx.origin | (address)交易的原始发送者的地址,只能是EOA | 常用 |
msg.sender | (address)当前调用发起人的地址(可能是合约CA,也可能是EOA) | 常用 |
msg.sig | (bytes4)调用数据的前四个字节(函数标识符) | 常用 |
msg.value | (uint)这个消息所附带的货币量,单位为wei | 常用 |
msg.data | (bytes)完整的调用数据(calldata) | 常用 |
tx.gasprice | (uint) 交易的gas价格 |
注:
- EOA:Externally Owned Account,与一个私钥一一对应,例如小狐狸里面的account1就是EOA
- CA:Contract Account,合约账户,没有私钥与之对应,我们部署的合约就是一个CA,它也可以持有资金。