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 官方文档。
对腾讯云区块链服务平台 TBaaS的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?