mirror of
https://github.com/wownero/wownero-cpp.git
synced 2026-10-22 01:28:44 +02:00
merge unrelated tx blocks in MoneroWallet.cpp:mergeTx()
cleanup; remove -g for debugger
This commit is contained in:
@@ -129,57 +129,20 @@ namespace monero {
|
||||
|
||||
void MoneroTxWallet::merge(const shared_ptr<MoneroTx>& self, const shared_ptr<MoneroTx>& other) {
|
||||
cout << "MoneroTxWallet::merge(MoneroTxs)" << endl;
|
||||
cout << self << ", " << other << endl;
|
||||
|
||||
//cout << "MoneroTxWallet::merge(MoneroTx&, MoneroTx&)" << endl;
|
||||
cout << self->id << endl;
|
||||
cout << "bump" << endl;
|
||||
cout << other->id << endl;
|
||||
cout << "And onward..." << endl;
|
||||
shared_ptr<MoneroTxWallet> temp = dynamic_pointer_cast<MoneroTxWallet>(self);
|
||||
if (temp == nullptr) cout << "you're gonna be in for a bad time" << endl;
|
||||
shared_ptr<MoneroTxWallet> temp2 = dynamic_pointer_cast<MoneroTxWallet>(other);
|
||||
if (temp2 == nullptr) cout << "you're gonna be in for a bad time 2" << endl;
|
||||
|
||||
merge(static_pointer_cast<MoneroTxWallet>(self), static_pointer_cast<MoneroTxWallet>(other));
|
||||
}
|
||||
|
||||
void MoneroTxWallet::merge(const shared_ptr<MoneroTxWallet>& self, const shared_ptr<MoneroTxWallet>& other) {
|
||||
cout << "MoneroTxWallet::merge()" << endl;
|
||||
cout << self << ", " << other << endl;
|
||||
|
||||
|
||||
cout << "Lets iterate over self block tx pointers" << endl;
|
||||
if (self->block != boost::none) {
|
||||
for (const shared_ptr<MoneroTx>& tx : self->block.get()->txs) {
|
||||
cout << tx << endl;
|
||||
}
|
||||
}
|
||||
|
||||
cout << "Lets iterate over other block tx pointers" << endl;
|
||||
if (other->block != boost::none) {
|
||||
for (const shared_ptr<MoneroTx>& tx : other->block.get()->txs) {
|
||||
cout << tx << endl;
|
||||
}
|
||||
}
|
||||
|
||||
if (this != self.get()) throw runtime_error("this != self");
|
||||
if (self == other) {
|
||||
cout << "These are the same reference so we're returning" << endl;
|
||||
return;
|
||||
}
|
||||
if (self == other) return;
|
||||
|
||||
// merge base classes
|
||||
cout << "Merging base classes" << endl;
|
||||
MoneroTx::merge(self, other);
|
||||
|
||||
cout << "Returned from MoneroTx::merge()" << endl;
|
||||
|
||||
// merge wallet extensions
|
||||
note = MoneroUtils::reconcile(note, other->note);
|
||||
|
||||
cout << "2" << endl;
|
||||
|
||||
// merge incoming transfers
|
||||
if (!other->incomingTransfers.empty()) {
|
||||
for (const shared_ptr<MoneroIncomingTransfer> transfer : other->incomingTransfers) { // NOTE: not using reference so shared_ptr is not deleted when tx is dereferenced
|
||||
@@ -188,16 +151,12 @@ namespace monero {
|
||||
}
|
||||
}
|
||||
|
||||
cout << "3" << endl;
|
||||
|
||||
// merge outgoing transfer
|
||||
if (other->outgoingTransfer != boost::none) {
|
||||
other->outgoingTransfer.get()->tx = self;
|
||||
if (self->outgoingTransfer == boost::none) self->outgoingTransfer = other->outgoingTransfer;
|
||||
else self->outgoingTransfer.get()->merge(self->outgoingTransfer.get(), other->outgoingTransfer.get());
|
||||
}
|
||||
|
||||
cout << "4" << endl;
|
||||
}
|
||||
|
||||
//boost::property_tree::ptree MoneroUtils::txWalletToPropertyTree(const MoneroTxWallet& tx) {
|
||||
|
||||
Reference in New Issue
Block a user