pragmasolidity^0.5.6;/// @title EIP-XXXX zk-SNARK 验证器注册表标准
/// @dev See https://github.com/EYBlockchain/zksnark-verifier-standard
/// Note: the ERC-165 identifier for this interface is 0xXXXXXXXXX.
/// ⚠️ TODO: Set the interface identifier
interfaceEIP-XXXX/* is ERC165 */{eventNewProofSubmitted(bytes32indexed_proofId,uint256[]_proof,uint64[]_inputs);eventNewVkRegistered(bytes32indexed_vkId);eventNewVerifierContractRegistered(addressindexed_contractAddress);eventNewAttestation(bytes32indexed_proofId,addressindexed_verifier,boolindexed_result);functiongetVk(bytes32_vkId)externalreturns(uint256[]memory);functionregisterVerifierContract(address_verifierContract)externalreturns(bool);functionregisterVk(uint256[]calldata_vk,address[]calldata_verifierContracts)externalreturns(bytes32);functionsubmitProof(uint256[]calldata_proof,uint64[]calldata_inputs,bytes32_vkId)externalreturns(bytes32);functionsubmitProof(uint256[]calldata_proof,uint64[]calldata_inputs,bytes32_vkId,address_verifierContract)externalreturns(bytes32);functionsubmitProofAndVerify(uint256[]calldata_proof,uint64[]calldata_inputs,bytes32_vkId,address_verifierContract)externalreturns(bytes32);functionattestProof(bytes32_proofId,bytes32_vkId,bool_result)external;functionattestProofs(bytes32[]calldata_proofIds,bytes32[]calldata_vkIds,bool[]calldata_results)external;functionchallengeAttestation(bytes32_proofId,uint256[]calldata_proof,uint64[]calldata_inputs,address_verifierContract)external;functioncreateNewVkId(uint256[]calldata_vk)externalpurereturns(bytes32);functioncreateNewProofId(uint256[]calldata_proof,uint64[]calldata_inputs)externalpurereturns(bytes32);}
接口
interfaceERC165{/// @notice Query if a contract implements an interface
/// @param interfaceID The interface identifier, as specified in ERC-165
/// @dev Interface identification is specified in ERC-165. This function
/// uses less than 30,000 gas.
/// @return `true` if the contract implements `interfaceID` and
/// `interfaceID` is not 0xffffffff, `false` otherwise
functionsupportsInterface(bytes4interfaceID)externalviewreturns(bool);}