Skip to content

Commit

Permalink
use exported bn128 prime (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
martyall authored Jun 2, 2024
1 parent 3025d3a commit 05ef9d5
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 19 deletions.
2 changes: 1 addition & 1 deletion cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/l-adic/arithmetic-circuits.git
tag: 7d06e2b5df24237d8d694ca842ff1cd7e6609b34
tag: 7323152c3942c546d676ad6dcafe747f88d72663
--sha256: ldjPgZN7M+hsD6S7kx0QsVJsK8FbCl0d7oSyPHQRoaw=

index-state: 2024-05-21T06:16:08Z
5 changes: 3 additions & 2 deletions factors/cli/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
module Main where

import Circom.CLI (defaultMain)
import Circuit (BN128)
import Protolude
import ZK.Factors (Fr, factors)
import ZK.Factors (factors)

main :: IO ()
main = defaultMain "circuit" $ factors @Fr
main = defaultMain "circuit" $ factors @BN128
13 changes: 5 additions & 8 deletions factors/src/ZK/Factors.hs
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
{-# LANGUAGE DataKinds #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

module ZK.Factors
( factors,
Fr,
)
where

import Circuit
import Circuit.Language
import Data.Field.Galois (GaloisField, Prime)
import Data.Field.Galois (GaloisField)
import Protolude

type Fr = Prime 21888242871839275222246405745257275088548364400416034343698204186575808495617

factors :: (GaloisField f, Hashable f) => ExprM f (Var Wire f 'TBool)
factors ::
(GaloisField f) =>
(Hashable f) =>
ExprM f (Var Wire f 'TBool)
factors = do
a <- var_ <$> fieldInput Private "a"
b <- var_ <$> fieldInput Private "b"
Expand Down
4 changes: 2 additions & 2 deletions factors/test/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ import Protolude
import R1CS (Witness (..))
import Test.Hspec
import Test.QuickCheck
import ZK.Factors (Fr, factors)
import ZK.Factors (factors)

main :: IO ()
main = hspec $ do
let BuilderState {bsVars, bsCircuit} = snd $ runCircuitBuilder (factors @Fr)
let BuilderState {bsVars, bsCircuit} = snd $ runCircuitBuilder (factors @BN128)
program = mkCircomProgram bsVars bsCircuit
vars = cpVars program
describe "Factors" $ do
Expand Down
6 changes: 3 additions & 3 deletions wasm-solver/app/Main.hs
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
module Main where

import Circom.Solver qualified as Circom
import Circuit (BN128)
import Data.Binary (decodeFile)
import Data.IORef (IORef, newIORef)
import Protolude
import System.IO.Unsafe (unsafePerformIO)
import ZK.Factors (Fr)

main :: IO ()
main = mempty

stateRef :: IORef (Circom.ProgramState Fr)
stateRef :: IORef (Circom.ProgramState BN128)
stateRef = unsafePerformIO $ do
st <- Circom.mkProgramState env
newIORef st
{-# NOINLINE stateRef #-}

env :: Circom.ProgramEnv Fr
env :: Circom.ProgramEnv BN128
env = unsafePerformIO $ do
p <- decodeFile "/circuit.bin"
pure $ Circom.mkProgramEnv p
Expand Down
2 changes: 1 addition & 1 deletion wasm-solver/cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/l-adic/arithmetic-circuits.git
tag: 7d06e2b5df24237d8d694ca842ff1cd7e6609b34
tag: 7323152c3942c546d676ad6dcafe747f88d72663
--sha256: ldjPgZN7M+hsD6S7kx0QsVJsK8FbCl0d7oSyPHQRoaw=
4 changes: 2 additions & 2 deletions wasm-solver/factors-solver.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ executable wasm-solver
"-optl-Wl,--export=init,--export=getNVars,--export=getVersion,--export=getRawPrime,--export=writeSharedRWMemory,--export=readSharedRWMemory,--export=getFieldNumLen32,--export=setInputSignal,--export=getInputSignalSize,--export=getWitnessSize,--export=getWitness,--export=getInputSize"

build-depends:
arithmetic-circuits:circom-compat
arithmetic-circuits
, arithmetic-circuits:circom-compat
, base >=4.10 && <5
, binary
, factors
, protolude

0 comments on commit 05ef9d5

Please sign in to comment.