From 8b2cf83bed5198fff4e3c4b1eb788aeb1da22208 Mon Sep 17 00:00:00 2001 From: David Rusu Date: Fri, 17 May 2024 14:39:21 +0400 Subject: [PATCH] Add the Bigger wrapper --- coordination-layer/constraints/__init__.py | 0 coordination-layer/constraints/bigger.py | 13 +++++++++++++ coordination-layer/constraints/test_bigger.py | 14 ++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 coordination-layer/constraints/__init__.py create mode 100644 coordination-layer/constraints/bigger.py create mode 100644 coordination-layer/constraints/test_bigger.py diff --git a/coordination-layer/constraints/__init__.py b/coordination-layer/constraints/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/coordination-layer/constraints/bigger.py b/coordination-layer/constraints/bigger.py new file mode 100644 index 0000000..98f02d2 --- /dev/null +++ b/coordination-layer/constraints/bigger.py @@ -0,0 +1,13 @@ +from noir_constraint import NoirConstraint, NoirProof + + +class Bigger: + def __init__(self, y: int): + self.y = y + self.noir = NoirConstraint("bigger") + + def prove(self, x: int) -> NoirProof: + return self.noir.prove({"x": str(x), "y": str(self.y)}) + + def verify(self, proof): + return self.noir.verify({"y": str(self.y)}, proof) diff --git a/coordination-layer/constraints/test_bigger.py b/coordination-layer/constraints/test_bigger.py new file mode 100644 index 0000000..076a951 --- /dev/null +++ b/coordination-layer/constraints/test_bigger.py @@ -0,0 +1,14 @@ +from unittest import TestCase + +from .bigger import Bigger + + +class TestBigger(TestCase): + def test_bigger(self): + bigger = Bigger(3) + proof = bigger.prove(5) + bigger.verify(proof) + + # If we try to reuse the proof for a different Bigger instance, it fails + bigger_4 = Bigger(4) + assert not bigger_4.verify(proof)