select templetezied

pull/93/merge
moneroexamples 6 years ago
parent 895a41b55a
commit d6e3e85b27

@ -18,34 +18,6 @@ MysqlInputs::MysqlInputs(shared_ptr<MySqlConnector> _conn)
: conn {_conn}
{}
bool
MysqlInputs::select(const uint64_t& address_id, vector<XmrInput>& ins)
{
Query query = conn->query(XmrInput::SELECT_STMT);
query.parse();
try
{
query.storein(ins, address_id);
return !ins.empty();
}
catch (mysqlpp::Exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
catch (std::exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
return false;
}
bool
MysqlInputs::select_for_tx(const uint64_t& address_id, vector<XmrInput>& ins)
{
@ -106,34 +78,7 @@ MysqlOutpus::MysqlOutpus(shared_ptr<MySqlConnector> _conn): conn {_conn}
{}
bool
MysqlOutpus::select(const uint64_t& address_id, vector<XmrOutput>& outs)
{
Query query = conn->query(XmrOutput::SELECT_STMT);
query.parse();
try
{
query.storein(outs, address_id);
return !outs.empty();
}
catch (mysqlpp::Exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
catch (std::exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
return false;
}
bool
MysqlOutpus::select(const uint64_t& out_id, XmrOutput& out)
MysqlOutpus::select(uint64_t out_id, XmrOutput& out)
{
Query query = conn->query(XmrOutput::SELECT_STMT3);
query.parse();
@ -146,15 +91,10 @@ MysqlOutpus::select(const uint64_t& out_id, XmrOutput& out)
if (!outs.empty())
{
out = outs.at(0);
out = std::move(outs.at(0));
return true;
}
}
catch (mysqlpp::Exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
catch (std::exception& e)
{
MYSQL_EXCEPTION_MSG(e);
@ -231,27 +171,6 @@ MysqlOutpus::exist(const string& output_public_key_str, XmrOutput& out)
MysqlTransactions::MysqlTransactions(shared_ptr<MySqlConnector> _conn): conn {_conn}
{}
bool
MysqlTransactions::select(const uint64_t& address_id, vector<XmrTransaction>& txs)
{
Query query = conn->query(XmrTransaction::SELECT_STMT);
query.parse();
try
{
query.storein(txs, address_id);
return !txs.empty();
}
catch (std::exception& e)
{
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
return false;
}
uint64_t
MysqlTransactions::mark_spendable(const uint64_t& tx_id_no)
{
@ -590,31 +509,36 @@ uint64_t MySqlAccounts::insert<XmrOutput>(const vector<XmrOutput>& data_to_inser
template
uint64_t MySqlAccounts::insert<XmrInput>(const vector<XmrInput>& data_to_insert);
template <typename T>
bool
MySqlAccounts::select_txs(const string& xmr_address, vector<XmrTransaction>& txs)
MySqlAccounts::select(uint64_t account_id, vector<T>& selected_data)
{
// having address first get its address_id
Query query = conn->query(T::SELECT_STMT);
query.parse();
// a placeholder for exciting or new account data
xmreg::XmrAccount acc;
try
{
query.storein(selected_data, account_id);
// select this account if its existing one
if (!select(xmr_address, acc))
return !selected_data.empty();
}
catch (std::exception& e)
{
cerr << "Address" << xmr_address << "does not exist in database" << endl;
return false;
MYSQL_EXCEPTION_MSG(e);
//throw e;
}
return mysql_tx->select(acc.id.data, txs);
return false;
}
bool
MySqlAccounts::select_txs(const uint64_t& account_id, vector<XmrTransaction>& txs)
{
return mysql_tx->select(account_id, txs);
}
template
bool MySqlAccounts::select<XmrTransaction>(uint64_t account_id, vector<XmrTransaction>& selected_data);
template
bool MySqlAccounts::select<XmrOutput>(uint64_t account_id, vector<XmrOutput>& selected_data);
template
bool MySqlAccounts::select<XmrInput>(uint64_t account_id, vector<XmrInput>& selected_data);
bool
MySqlAccounts::select_txs_for_account_spendability_check(
@ -623,7 +547,7 @@ MySqlAccounts::select_txs_for_account_spendability_check(
{
vector<XmrTransaction> txs_tmp;
if (!select_txs(account_id, txs_tmp))
if (!select(account_id, txs_tmp))
return false;
for (XmrTransaction& tx: txs_tmp)
@ -715,14 +639,6 @@ MySqlAccounts::select_txs_for_account_spendability_check(
return true;
}
bool
MySqlAccounts::select_outputs(const uint64_t& account_id, vector<XmrOutput>& outs)
{
return mysql_out->select(account_id, outs);
}
bool
MySqlAccounts::select_output_with_id(const uint64_t& out_id, XmrOutput& out)
{
@ -735,13 +651,6 @@ MySqlAccounts::select_outputs_for_tx(const uint64_t& tx_id, vector<XmrOutput>& o
return mysql_out->select_for_tx(tx_id, outs);
}
bool
MySqlAccounts::select_inputs(const uint64_t& account_id, vector<XmrInput>& ins)
{
return mysql_in->select(account_id, ins);
}
bool
MySqlAccounts::select_inputs_for_tx(const uint64_t& tx_id, vector<XmrInput>& ins)
{

@ -64,14 +64,11 @@ public:
MysqlOutpus(shared_ptr<MySqlConnector> _conn);
bool
select(const uint64_t& address_id, vector<XmrOutput>& outs);
select(uint64_t out_id, XmrOutput& outs);
bool
select_for_tx(const uint64_t& tx_id, vector<XmrOutput>& outs);
bool
select(const uint64_t& out_id, XmrOutput& out);
bool
exist(const string& output_public_key_str, XmrOutput& out);
};
@ -87,9 +84,6 @@ public:
MysqlTransactions(shared_ptr<MySqlConnector> _conn);
bool
select(const uint64_t& address_id, vector<XmrTransaction>& txs);
uint64_t
mark_spendable(const uint64_t& tx_id_no);
@ -104,8 +98,6 @@ public:
uint64_t
get_total_recieved(const uint64_t& account_id);
};
class MysqlPayments
@ -163,11 +155,9 @@ public:
uint64_t
insert(const vector<T>& data_to_insert);
template <typename T>
bool
select_txs(const string& xmr_address, vector<XmrTransaction>& txs);
bool
select_txs(const uint64_t& account_id, vector<XmrTransaction>& txs);
select(uint64_t account_id, vector<T>& selected_data);
bool
select_txs_for_account_spendability_check(const uint64_t& account_id,
@ -176,15 +166,9 @@ public:
bool
select_output_with_id(const uint64_t& out_id, XmrOutput& out);
bool
select_outputs(const uint64_t& account_id, vector<XmrOutput>& outs);
bool
select_outputs_for_tx(const uint64_t& tx_id, vector<XmrOutput>& outs);
bool
select_inputs(const uint64_t& account_id, vector<XmrInput>& ins);
bool
select_inputs_for_tx(const uint64_t& tx_id, vector<XmrInput>& ins);

@ -565,7 +565,7 @@ TxSearch::populate_known_outputs()
{
vector<XmrOutput> outs;
if (xmr_accounts->select_outputs(acc->id.data, outs))
if (xmr_accounts->select(acc->id.data, outs))
{
for (const XmrOutput& out: outs)
{

@ -573,7 +573,7 @@ YourMoneroRequests::get_unspent_outs(const shared_ptr< Session > session, const
vector<XmrTransaction> txs;
// retrieve txs from mysql associated with the given address
if (xmr_accounts->select_txs(acc.id.data, txs))
if (xmr_accounts->select(acc.id.data, txs))
{
// we found some txs.

@ -264,7 +264,7 @@ TEST_F(MYSQL_TEST, SelectAllTxsForAnAccount)
vector<xmreg::XmrTransaction> txs;
xmr_accounts->select_txs(acc.id.data, txs);
xmr_accounts->select(acc.id.data, txs);
EXPECT_EQ(txs.size(), 16);
EXPECT_EQ(txs[0].hash , string{"efa653785fd536ec42283985666612eca961a0bf6a8d56c4c43b1027d173a32c"});

Loading…
Cancel
Save