Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spats integration first step #1526

Merged
merged 86 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
e9ba523
copy from libspark
JusAeng Sep 30, 2023
f551def
change name to spats
JusAeng Sep 30, 2023
ddd39b5
add generators
JusAeng Oct 5, 2023
c35a2da
push testing
naveeharn Oct 8, 2023
3dd2c14
add constructor coin
Nuttanan29445 Oct 9, 2023
79373f7
fixed parameter
Nuttanan29445 Oct 10, 2023
41d6fe2
add parameter com3
JusAeng Oct 10, 2023
0c08842
implement bpplus proof
naveeharn Oct 13, 2023
cc9d37b
implement bpplus proof
naveeharn Oct 13, 2023
29887e5
update gitignore
naveeharn Oct 13, 2023
77902ba
Merge branch 'libspats' of https://github.com/JusAeng/firo into libspats
naveeharn Oct 13, 2023
d487952
implement bpplus proof
naveeharn Oct 13, 2023
d55b131
update Coin inputs in spend tx
naveeharn Oct 16, 2023
2f1e9fc
implement identify and test cases
naveeharn Oct 17, 2023
4a6ee25
fix prepare value proof and verify
JusAeng Oct 17, 2023
03ea2a0
Merge pull request #1 from JusAeng/libspat/bpplus
DiFve Oct 17, 2023
70b83f5
add label transcript for balance
JusAeng Oct 17, 2023
c2a5aee
implement balance proof
JusAeng Oct 17, 2023
6d63bc0
fix return verify
JusAeng Oct 17, 2023
8ebc4a5
Merge branch 'libspats' of https://github.com/JusAeng/firo into libsp…
JusAeng Oct 17, 2023
42457d0
fix return verify
JusAeng Oct 17, 2023
e141a02
remove unnecessary
JusAeng Oct 17, 2023
ae09c7d
add balance unit test
JusAeng Oct 17, 2023
c8a48f8
add label BaseAsset
JusAeng Oct 18, 2023
05cadfa
implement base asset
JusAeng Oct 18, 2023
12fb142
add base asset unit test
JusAeng Oct 18, 2023
5476470
check bad statement
JusAeng Oct 18, 2023
af1b7fe
add testcase base asset proof
JusAeng Oct 18, 2023
b889ca5
add type equality prove
Nuttanan29445 Oct 19, 2023
fd13db6
add test case
JusAeng Oct 19, 2023
428566f
Merge pull request #2 from JusAeng/libspats-balance
JusAeng Oct 20, 2023
2aaecb7
Merge branch 'libspats' into libspats-type_equality
JusAeng Oct 20, 2023
1889f0e
Merge pull request #3 from JusAeng/libspats-type_equality
JusAeng Oct 20, 2023
bc66e13
Merge branch 'libspats' into libspats-base_asset
JusAeng Oct 20, 2023
c50aa6d
Merge pull request #4 from JusAeng/libspats-base_asset
JusAeng Oct 20, 2023
5c51011
add mint unit test
JusAeng Oct 21, 2023
19f1fd1
improve solution
JusAeng Oct 21, 2023
9d59df2
chage type in MintedCoinData struct
JusAeng Oct 21, 2023
acc833c
ay
DiFve Oct 23, 2023
a48f463
ay
DiFve Oct 23, 2023
1b88f06
Merge branch 'libspats' into libspat/identify
JusAeng Oct 24, 2023
6cd05ed
Merge pull request #5 from JusAeng/libspat/identify
JusAeng Oct 24, 2023
43d89e7
Merge branch 'libspats' of https://github.com/JusAeng/firo into libsp…
JusAeng Oct 24, 2023
e3782f3
fix conditions and fix verify com
JusAeng Oct 24, 2023
5807c70
modify
JusAeng Oct 24, 2023
10e1467
spend test
DiFve Oct 24, 2023
0f63cac
merge
DiFve Oct 24, 2023
24fbc1a
Update Makefile.test.include
JusAeng Oct 24, 2023
d6af446
Update Makefile.test.include
JusAeng Oct 24, 2023
f656cd4
Update Makefile.test.include
JusAeng Oct 24, 2023
db76d8e
Merge pull request #6 from JusAeng/libspats-mint
JusAeng Oct 24, 2023
121983a
add iota and a in SerializationOp
Nuttanan29445 Oct 24, 2023
5a1db5d
Spend transaction
DiFve Oct 27, 2023
fb1b1b4
add verify spend_transaction
DiFve Oct 29, 2023
23f453f
edit spend_verify
DiFve Oct 29, 2023
66e7ec1
Merge pull request #7 from JusAeng/libspat/spend
DiFve Oct 29, 2023
8af1cc7
update walltet backup dump
naveeharn Dec 19, 2023
3973db3
import multiexponent
naveeharn Jan 8, 2024
1982d83
edit the amount of the required memory
naveeharn Jan 8, 2024
5b3d453
change a, iota types to Scalar
naveeharn Jan 8, 2024
c40c979
edit typo
naveeharn Jan 8, 2024
b1629fd
update computation using multiexponent
naveeharn Jan 8, 2024
1501b22
edit the boolean logic
naveeharn Jan 8, 2024
5c17357
change a, iota types to Scalar
naveeharn Jan 8, 2024
ecad358
remove unnecessary variables
naveeharn Jan 8, 2024
45398fa
edit variable type
naveeharn Jan 8, 2024
dad0bb7
add throw exceptions
naveeharn Jan 8, 2024
965d63c
change variable type to Scalar
naveeharn Jan 8, 2024
ee76aea
add test cases
naveeharn Jan 8, 2024
2ebf4ec
change variable types to Scalar
naveeharn Jan 8, 2024
cf4102e
add filenames for building
naveeharn Jan 8, 2024
5797f1f
test for pushing
Jan 17, 2024
0c0b298
test for deleting
Jan 17, 2024
8c011da
Merge branch 'libspats' of https://github.com/JusAeng/firo into libsp…
naveeharn Feb 8, 2024
f519fcc
Merge branch 'libspats-refactor' of https://github.com/JusAeng/firo i…
naveeharn Feb 12, 2024
e96ce9d
test for pushing
naveeharn Feb 12, 2024
27d6059
Merge branch 'libspats' of ../../spats/firo into libspats
levonpetrosyan93 Sep 5, 2024
d6f6c0e
Merge branch 'libspats-refactor' of ../../spats/firo into libspats-re…
levonpetrosyan93 Sep 5, 2024
00d08f1
Spark address ownership proofs implemented.
levonpetrosyan93 Oct 5, 2024
12ac0b3
Missing files added
levonpetrosyan93 Oct 6, 2024
b87d044
Merge branch 'spark_ownership' into libspats-refactor
levonpetrosyan93 Dec 14, 2024
bf535ad
Changes to compile with C++20 (#1505)
gevorgvoskanyan Dec 23, 2024
252d2c7
CI C++20 proper (#1514)
gevorgvoskanyan Jan 5, 2025
e8d39a8
Spats admin gui (#1497)
gevorgvoskanyan Jan 10, 2025
983dc27
Libspats cleanup refacor (#1517)
levonpetrosyan93 Jan 12, 2025
31f175c
Merge branch 'master' into libspats-refactor
levonpetrosyan93 Feb 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,7 @@ firo.files
firo.includes

/guix-build-*

/diagrams
.clang-uml
compile_commands.json
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pipeline {
agent {
docker {
image 'firoorg/firo-builder-depends:latest'
image 'firoorg/firo-builder-depends24:latest'
alwaysPull true
}
}
Expand Down
64 changes: 64 additions & 0 deletions build-aux/m4/ax_cxx_compile_stdcxx.m4
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
[$1], [14], [ax_cxx_compile_alternatives="14 1y"],
[$1], [17], [ax_cxx_compile_alternatives="17 1z"],
[$1], [20], [ax_cxx_compile_alternatives="20 2a"],
[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
m4_if([$2], [], [],
[$2], [ext], [],
Expand Down Expand Up @@ -154,6 +155,13 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_17
)

m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
_AX_CXX_COMPILE_STDCXX_testbody_new_in_17
_AX_CXX_COMPILE_STDCXX_testbody_new_in_20
)

dnl Tests for new features in C++11

m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
Expand Down Expand Up @@ -949,3 +957,59 @@ namespace cxx17
#endif // __cplusplus < 201703L

]])

dnl Tests for new features in C++20

m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[

// If the compiler admits that it is not ready for C++20, why torture it?
// Hopefully, this will speed up the test.

#ifndef __cplusplus

#error "This is not a C++ compiler"

#elif __cplusplus < 202002L

#error "This is not a C++20 compiler"

#else

#include <concepts>
#include <compare>
#include <vector>
#include <algorithm>

namespace cxx20
{

namespace test_concepts {
template<typename T>
concept Integral = std::is_integral<T>::value;
static_assert(Integral<int>, "int should be integral");
}

namespace test_ranges {
void f() {
std::vector<int> v = {5, 2, 4, 3, 1};
std::ranges::sort(v);
}
}

namespace test_spaceship {
struct A {
int value;
auto operator<=>(const A&) const = default;
};

int f() {
A a{1}, b{2};
return (a <=> b) == std::strong_ordering::less ? 0 : 1;
}
}

} // namespace cxx20

#endif // __cplusplus < 202002L

]])
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ case $host in
lt_cv_deplibs_check_method="pass_all"
;;
esac
dnl Require C++17 compiler (no GNU extensions)
AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory], [nodefault])
dnl Require C++20 compiler (no GNU extensions)
AX_CXX_COMPILE_STDCXX([20], [noext], [mandatory], [nodefault])
dnl Check if -latomic is required for <std::atomic>
CHECK_ATOMIC

Expand Down
4 changes: 2 additions & 2 deletions contrib/docker/builder/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ubuntu:20.04
FROM ubuntu:24.04

# install required packages
RUN apt-get update && apt-get install -y software-properties-common
Expand All @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y \
RUN update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
RUN update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix

RUN pip3 install ez_setup
#RUN pip3 install ez_setup

# create user to use
RUN useradd -m -U firo-builder
Expand Down
2 changes: 1 addition & 1 deletion depends/packages/bdb.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ define $(package)_set_vars
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication
$(package)_config_opts_mingw32=--enable-mingw
$(package)_config_opts_linux=--with-pic
$(package)_cxxflags=-std=c++11
$(package)_cxxflags=-std=c++20
$(package)_cc+=-Wno-error=implicit-function-declaration
endef

Expand Down
2 changes: 1 addition & 1 deletion depends/packages/boost.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ else
$(package)_toolset_$(host_os)=gcc
endif
$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test
$(package)_cxxflags+=-std=c++17
$(package)_cxxflags+=-std=c++20
$(package)_cxxflags_linux=-fPIC
$(package)_cxxflags_android=-fPIC
$(package)_cxxflags_x86_64_darwin=-fcf-protection=full
Expand Down
2 changes: 1 addition & 1 deletion depends/packages/qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ $(package)_config_opts_release += -silent
$(package)_config_opts_debug = -debug
$(package)_config_opts_debug += -optimized-tools
$(package)_config_opts += -bindir $(build_prefix)/bin
$(package)_config_opts += -c++std c++17
$(package)_config_opts += -c++std c++2a
$(package)_config_opts += -confirm-license
$(package)_config_opts += -hostprefix $(build_prefix)
$(package)_config_opts += -no-compile-examples
Expand Down
2 changes: 1 addition & 1 deletion depends/packages/zeromq.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ define $(package)_set_vars
$(package)_config_opts += --disable-Werror --disable-drafts --enable-option-checking
$(package)_config_opts_linux=--with-pic
$(package)_config_opts_android=--with-pic
$(package)_cxxflags=-std=c++17
$(package)_cxxflags=-std=c++20
endef

define $(package)_preprocess_cmds
Expand Down
30 changes: 29 additions & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
LIBBITCOIN_UTIL=libbitcoin_util.a
LIBLELANTUS=liblelantus.a
LIBSPARK=libspark.a
LIBSPATS=libspats.a
LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
LIBBITCOINQT=qt/libfiroqt.a
LIBSECP256K1=secp256k1/libsecp256k1.la
Expand Down Expand Up @@ -90,7 +91,8 @@ EXTRA_LIBRARIES += \
$(LIBBITCOIN_ZMQ) \
$(LIBFIRO_SIGMA) \
$(LIBLELANTUS) \
$(LIBSPARK)
$(LIBSPARK) \
$(LIBSPATS)

lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS)

Expand Down Expand Up @@ -119,6 +121,7 @@ BITCOIN_CORE_H = \
batchedlogger.h \
bloom.h \
blockencodings.h \
boost_function_epilogue.hpp \
chain.h \
chainparams.h \
chainparamsbase.h \
Expand Down Expand Up @@ -686,13 +689,37 @@ libspark_a_SOURCES = \
libspark/hash.cpp \
libspark/mint_transaction.h \
libspark/mint_transaction.cpp \
libspark/ownership_proof.h \
libspark/spend_transaction.h \
libspark/spend_transaction.cpp \
libspark/f4grumble.h \
libspark/f4grumble.cpp \
libspark/bech32.h \
libspark/bech32.cpp

libspats_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
libspats_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
libspats_a_SOURCES = \
libspats/bpplus.cpp \
libspats/bpplus.h \
libspats/bpplus_proof.h \
libspats/coin.cpp \
libspats/coin.h \
libspats/base_asset.h \
libspats/base_asset.cpp \
libspats/base_asset_proof.h \
libspats/type_proof.h \
libspats/type.cpp \
libspats/type.h \
libspats/balance.h \
libspats/balance.cpp \
libspats/balance_proof.h \
libspats/mint_transaction.cpp \
libspats/mint_transaction.h \
libspats/spend_transaction.cpp \
libspats/spend_transaction.h \
libspats/util.h

liblelantus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
liblelantus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
liblelantus_a_SOURCES = \
Expand Down Expand Up @@ -799,6 +826,7 @@ firod_LDADD = \
$(LIBFIRO_SIGMA) \
$(LIBLELANTUS) \
$(LIBSPARK) \
$(LIBSPATS) \
$(LIBBITCOIN_ZMQ) \
$(LIBBITCOIN_CONSENSUS) \
$(LIBBITCOIN_CRYPTO) \
Expand Down
4 changes: 4 additions & 0 deletions src/Makefile.qt.include
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ QT_FORMS_UI = \
qt/forms/editaddressdialog.ui \
qt/forms/helpmessagedialog.ui \
qt/forms/masternodelist.ui \
qt/forms/myownspats.ui \
qt/forms/intro.ui \
qt/forms/modaloverlay.ui \
qt/forms/recover.ui \
Expand Down Expand Up @@ -146,6 +147,7 @@ QT_MOC_CPP = \
qt/moc_macdockiconhandler.cpp \
qt/moc_macnotificationhandler.cpp \
qt/moc_masternodelist.cpp \
qt/moc_myownspats.cpp \
qt/moc_modaloverlay.cpp \
qt/moc_notificator.cpp \
qt/moc_openuridialog.cpp \
Expand Down Expand Up @@ -225,6 +227,7 @@ BITCOIN_QT_H = \
qt/macdockiconhandler.h \
qt/macnotificationhandler.h \
qt/masternodelist.h \
qt/myownspats.h \
qt/modaloverlay.h \
qt/networkstyle.h \
qt/notificator.h \
Expand Down Expand Up @@ -449,6 +452,7 @@ BITCOIN_QT_WALLET_CPP = \
qt/walletmodel.cpp \
qt/walletmodeltransaction.cpp \
qt/masternodelist.cpp \
qt/myownspats.cpp \
qt/walletview.cpp \
qt/lelantusmodel.cpp \
qt/lelantusdialog.cpp \
Expand Down
14 changes: 12 additions & 2 deletions src/Makefile.test.include
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ BITCOIN_TESTS = \
liblelantus/test/sigma_extended_test.cpp \
libspark/test/transcript_test.cpp \
libspark/test/schnorr_test.cpp \
libspark/test/ownership_test.cpp \
libspark/test/chaum_test.cpp \
libspark/test/bpplus_test.cpp \
libspark/test/grootle_test.cpp \
Expand Down Expand Up @@ -195,7 +196,15 @@ BITCOIN_TESTS = \
test/evo_deterministicmns_tests.cpp \
test/evo_simplifiedmns_tests.cpp \
test/progpow_tests.cpp \
test/bls_tests.cpp
test/bls_tests.cpp \
libspats/test/bpplus_test.cpp \
libspats/test/coin_test.cpp \
libspats/test/type_test.cpp \
libspats/test/base_asset_test.cpp \
libspats/test/mint_transaction_test.cpp \
libspats/test/spend_transaction_test.cpp \
libspats/test/balance_test.cpp


if ENABLE_WALLET
BITCOIN_TESTS += \
Expand All @@ -215,7 +224,7 @@ test_test_bitcoin_LDADD = $(LIBBITCOIN_SERVER) -ltor

test_test_bitcoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) $(EVENT_CFLAGS)
test_test_bitcoin_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBFIRO_SIGMA) $(LIBLELANTUS) $(LIBSPARK) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
test_test_bitcoin_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBFIRO_SIGMA) $(LIBLELANTUS) $(LIBSPARK) $(LIBSPATS) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
$(BACKTRACE_LIB) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_PTHREADS_LIBS) $(ZMQ_LIBS) $(ZLIB_LIBS)
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
if ENABLE_WALLET
Expand Down Expand Up @@ -243,6 +252,7 @@ test_test_bitcoin_fuzzy_LDADD = \
$(LIBBITCOIN_SERVER) \
$(LIBLELANTUS) \
$(LIBSPARK) \
$(LIBSPATS) \
$(LIBBITCOIN_COMMON) \
$(LIBBITCOIN_UTIL) \
$(LIBBITCOIN_CONSENSUS) \
Expand Down
45 changes: 45 additions & 0 deletions src/boost_function_epilogue.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Boost.Function library

#ifndef BOOST_FUNCTION_EPILOGUE_HPP
#define BOOST_FUNCTION_EPILOGUE_HPP

#include <boost/function.hpp> // Added by Gevorg Voskanyan

#if BOOST_VERSION < 108200 // Added by Gevorg Voskanyan

// Copyright 2023 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

// Resolve C++20 issue with fn == bind(...)
// https://github.com/boostorg/function/issues/45

#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)

namespace boost
{

namespace _bi
{

template<class R, class F, class L> class bind_t;

} // namespace _bi

template<class S, class R, class F, class L> bool operator==( function<S> const& f, _bi::bind_t<R, F, L> const& b )
{
return f.contains( b );
}

template<class S, class R, class F, class L> bool operator!=( function<S> const& f, _bi::bind_t<R, F, L> const& b )
{
return !f.contains( b );
}

} // namespace boost

#endif // #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)

#endif // BOOST_VERSION < 108200 // Added by Gevorg Voskanyan

#endif // #ifndef BOOST_FUNCTION_EPILOGUE_HPP
2 changes: 1 addition & 1 deletion src/libspark/coin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ bool Coin::validate(
// Recover a coin
RecoveredCoinData Coin::recover(const FullViewKey& full_view_key, const IdentifiedCoinData& data) {
RecoveredCoinData recovered_data;
recovered_data.s = SparkUtils::hash_ser(data.k, this->serial_context) + SparkUtils::hash_Q2(full_view_key.get_s1(), data.i) + full_view_key.get_s2();
recovered_data.s = SparkUtils::hash_ser(data.k, this->serial_context) + SparkUtils::hash_Q2(full_view_key.get_s1(), data.i) + full_view_key.get_s2();
recovered_data.T = (this->params->get_U() + full_view_key.get_D().inverse())*recovered_data.s.inverse();

return recovered_data;
Expand Down
2 changes: 1 addition & 1 deletion src/libspark/grootle.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class Grootle {
const std::vector<GroupElement>& Hi,
const std::size_t n,
const std::size_t m
);
);

void prove(const std::size_t l,
const Scalar& s,
Expand Down
Loading
Loading