git / moonbite-core / src/libmw/src/crypto/ConversionUtil.h · raw

#pragma once#include "secp256k1-zkp.h"#include <mw/models/crypto/Commitment.h>#include <mw/models/crypto/PublicKey.h>#include <mw/models/crypto/Signature.h>class ConversionUtil{public:    static PublicKey ToPublicKey(const Commitment& commitment);    static PublicKey ToPublicKey(const secp256k1_pubkey& pubkey);    static Commitment ToCommitment(const secp256k1_pedersen_commitment& commitment);    static CompactSignature ToCompact(const Signature& signature);    static CompactSignature ToCompact(const secp256k1_ecdsa_signature& signature);    static secp256k1_pubkey ToSecp256k1(const PublicKey& publicKey);    static std::vector<secp256k1_pubkey> ToSecp256k1(const std::vector<PublicKey>& publicKeys);    static secp256k1_pedersen_commitment ToSecp256k1(const Commitment& commitment);    static std::vector<secp256k1_pedersen_commitment> ToSecp256k1(const std::vector<Commitment>& commitments);    static secp256k1_ecdsa_signature ToSecp256k1(const CompactSignature& signature);    static std::vector<secp256k1_ecdsa_signature> ToSecp256k1(const std::vector<CompactSignature>& signatures);    static secp256k1_schnorrsig ToSecp256k1(const Signature& signature);    static std::vector<secp256k1_schnorrsig> ToSecp256k1(const std::vector<const Signature*>& signatures);    static Signature ToSignature(const secp256k1_schnorrsig& signature);};