diff --git a/Makefile b/Makefile index 6154a0cfd7..36d2f48a0d 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,8 @@ GORUN = env GO111MODULE=on go run mina: cd mina && cargo build --release + cp mina/target/mina.h mina/lib/mina.h + cp mina/target/release/libmina.a mina/lib/libmina.a geth: mina $(GORUN) build/ci.go install ./cmd/geth diff --git a/core/vm/mina_contracts.go b/core/vm/mina_contracts.go index 50fd231c8b..113f3e951c 100644 --- a/core/vm/mina_contracts.go +++ b/core/vm/mina_contracts.go @@ -27,8 +27,8 @@ package vm // } /* -#cgo LDFLAGS: ${SRCDIR}/../../mina/target/release/libmina.a -ldl -#include "../../mina/target/mina.h" +#cgo LDFLAGS: ${SRCDIR}/../../mina/lib/libmina.a -ldl +#include "../../mina/lib/mina.h" */ import "C" import ( diff --git a/mina/lib/libmina.a b/mina/lib/libmina.a new file mode 100644 index 0000000000..3f176e8f7b Binary files /dev/null and b/mina/lib/libmina.a differ diff --git a/mina/lib/mina.h b/mina/lib/mina.h new file mode 100644 index 0000000000..429ab5447b --- /dev/null +++ b/mina/lib/mina.h @@ -0,0 +1,20 @@ +#include +#include +#include +#include + +#define FIELD_SIZE 32 + +bool poseidon(uint8_t network_id, + const uint8_t *field_ptr, + uintptr_t field_len, + uint8_t *output_ptr); + +bool verify(uint8_t network_id, + const uint8_t *pubkey_x, + const uint8_t *pubkey_y, + const uint8_t *sig_rx, + const uint8_t *sig_s, + const uint8_t *field_ptr, + uintptr_t field_len, + bool *output_ptr);