Remove library
This commit is contained in:
parent
3840e2bf92
commit
c7687c5b83
|
@ -20,7 +20,7 @@
|
||||||
pragma solidity 0.8.23;
|
pragma solidity 0.8.23;
|
||||||
import "./Groth16.sol";
|
import "./Groth16.sol";
|
||||||
|
|
||||||
library Pairing {
|
contract Groth16Verifier {
|
||||||
// The prime q in the base field F_q for G1
|
// The prime q in the base field F_q for G1
|
||||||
uint private constant _Q =
|
uint private constant _Q =
|
||||||
21888242871839275222246405745257275088696311157297823662689037894645226208583;
|
21888242871839275222246405745257275088696311157297823662689037894645226208583;
|
||||||
|
@ -72,7 +72,6 @@ library Pairing {
|
||||||
G1Point memory d1,
|
G1Point memory d1,
|
||||||
G2Point memory d2
|
G2Point memory d2
|
||||||
) internal view returns (bool success, uint outcome) {
|
) internal view returns (bool success, uint outcome) {
|
||||||
|
|
||||||
uint[24] memory input; // 4 pairs of G1 and G2 points
|
uint[24] memory input; // 4 pairs of G1 and G2 points
|
||||||
uint[1] memory output;
|
uint[1] memory output;
|
||||||
|
|
||||||
|
@ -117,10 +116,7 @@ library Pairing {
|
||||||
}
|
}
|
||||||
return (success, output[0]);
|
return (success, output[0]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
contract Groth16Verifier {
|
|
||||||
using Pairing for *;
|
|
||||||
uint256 private constant _SNARK_SCALAR_FIELD =
|
uint256 private constant _SNARK_SCALAR_FIELD =
|
||||||
21888242871839275222246405745257275088548364400416034343698204186575808495617;
|
21888242871839275222246405745257275088548364400416034343698204186575808495617;
|
||||||
VerifyingKey private _verifyingKey;
|
VerifyingKey private _verifyingKey;
|
||||||
|
@ -155,23 +151,23 @@ contract Groth16Verifier {
|
||||||
"verifier-gte-snark-scalar-field"
|
"verifier-gte-snark-scalar-field"
|
||||||
);
|
);
|
||||||
G1Point memory product;
|
G1Point memory product;
|
||||||
(success, product) = Pairing.multiply(_verifyingKey.ic[i + 1], input[i]);
|
(success, product) = multiply(_verifyingKey.ic[i + 1], input[i]);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
(success, vkX) = Pairing.add(vkX, product);
|
(success, vkX) = add(vkX, product);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(success, vkX) = Pairing.add(vkX, _verifyingKey.ic[0]);
|
(success, vkX) = add(vkX, _verifyingKey.ic[0]);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
uint outcome;
|
uint outcome;
|
||||||
(success, outcome) =
|
(success, outcome) =
|
||||||
Pairing.checkPairing(
|
checkPairing(
|
||||||
Pairing.negate(proof.a),
|
negate(proof.a),
|
||||||
proof.b,
|
proof.b,
|
||||||
_verifyingKey.alpha1,
|
_verifyingKey.alpha1,
|
||||||
_verifyingKey.beta2,
|
_verifyingKey.beta2,
|
||||||
|
|
Loading…
Reference in New Issue