solidity文档--特殊量

相信你在接触智能合约的时候也会看到诸如msg.sender、msg.value这些对象,但是搜索全文又没有找到定义。其实这些都是系统内置的一些量,比如msg.sender表示当前调用合约的地址,msg.value则表示当前地址的wei值。下面将罗列常见的系统量。
以太单位
一个数字后面跟着wei, finney, Szabo, ether等后缀,这些就是表示货币单位,不同的单位是可以转换的,不加任何后缀的货币默认为wei,这些单位的换算如下:

1 ether == 10^3 finney == 10^6szabo == 10^18 wei

时间单位
一个数字后面跟着seconds, minutes, hours, days, weeks, years等后缀,这些就是时间单位,默认单位为seconds,不同的时间单位可以互相转换,转换规则如下:

1 == 1 seconds1 minutes == 60 seconds1 hours == 60 minutes
•   1 days == 24 hours
•   1 weeks == 7 days
•   1 years == 365 days

需要注意的是并不是每一年都是365天,每天都是24小时,所以如果需要使用精确日历库需要外部预言(oracle)来更新。
特殊变量

•   block.coinbase (address):当前块的矿工的地址
•   block.difficulty (uint):当前块的难度系数
•   block.gaslimit (uint):当前块gas限量
•   block.number (uint):当前块编号
•   block.blockhash (function(uint) returns (bytes32)):指定块的哈希值——最新的256个块的哈希值
•   block.timestamp (uint):当前块的时间戳
•   msg.data (bytes):当前调用者完整的calldatamsg.gas (uint):当前调用者剩余的gas量
•   msg.sender (address):当前调用者的地址
•   msg.sig (bytes4):calldata的前四个字节(即函数标识符)msg.value (uint):所发送的消息中wei的数量
•   now (uint):当前块时间戳(block.timestamp的别名)tx.gasprice (uint):交易的gas价格
•   tx.origin (address):交易发送方(完整的调用链)

你可能感兴趣的:(智能合约,区块链)