LibAddress.sol¶
LibAddress提供了address数据类型的基本操作,相关API列表如下。
使用方法¶
首先需要通过import引入LibAddresss类库,然后通过”.”进行方法调用,如下为调用isEmptyAddress方法的例子:
pragma solidity >=0.4.24 <0.6.11;
import "./LibAddress.sol"
contract test {
function f(address account) returns(bool) {
if(!LibAddress.isEmptyAddress(account)) {
//TODO
}
}
}
API列表¶
编号 | API | API描述 |
---|---|---|
1 | isContract(address account) internal view returns(bool) | 判断地址是否为合约地址 |
2 | isEmptyAddress(address addr) internal pure returns(bool) | 判断地址是否为空地址 |
3 | addressToBytes(address addr) internal pure returns (bytes memory) | 将address转化为bytes类型 |
4 | bytesToAddress(bytes addrBytes) internal pure returns (address) | 将bytes类型转化为地址类型 |
5 | addressToString(address addr) internal pure returns(string) | 将地址类型转化为string类型 |
6 | stringToAddress(string data) internal returns(address) | 将string类型转化为address类型 |
API详情¶
1. isContract 方法¶
isContract方法用于判断一个address是否为合约地址。
参数¶
- account:地址
返回值¶
- bool:返回bool型,当为合约账户地址时,返回true,反之,返回false。
实例¶
address myContract = 0xE0f5206BBD039e7b0592d8918820024e2a7437b9;
if(LibAddress.isContract(myContract)){
//TODO:
}
2. isEmptyAddress 方法¶
isEmptyAddress方法用于判断一个address是否为空地址。
参数¶
- addr:地址
返回值¶
- bool:返回bool型,当为空地址时,返回true,反之,返回false。
实例¶
address addr = address(0);
if(!LibAddress.isEmptyAddress(addr)){
//TODO:
}
3. addressToBytes 方法¶
addressToBytes方法可以把一个地址类型转化为bytes类型。
参数¶
- addr:地址
返回值¶
- bytes:返回转化后的bytes值。
实例¶
address addr = 0xE0f5206BBD039e7b0592d8918820024e2a7437b9;
bytes memory bs = LibAddress.addressToBytes(addr);
//TODO:
4. bytesToAddress 方法¶
bytesToAddress方法可以把一个bytes类型转化为address类型。
参数¶
- bytes:字节数组。要求20字节。
返回值¶
- address:返回转化后的address值。
实例¶
bytes memory bs = new bytes(20);
address addr = LibAddress.bytesToAddress(bs);
//TODO: