interface IProofOfHumanity {
// Core verification functions
function isHuman(address _account) external view returns (bool);
function isClaimed(bytes20 _humanityId) external view returns (bool);
function humanityOf(address _account) external view returns (bytes20);
function boundTo(bytes20 _humanityId) external view returns (address);
// Detailed information function
function getHumanityInfo(bytes20 _humanityId) external view returns (
bool vouching,// Is this humanity currently vouching for someone
bool pendingRevocation,// Is there a pending revocation request
uint48 nbPendingRequests,// Number of pending requests in challenging phase
uint40 expirationTime,// When the humanity expires
address owner,// Current owner address
uint256 nbRequests// Total number of requests made
);
// Statistics and request information
function getClaimerRequestId(address _claimer) external view returns (uint256);
function getNumberOfVouches(bytes20 _humanityId, uint256 _requestId) external view returns (uint256);
function getHumanityCount() external view returns (uint256);
}