平台接口函数

蚂蚁区块链合约平台为合约开发者提供一些新的特性接口支持,包括对区块数据获取、交易数据获取、加密方法的支持。

区块数据接口函数

  • 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 加密函数库。

阿里云首页 区块链服务 BaaS 相关技术圈