git / moonbite-core / src/libmw/include/mw/crypto/Bulletproofs.h · raw
#pragma once#include <mw/models/crypto/Commitment.h>#include <mw/models/crypto/ProofData.h>#include <mw/models/crypto/ProofMessage.h>#include <mw/models/crypto/RangeProof.h>#include <mw/models/crypto/RewoundProof.h>#include <mw/models/crypto/SecretKey.h>#include <memory>class Bulletproofs{public: static bool BatchVerify( const std::vector<ProofData>& rangeProofs ); static RangeProof::CPtr Generate( const uint64_t amount, const SecretKey& key, const SecretKey& privateNonce, const SecretKey& rewindNonce, const ProofMessage& proofMessage, const std::vector<uint8_t>& extraData ); static std::unique_ptr<RewoundProof> Rewind( const Commitment& commitment, const RangeProof& rangeProof, const std::vector<uint8_t>& extraData, const SecretKey& nonce );};