wallet_api: add address validation functions

The payment id from integrated addresses is also parsed
This commit is contained in:
moneromooo-monero 2016-10-16 16:52:45 +01:00
parent 34fcfcd7cc
commit 06b642dfe4
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
2 changed files with 22 additions and 0 deletions

View file

@ -162,6 +162,26 @@ bool Wallet::paymentIdValid(const string &paiment_id)
return tools::wallet2::parse_short_payment_id(paiment_id, pid); return tools::wallet2::parse_short_payment_id(paiment_id, pid);
} }
bool Wallet::addressValid(const std::string &str, bool testnet)
{
bool has_payment_id;
cryptonote::account_public_address address;
crypto::hash8 pid;
return get_account_integrated_address_from_str(address, has_payment_id, pid, testnet, str);
}
std::string Wallet::paymentIdFromAddress(const std::string &str, bool testnet)
{
bool has_payment_id;
cryptonote::account_public_address address;
crypto::hash8 pid;
if (!get_account_integrated_address_from_str(address, has_payment_id, pid, testnet, str))
return "";
if (!has_payment_id)
return "";
return epee::string_tools::pod_to_hex(pid);
}
uint64_t Wallet::maximumAllowedAmount() uint64_t Wallet::maximumAllowedAmount()
{ {
return std::numeric_limits<uint64_t>::max(); return std::numeric_limits<uint64_t>::max();

View file

@ -280,6 +280,8 @@ struct Wallet
static uint64_t amountFromDouble(double amount); static uint64_t amountFromDouble(double amount);
static std::string genPaymentId(); static std::string genPaymentId();
static bool paymentIdValid(const std::string &paiment_id); static bool paymentIdValid(const std::string &paiment_id);
static bool addressValid(const std::string &str, bool testnet);
static std::string paymentIdFromAddress(const std::string &str, bool testnet);
static uint64_t maximumAllowedAmount(); static uint64_t maximumAllowedAmount();
/** /**