讲一下 solidity
的 API
。
- 区块和交易
- ABI 编码
- 错误处理
- 数学与加密
- 地址与合约
区块和交易
blockhash(uint blockNumber) returns (bytes32)
:返回给定区块号的哈希值,只支持最近256
个区块,且不包含当前区块。block.coinbase (address)
: 当前块矿工的地址。block.difficulty (uint)
:当前块的难度。block.gaslimit (uint)
:当前块的gaslimit
。block.number (uint)
:当前区块的块号。block.timestamp (uint)
: 当前块的Unix时间戳
(从1970/1/1 00:00:00 UTC
开始所经过的秒数)gasleft() (uint256)
: 获取剩余gas
。msg.data (bytes)
: 完整的调用数据(calldata
)。用户发生的转账之外的内容,可以是文字备注之类的,但是如果接受信息的是智能合约那合约会对data
进行解析,并执行date
中指定的函数。msg.data
不等于inputs
msg.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)
: 交易的发送者(全调用链)
1 | pragma solidity ^0.4.18; |