github.com/iden3/go-circom-witnesscalc@v0.2.1-0.20230314155733-dd1f248a91b6/README.md (about) 1 # go-circom-witnesscalc 2 3 [![GoDoc](https://godoc.org/github.com/iden3/go-witnesscalc?status.svg)](https://godoc.org/github.com/iden3/go-witnesscalc) 4 5 Witness Calculator in go, calling WASM generated from circom. 6 7 ## Example 8 9 ```go 10 package main 11 12 import ( 13 "encoding/json" 14 "io/ioutil" 15 16 wasm3 "github.com/iden3/go-wasm3" 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func Test(t *testing.T) { 21 wasmFilename := "test_files/mycircuit.wasm" 22 inputsFilename := "test_files/mycircuit-input2.json" 23 24 runtime := wasm3.NewRuntime(&wasm3.Config{ 25 Environment: wasm3.NewEnvironment(), 26 StackSize: 64 * 1024, 27 }) 28 defer runtime.Destroy() 29 30 wasmBytes, err := ioutil.ReadFile(wasmFilename) 31 require.Nil(t, err) 32 33 module, err := runtime.ParseModule(wasmBytes) 34 require.Nil(t, err) 35 36 module, err = runtime.LoadModule(module) 37 require.Nil(t, err) 38 39 inputsBytes, err := ioutil.ReadFile(inputsFilename) 40 require.Nil(t, err) 41 42 inputs, err := ParseInputs(inputsBytes) 43 require.Nil(t, err) 44 45 witnessCalculator, err := NewWitnessCalculator(runtime, module) 46 require.Nil(t, err) 47 48 w, err := witnessCalculator.CalculateWitness(inputs, false) 49 require.Nil(t, err) 50 51 wJSON, err := json.Marshal(WitnessJSON(w)) 52 require.Nil(t, err) 53 fmt.Print(string(wJSON)) 54 } 55 ``` 56 57 # License 58 59 GPLv3