wallet2_api: add an address book payment id lookup API
This commit is contained in:
parent
dd580d7bc7
commit
21c5af5a8a
3 changed files with 25 additions and 0 deletions
|
@ -103,6 +103,28 @@ bool AddressBookImpl::deleteRow(std::size_t rowId)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AddressBookImpl::lookupPaymentID(const std::string &payment_id) const
|
||||||
|
{
|
||||||
|
// turn short ones into long ones for comparison
|
||||||
|
const std::string long_payment_id = payment_id + std::string(64 - payment_id.size(), '0');
|
||||||
|
|
||||||
|
int idx = -1;
|
||||||
|
for (const auto &row: m_rows) {
|
||||||
|
++idx;
|
||||||
|
// this does short/short and long/long
|
||||||
|
if (payment_id == row->getPaymentId())
|
||||||
|
return idx;
|
||||||
|
// short/long
|
||||||
|
if (long_payment_id == row->getPaymentId())
|
||||||
|
return idx;
|
||||||
|
// one case left: payment_id was long, row's is short
|
||||||
|
const std::string long_row_payment_id = row->getPaymentId() + std::string(64 - row->getPaymentId().size(), '0');
|
||||||
|
if (payment_id == long_row_payment_id)
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
void AddressBookImpl::clearRows() {
|
void AddressBookImpl::clearRows() {
|
||||||
for (auto r : m_rows) {
|
for (auto r : m_rows) {
|
||||||
delete r;
|
delete r;
|
||||||
|
|
|
@ -51,6 +51,8 @@ public:
|
||||||
// Error codes. See AddressBook:ErrorCode enum in wallet2_api.h
|
// Error codes. See AddressBook:ErrorCode enum in wallet2_api.h
|
||||||
std::string errorString() const {return m_errorString;}
|
std::string errorString() const {return m_errorString;}
|
||||||
int errorCode() const {return m_errorCode;}
|
int errorCode() const {return m_errorCode;}
|
||||||
|
|
||||||
|
int lookupPaymentID(const std::string &payment_id) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void clearRows();
|
void clearRows();
|
||||||
|
|
|
@ -175,6 +175,7 @@ struct AddressBook
|
||||||
virtual void refresh() = 0;
|
virtual void refresh() = 0;
|
||||||
virtual std::string errorString() const = 0;
|
virtual std::string errorString() const = 0;
|
||||||
virtual int errorCode() const = 0;
|
virtual int errorCode() const = 0;
|
||||||
|
virtual int lookupPaymentID(const std::string &payment_id) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct WalletListener
|
struct WalletListener
|
||||||
|
|
Loading…
Reference in a new issue