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