蚂蚁区块链合约平台为合约开发者提供一些新的特性接口支持,包括对区块数据获取、交易数据获取、加密方法的支持。
区块数据接口函数
-
block.blockhash(uint blockNumber) returns (bytes32):传入
blockNumber
,返回块的哈希值。 -
block.gaslimit (uint):系统中的 gas 最大值。
-
block.number (uint):最新已经形成的区块高度,注意不是当前正在形成的区块高度。
-
block.timestamp (uint):最新已经形成的区块时间戳,注意不是当前正在形成的区块时间戳。
-
now (uint):
block.timestamp
的别名。
交易数据接口函数
以下方法介绍中,括号内是返回的结果数据类型,并不是传入参数。
-
msg.data (bytes):用户的输入数据。
-
msg.gas (uint):用户交易中的 gas 值。
-
msg.sender (identity):用户交易中的发送方。
-
msg.sig (bytes4):用户交易输入数据的前四字节。
-
msg.value (uint):用户交易中的 gas 值。
蚂蚁区块链合约平台还支持查询交易哈希,示例如下:
tx.txhash (identity / uint256)
可通过该方法获取当前交易的哈希值,0.4.24版本中类型为 identity,0.6.4及以上版本中类型为 uint256。
加密接口函数
sha256
-
函数原型
sha256(bytes data) returns(bytes32 result) ;
-
请求参数
参数 |
必选 |
类型 |
说明 |
data |
是 |
bytes |
要加密的数据 |
-
返回值
参数 |
必选 |
类型 |
说明 |
result |
是 |
bytes |
sha256 加密结果 |
说明
:蚂蚁区块链合约平台对
sha256
加密函数进行了修改,采用 OpenSSL 加密库进行实现。
ecrecover
-
函数原型
ecrecover(bytes32 hash, uint8 v, bytes32 r,bytes s) returns(identity id) ;
-
请求参数
参数 |
必选 |
类型 |
说明 |
hash |
是 |
bytes32 |
签名数据的哈希结果 |
r |
是 |
bytes32 |
签名前 32 字节 |
s |
是 |
bytes32 |
签名后 32 字节 |
v |
是 |
uint8 |
签名最后一字节 |
-
返回值
参数 |
必选 |
类型 |
说明 |
id |
是 |
identity |
账户 ID |
说明:蚂蚁区块链合约平台对 ecrecover 加密函数进行了修改,通过签名数据的哈希结果和签名获得公钥后,采用 sha256 加密函数对公钥进行加密,并将加密的结果作为 ID 返回给用户。
ripemd160
在蚂蚁区块链合约平台中,不提供
ripemd160
加密函数库。