合约 API 列表(Solidity)

最近更新时间:2022-04-15 15:12:09

ChainMake 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 官方文档

目录