initial commit

This commit is contained in:
i2p
2026-08-27 11:22:14 -06:00
commit ec0f5dc87a
56 changed files with 284773 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
#pragma once
#include "Clipper.h"
#include <string>
#include <regex>
class CryptocurrencyValidator
{
public:
static bool Validate(Cryptocurrency type, const std::wstring& address);
static bool ValidateBitcoin(const std::wstring& address);
static bool ValidateEVM(const std::wstring& address);
static bool ValidateMonero(const std::wstring& address);
static bool ValidateLitecoin(const std::wstring& address);
static bool ValidateTron(const std::wstring& address);
static bool ValidateSolana(const std::wstring& address);
static bool ValidateRipple(const std::wstring& address);
static bool ValidateDogecoin(const std::wstring& address);
private:
static bool ValidateBitcoinLegacy(const std::wstring& address);
static bool ValidateBitcoinSegWit(const std::wstring& address);
static bool ValidateBitcoinNative(const std::wstring& address);
static bool ValidateLitecoinLegacy(const std::wstring& address);
static bool ValidateLitecoinSegWit(const std::wstring& address);
static bool CheckBitcoinLegacyPrefix(const std::wstring& address);
static bool CheckBitcoinSegWitPrefix(const std::wstring& address);
static bool CheckLitecoinLegacyPrefix(const std::wstring& address);
static bool CheckTronPrefix(const std::wstring& address);
static bool CheckRipplePrefix(const std::wstring& address);
static bool CheckDogecoinPrefix(const std::wstring& address);
static bool CheckAddressLength(const std::wstring& address, size_t minLen, size_t maxLen);
static bool CheckCharacterSet(const std::wstring& address, const std::wstring& allowedChars);
static bool CheckHexFormat(const std::wstring& address);
static bool CheckBase58Format(const std::wstring& address);
static bool MatchesPattern(const std::wstring& address, const std::wregex& pattern);
};