示例#1
0
 def _invoke_groth16_bls12_377_verify(vk: Groth16.VerificationKey,
                                      proof: Groth16.Proof,
                                      inputs: List[str]) -> bool:
     vk_evm = Groth16.verification_key_to_contract_parameters(
         vk, BLS12_377_PAIRING)
     proof_evm = Groth16.proof_to_contract_parameters(
         proof, BLS12_377_PAIRING)
     inputs_evm = hex_list_to_uint256_list(inputs)
     return CONTRACT_INSTANCE.functions.testVerify(vk_evm, proof_evm,
                                                   inputs_evm).call()
示例#2
0
 def test_alt_bn128_groth16_verification_key_parameters(self) -> None:
     vk = VERIFICATION_KEY_ALT_BN128_GROTH16
     vk_parameters_expect = VERIFICATION_KEY_ALT_BN128_GROTH16_PARAMETERS
     vk_parameters = Groth16.verification_key_to_contract_parameters(
         vk, ALT_BN128_PAIRING)
     self.assertEqual(vk_parameters_expect, vk_parameters)
示例#3
0
 def test_bls12_377_groth16_verification_key_parameters(self) -> None:
     vk = VERIFICATION_KEY_BLS12_377_GROTH16
     vk_parameters_expect = VERIFICATION_KEY_BLS12_377_GROTH16_PARAMETERS
     vk_parameters = Groth16.verification_key_to_contract_parameters(
         vk, BLS12_377_PAIRING)
     self.assertEqual(vk_parameters_expect, vk_parameters)