一起学智能合约之八API

一起学智能合约之八API
就像学习任何一门语言,官方的库总是少不了,如何调用官方的库,其实就是API接口的调用,在Solidity中也有相关的API。
Solidity的API分为以下几类:
1、区块和交易的属性
2、错误处理
3、数学及加密功能
4、地址相关
5、合约相关

一、区块和交易
1、block.blockhash(uint blockNumber) returns (bytes32):返回给定区块号的哈希值,支持最近256个区块(不包含当前区块)。
2、block.coinbase (address): 当前块Miner地址。
3、block.difficulty (uint):当前块的难度。
4、block.gaslimit (uint):当前块的gaslimit。
5、block.number (uint):当前区块的块号。
6、block.timestamp (uint): 当前块的Unix时间戳(从1970/1/1 00:00:00 UTC开始所经过的秒数)
7、msg.data (bytes): 完整的调用数据(calldata)。
8、msg.gas (uint): 当前还剩的gas。
9、msg.sender (address): 当前调用发起人的地址。
10、msg.sig (bytes4):调用数据(calldata)的前四个字节(例如为:函数标识符)。
11、msg.value (uint): 消息所附带的以太币,单位为wei。
12、now (uint): 当前块的时间戳(block.timestamp的别名)
13、tx.gasprice (uint) : 交易的gas价格。
14、tx.origin (address): 交易的发送方(全调用链)
二、错误处理
1、assert(bool condition)
用于判断内部错误,条件不满足时抛出异常
2、require(bool condition):
用于判断输入或外部组件错误,条件不满足时抛出异常
3、revert():
终止执行并还原改变的状态
三、数学及加密
1、addmod(uint x, uint y, uint k) returns (uint):
计算(x + y) % k,加法支持任意的精度且不会在2*256处溢出,从0.5.0版本开始断言k != 0。 2、mulmod(uint x, uint y, uint k) returns (uint): 计算 (x y) % k, 乘法支持任意的精度且不会在2256处溢出, 从0.5.0版本开始断言k != 0。
3、keccak256(…) returns (bytes32):
使用以太坊的(Keccak-256)计算HASH值。紧密打包参数。
4、sha256(…) returns (bytes32):
使用SHA-256计算hash值,紧密打包参数。
5、sha3(…) returns (bytes32):
keccak256的别名
6、ripemd160(…) returns (bytes20):
使用RIPEMD-160计算HASH值。紧密打包参数。
7、ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address):
通过椭圆曲线签名来恢复与公钥关联的地址,或者在错误时返回零。可用于签名数据的校验,如果返回结果是签名者的公匙地址,那么说明数据是正确的。

四、地址相关
1、<address>.balance (uint256):
Address的余额,以wei为单位。
2、<address>.transfer(uint256 amount):
发送给定数量的ether到某个地址,以wei为单位。失败时抛出异常。

3、<address>.send(uint256 amount) returns (bool):
发送给定数量的ether到某个地址,以wei为单位, 失败时返回false。
4、<address>.call(…) returns (bool):
发起底层的call调用。失败时返回false。
5、<address>.callcode(…) returns (bool):
发起底层的callcode调用,失败时返回false。
不鼓励使用,未来可能会移除。
6、<address>.delegatecall(…) returns (bool):
发起底层的delegatecall调用,失败时返回false

五、合约相关
1、this(当前合约的类型):
表示当前合约,可以显式的转换为Address
2、selfdestruct(address recipient):
销毁当前合约,并把它所有资金发送到给定的地址。
3、suicide(address recipient):
selfdestruct的别名
六、总结
相关的API会不断的迭代,如果有不清楚的,最好去官网看一看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值