有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
ChainMaker Solidity 语言版本智能合约有丰富的 API 接口,供用户在撰写智能合约的时候与链进行交互,代码实现详情可以参考 API 接口代码实现
从逻辑方面划分,可将 API 划分为以下类型:

交易信息提取

接口
说明
msg.data -> bytes
获取调用合约的完整数据
msg.sender -> address
获取消息发送者地址
tx.origin -> address
获取交易发送者地址
tx.gasprice -> uint
获取交易的 gas 价格

账本交互

接口
说明
blockhash(uint blockNumber) -> bytes32
获取指定区块高度的哈希值
block.gaslimit -> uint
获取当前区块的 gas 限制
block.number -> uint
获取当前区块的高度
block.timestamp -> uint
获取当前区块的时间戳

异常处理

接口
说明
assert(bool condition)
断言给定条件是否成立,如果不满足条件,则状态更改恢复
require(bool condition)
如果不满足条件,则返回
require(bool condition, string memory message)
如果不满足条件,则返回,并提供错误消息
revert()
中止执行并还原状态更改
revert(string memory reason)
中止执行并还原状态更改,并提供错误消息

数学和密码函数类

接口
说明
addmod(uint x, uint y, uint k) -> uint
计算 (x+y)%k
mulmod(uint x, uint y, uint k) -> uint
计算 (x*y)%k
keccak256(bytes memory) -> bytes32
计算给定输入的 Keccak-256 哈希
sha256(bytes memory) -> bytes32
计算给定输入的 sha256 哈希
ripemd160(bytes memory) -> bytes32
计算给定输入的 RIPEMD-160 哈希
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) -> address
从椭圆曲线签名中恢复与公钥关联的地址

ChainMake Solidity 语言版本智能合约完全兼容 EVM,Solidity 的具体使用详情可参见 Solidity 官方文档